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

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