You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
swish/src/Algorithme/FonctionAnalyseEmpiler.md

152 lines
2.3 KiB

# ANALYSE DE CARTE#
## COMPARAISON DE CARTE##
**ComparaisonDeCarte(TasDeCarte:Tableau(4,3) d'entiers, Carte:Tableau(4,3) d'entiers)** : entier
**Entrées** : **TasDeCarte** et **Carte** :Tableau(4,3) d'entiers
**Sortie** : entier
### DEBUT###
> ###Variables locales :
> **Cox1,Cox2,Coy1,Coy2** : entiers
>
> ---
>
> Si TasDeCarte == NULL alors
>
>> Code <- 2
>
>> retour Code
>
>Fin Si
> Cox1,Coy1,Cox2,Coy2 <- rechercheCo(Carte)
>
> Code <- 0
>
> Si TasDeCarte(Coy1,Cox1) == 3 ou TasDeCarte(Coy2,Cox2) == 3 alors
>
>>retour Code
>
>Fin si
>
>Si TasDeCarte(Coy1,Cox1) == 1 ou TasDeCarte(Coy2,Cox2) == 2 alors
>
>>Code <- 1
>
>Fin si
>Si TasDeCarte(Coy1,Cox1) == 1 et TasDeCarte(Coy2,Cox2) == 2 alors
>
>>Code <- 2
>
>Fin Si
>
>retour Code
###FIN
##COMPARAISON TOTAL DE LA CARTE
**ComparaisonTotal(TasDeCarte:Tableau(4,3) d'entiers,CarteFille:Tableau(4,3) d'entiers, index entier)**:entier,Tableau(4,3) d'entiers
**Entrees** : **TasDeCarte,CarteFille** :Tableau(4,3) d'entiers, **index** entier
**Sortie** : entier
###DEBUT
>###Variables locales
>
> Code,Code1 entier
>
>---
>
>Si TasDeCarte == NULL alors
>
>>TasDeCarte <- CarteFille
>
>>Code <- 1
>
>>retour Code,TasDeCarte
>
>Fin si
>
>
> **Si** index == 1 alors
>
>>CarteFille <- rotationVerticale(CarteFille)
>
>**Fin Si**
>
>**Si** index == 2 alors
>
>>CarteFille <- rotationHorizontale(CarteFille)
>
>**Fin Si**
>
>**Si** index == 3 alors
>
>>CarteFille <- rotationVerticale(CarteFille)
>
>**Fin Si**
>
>**Si** index == 4 alors
>
>>Code <- -1
>
>>retour Code,TasDeCarte
>
>**Fin Si**
>
>Code <- ComparaisonDeCarte(TasDeCarte,CarteFille)
>
>**Si** Code == 2 alors
>
>>TasDeCarte <- TasDeCarte + CarteFille
>
>>retour Code,TasDeCarte
>
>**Fin si**
>
>**Si** Code == 1 alors
>
>>Code1 <- ComparaisonDeCarte(TasDeCarte,rotationHorizontale(CarteFille))
>
>>**Si **Code1 == 1 alors
>
>>>Code <- 4
>
>>> retour Code, TasDeCarte
>
>>**Fin Si**
>
>>Code1 <- ComparaisonDeCarte(TasDeCarte,rotationVerticale(CarteFille))
>
>>**Si **Code1 == 2 alors
>
>>>Code <- 2;
>
>>> TasDeCarte <- TasDeCarte + rotationVerticale(CarteFille)
>
>>>retour Code, TasDeCarte
>
>>**Fin Si**
>
>> **Si** Code1 == 1 alors
>
>>> Code <- 3
>
>>> retour Code,TasDeCarte
>
>>**Fin Si**
>
>**Fin si**
>
>**Si** Code == 0 alors
>
>> retour ComparaisonTotal(TasDeCarte,CarteFille,index + 1)
>
>**Fin si**
>
### FIN