202 lines
5.3 KiB
Reg
Executable File
202 lines
5.3 KiB
Reg
Executable File
;TROUVER LE NB DE JOUEUR ENTRANT A CHAQUE TOUR;
|
|
;**********************************************************************;
|
|
REGLE CHANGER_TOUR_COURANT
|
|
;TROUVER A QUEL TOUR VA ETRE PLACER LE JOUEUR AUX ETAPES SUIVANTES;
|
|
SI
|
|
ETAPE_PLACEMENT_JOUEUR ' =0
|
|
TOUR_COURANT ' = (NO_X)
|
|
(TOUR_X) NUMERO (NO_X)
|
|
(TOUR_X) NB_JOUEUR_ENTRANT 0
|
|
ALORS
|
|
TOUR_COURANT ' <-- (TOUR_COURANT ' - 1)
|
|
|
|
;**********************************************************************;
|
|
REGLE MEME_TOUR_COURANT
|
|
DES_QUE
|
|
ETAPE_PLACEMENT_JOUEUR ' =0
|
|
TOUR_COURANT ' = (NO_X)
|
|
(TOUR_X) NUMERO (NO_X)
|
|
(NO_X) > 1
|
|
(TOUR_X) NB_JOUEUR_ENTRANT (NB_X)
|
|
(NB_X) > 0
|
|
ALORS
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 1
|
|
;**********************************************************************;
|
|
REGLE FIN_PLACEMENT_JOUEUR_PAR_TOUR
|
|
;DETERMINER QUAND ON A TERMINE LE PLACEMENTE DES JOUEURS PAR TOUR ET;
|
|
;DONC ON PEUT CREER LES MATCHS;
|
|
DES_QUE
|
|
ETAPE_PLACEMENT_JOUEUR ' =0
|
|
TOUR_COURANT ' =1
|
|
ALORS
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 3
|
|
|
|
;***********************************************************;
|
|
REGLE CLASSEMENT_MEILLEUR_PAS_PLACE_DANS_TOUR_BOUCLAGE
|
|
;TROUVER LE CLASSEMENT DU MEILLEUR JOUEUR PAS PLACE DANS LES DERNIERS TOURS;
|
|
QUAND
|
|
|
|
ETAPE_PLACEMENT_JOUEUR ' =1
|
|
(JOUEUR_X) ENTRE TOUR_1
|
|
(JOUEUR_X) EST_CLASSE (CLASSEMENT_X)
|
|
(CLASSEMENT_X) VAUT (X)
|
|
(X) < CLASSEMENT_MEILLEUR '
|
|
|
|
ALORS
|
|
|
|
CLASSEMENT_MEILLEUR ' <-- (X)
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 1
|
|
|
|
REGLE CLASSEMENT_MEILLEUR_PAS_PLACE_DANS_TOUR_SORTIE
|
|
SI
|
|
(JOUEUR_X) ENTRE TOUR_1
|
|
ETAPE_PLACEMENT_JOUEUR ' =1
|
|
ALORS
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 2
|
|
;**********************************************************;
|
|
REGLE MEILLEUR_JOUEUR_ENTRE_TOUR_N
|
|
;TROUVER LE MEILLEUR DES JOUEURS PAS PLACE DANS LES DERNIERS TOURS;
|
|
;AFFECTATION JOUEUR_ X ENTRE AU TOUR_X;
|
|
SI
|
|
|
|
ETAPE_PLACEMENT_JOUEUR ' =2
|
|
(JOUEUR_X) ENTRE TOUR_1
|
|
CLASSEMENT_MEILLEUR '=(CLASS_X)
|
|
(CLASSEMENT_X) VAUT (CLASS_X)
|
|
(JOUEUR_X) EST_CLASSE (CLASSEMENT_X)
|
|
TOUR_COURANT ' =(X)
|
|
(TOUR_X) NUMERO (X)
|
|
|
|
ALORS
|
|
|
|
ENTRE (JOUEUR_X) <-- (TOUR_X)
|
|
NB_JOUEUR_ENTRANT (TOUR_X) <-- ((NB_JOUEUR_ENTRANT (TOUR_X)) - 1 )
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 0
|
|
CLASSEMENT_MEILLEUR ' <-- 19
|
|
ECRIRE (ENVOI,(JOUEUR_X) " ENTRE " (TOUR_X))
|
|
|
|
;***************************************************************************;
|
|
;CALCUL DES MATCHS ;
|
|
;***************************************************************************;
|
|
REGLE MATCH_SUIVANT_TOUR_SUIVANT
|
|
;SI TOUS LES MATCH DU TOUR COURANT SONT PLACES, ON AVENCE D'UN TOUR;
|
|
DES_QUE
|
|
ETAPE_PLACEMENT_JOUEUR' =3
|
|
TOUR_COURANT ' =(NO_X)
|
|
(TOUR_X) NUMERO (NO_X)
|
|
(TOUR_X) NB_MATCH 0
|
|
(NO_X) < NB_TOUR'
|
|
|
|
ALORS
|
|
TOUR_COURANT ' <-- ((NO_X) + 1)
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 4
|
|
|
|
REGLE MATCH_SUIVANT_MEME_TOUR
|
|
;SINON, ON CONTINUE;
|
|
DES_QUE
|
|
ETAPE_PLACEMENT_JOUEUR' =3
|
|
TOUR_COURANT ' =(NO_X)
|
|
(TOUR_X) NUMERO (NO_X)
|
|
(TOUR_X) NB_MATCH (NB_X)
|
|
(NB_X) > 0
|
|
|
|
ALORS
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 4
|
|
|
|
;***************************************************************************;
|
|
REGLE CLASSEMENT_MEILLEUR_PAS_PLACE_DANS_MATCH_BOUCLAGE
|
|
;TROUVER LE CLASSEMENT DU MEILLEUR JOUEUR ;
|
|
;DU TOUR COURANT ET QUI NE JOUE PAS;
|
|
QUAND
|
|
ETAPE_PLACEMENT_JOUEUR ' = 4
|
|
TOUR_COURANT ' = (NO_X)
|
|
(TOUR_X) NUMERO (NO_X)
|
|
(JOUEUR_X) JOUE PAS_D_ADVERSAIRE
|
|
(JOUEUR_X) ENTRE (TOUR_X)
|
|
(JOUEUR_X) EST_CLASSE (CLASSEMENT_X)
|
|
(CLASSEMENT_X) VAUT (X)
|
|
(X) < CLASSEMENT_MEILLEUR '
|
|
|
|
ALORS
|
|
CLASSEMENT_MEILLEUR ' <-- (X)
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 4
|
|
|
|
REGLE CLASSEMENT_MEILLEUR_PAS_PLACE_DANS_MATCH_SORTIE
|
|
SI
|
|
ETAPE_PLACEMENT_JOUEUR ' = 4
|
|
TOUR_COURANT ' = (NO_X)
|
|
(TOUR_X) NUMERO (NO_X)
|
|
(JOUEUR_X) JOUE PAS_D_ADVERSAIRE
|
|
(JOUEUR_X) ENTRE (TOUR_X)
|
|
ALORS
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 5
|
|
;***************************************************************************;
|
|
REGLE CLASSEMENT_MOINS_BON_PAS_PLACE_DANS_MATCH_BOUCLAGE
|
|
;TROUVER LE CLASSEMENT DU MOINS BON JOUEUR ;
|
|
;DU TOUR COURANT ET QUI NE JOUE PAS;
|
|
QUAND
|
|
ETAPE_PLACEMENT_JOUEUR ' = 5
|
|
TOUR_COURANT ' = (NO_X)
|
|
(TOUR_X) NUMERO (NO_X)
|
|
(JOUEUR_X) JOUE PAS_D_ADVERSAIRE
|
|
(JOUEUR_X) ENTRE (TOUR_X)
|
|
(JOUEUR_X) EST_CLASSE (CLASSEMENT_X)
|
|
(CLASSEMENT_X) VAUT (X)
|
|
(X) > CLASSEMENT_MOINS_BON '
|
|
|
|
ALORS
|
|
|
|
CLASSEMENT_MOINS_BON ' <-- (X)
|
|
|
|
REGLE CLASSEMENT_MOINS_BON_PAS_PLACE_DANS_MATCH_SORTIE
|
|
SI
|
|
ETAPE_PLACEMENT_JOUEUR ' = 5
|
|
TOUR_COURANT ' = (NO_X)
|
|
(TOUR_X) NUMERO (NO_X)
|
|
(JOUEUR_X) JOUE PAS_D_ADVERSAIRE
|
|
(JOUEUR_X) ENTRE (TOUR_X)
|
|
ALORS
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 6
|
|
|
|
|
|
;***************************************************************************;
|
|
REGLE CREATION_MATCH
|
|
;CREATION DES MATCHS ENTRE LES MEILLEURS ;
|
|
;JOUEUR DU TOUR RESTANT ET LES MOINS BONS;
|
|
|
|
SI
|
|
ETAPE_PLACEMENT_JOUEUR ' = 6
|
|
TOUR_COURANT ' = (NO_X)
|
|
(TOUR_X) NUMERO (NO_X)
|
|
|
|
(JOUEUR_X) JOUE PAS_D_ADVERSAIRE
|
|
(JOUEUR_Y) JOUE PAS_D_ADVERSAIRE
|
|
(JOUEUR_X) ENTRE (TOUR_X)
|
|
(JOUEUR_Y) ENTRE (TOUR_X)
|
|
(JOUEUR_X) <> (JOUEUR_Y)
|
|
|
|
(JOUEUR_X) EST_CLASSE (CLASSEMENT_X)
|
|
(CLASSEMENT_X) VAUT (CLASS_X)
|
|
CLASSEMENT_MEILLEUR ' = (CLASS_X)
|
|
(JOUEUR_Y) EST_CLASSE (CLASSEMENT_Y)
|
|
(CLASSEMENT_Y) VAUT (CLASS_Y)
|
|
CLASSEMENT_MOINS_BON ' = (CLASS_Y)
|
|
|
|
ALORS
|
|
JOUE (JOUEUR_X) <-- (JOUEUR_Y)
|
|
JOUE (JOUEUR_Y) <-- (JOUEUR_X)
|
|
NB_MATCH (TOUR_X) <-- ((NB_MATCH (TOUR_X)) - 1)
|
|
ECRIRE (ENVOI,(JOUEUR_X) " JOUE " (JOUEUR_Y))
|
|
;NB_JOUEUR_ENTRANT (TOUR_X) <-- ((NB_JOUEUR_ENTRANT (TOUR_X)) - 1 );
|
|
;***************************************************************************;
|
|
REGLE MATCH_SUIVANT
|
|
SI
|
|
ETAPE_PLACEMENT_JOUEUR ' = 6
|
|
(JOUEUR_X) JOUE PAS_D_ADVERSAIRE
|
|
(JOUEUR_Y) JOUE PAS_D_ADVERSAIRE
|
|
(JOUEUR_X) <> (JOUEUR_Y)
|
|
ALORS
|
|
ETAPE_PLACEMENT_JOUEUR ' <-- 3
|
|
CLASSEMENT_MOINS_BON ' <-- 0
|
|
CLASSEMENT_MEILLEUR ' <-- 19
|