1021 lines
25 KiB
Plaintext
Executable File
1021 lines
25 KiB
Plaintext
Executable File
;etape 0
|
|
initialisation terrains + creation des couples d'equipe
|
|
et
|
|
placement des couples en fction des journees;
|
|
;etape 1
|
|
placement d'un match;
|
|
;etape 2
|
|
changement journee ou pas;
|
|
;etape 3
|
|
changement semaine ou pas;
|
|
REGLE CALCUL_NOMBRE_JOURNEE
|
|
;*------------CALCUL DU NOMBRE DE JOURNEE PAR DIVISION-----------------*;
|
|
SI
|
|
(D) NB_EQUIPE (NB)
|
|
ALORS
|
|
(D) NB_JOURNEE (((((NB) + 1) DIV 2) * 2) - 1)
|
|
|
|
REGLE JOUR_FERIE
|
|
SI
|
|
(C) ' = COURT
|
|
(S) ' = SEMAINE
|
|
(C) DAY (D)
|
|
(S) FERIE (D)
|
|
ALORS
|
|
(C) OCCUPE (S)
|
|
;
|
|
REGLE TERRAIN_DEBUTE_TARD
|
|
DES_QUE
|
|
(C) ' = COURT
|
|
(S) ' = SEMAINE
|
|
(S_PREC) ' = SEMAINE
|
|
(C) COMMENCE_APRES (S)
|
|
(S) SUIT (S_PREC)
|
|
ALORS
|
|
(C) OCCUPE (S)
|
|
(C) COMMENCE_APRES (S_PREC)
|
|
;
|
|
;*-----------------TERRAIN AVEC ACCES PARTICILIER---------------------*;
|
|
REGLE TERRAIN_PROPRIETAIRE_E1
|
|
;* E1 proprietaire de terrain*;
|
|
SI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_DIV (D)
|
|
(E2) JOUE_DIV (D)
|
|
(E1)<>(E2)
|
|
(C) ' = COURT
|
|
(C) PERMIS (E1)
|
|
ALORS
|
|
((E1) CONTRE (E2)) SUR (C)
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
|
|
REGLE TERRAIN_PROPRIETAIRE_E2
|
|
;* E2 proprietaire de terrain*;
|
|
SI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_DIV (D)
|
|
(E2) JOUE_DIV (D)
|
|
(E1)<>(E2)
|
|
(C) ' = COURT
|
|
(C) PERMIS (E2)
|
|
ALORS
|
|
((E1) CONTRE (E2)) SUR (C)
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
|
|
REGLE TERRAIN_IMPOSSIBLE_E1
|
|
;*terrain interdit pour une equipe qui ne veut pas y jouer*;
|
|
SI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1)<>(E2)
|
|
(E1) JOUE_DIV (D)
|
|
(E2) JOUE_DIV (D)
|
|
(C) ' = COURT
|
|
(C) IMPOSSIBLE (E1)
|
|
ALORS
|
|
((E1) CONTRE (E2)) SUR (C) ' INEXISTANT
|
|
|
|
REGLE TERRAIN_IMPOSSIBLE_E2
|
|
;*terrain interdit pour une equipe qui ne veut pas y jouer*;
|
|
SI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1)<>(E2)
|
|
(E1) JOUE_DIV (D)
|
|
(E2) JOUE_DIV (D)
|
|
(C) ' = COURT
|
|
(C) IMPOSSIBLE (E2)
|
|
ALORS
|
|
((E1) CONTRE (E2)) SUR (C) ' INEXISTANT
|
|
|
|
;*----------------CREATION DES MATCHS ET JOURNEES----------------*;
|
|
REGLE CREER_MATCH
|
|
;* permet de calculer l'ensemble des matches aller *;
|
|
SI
|
|
(E1) ' = EQUIPE
|
|
(E1) JOUE_DIV (D)
|
|
ALORS
|
|
POUR_TOUT ((E2))
|
|
TEL_QUE [
|
|
(E2) ' = EQUIPE
|
|
(E1) <> (E2)
|
|
(E2) JOUE_DIV (D)
|
|
(E2) JOUE_MATCH (E1) ' INEXISTANT
|
|
;* si on est deja passé avec les equipe inversées,la regle n'est plus verifie*;
|
|
]
|
|
DEDUIRE [
|
|
(E1) JOUE_MATCH (E2)
|
|
;*(E2) JOUE_RETOUR_CONTRE (E1)*;
|
|
]
|
|
REGLE CALCUL_JOURNEE_PAS_JOUE_E1
|
|
;* cette regle permet de calculer la journee des rencontres pour la journee courante*;
|
|
;*on place aussi les retour plus ou moins tard en fction du nb d'equipes de la division*;
|
|
SI
|
|
ETAPE ' = 0
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_MATCH (E2)
|
|
JOUR_COURANT ' = (J_ALLER)
|
|
(E1) JOUE_JOURNEE (J_ALLER) ' INEXISTANT
|
|
(E2) JOUE_JOURNEE (J_ALLER) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) NB_JOURNEE (NB_JOUR)
|
|
(E1) PAS_JOUE VRAI
|
|
ALORS
|
|
(E1) JOUE_MATCH (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J_ALLER) ' VRAI
|
|
((E2) JOUE_CONTRE (E1)) JOURNEE ((J_ALLER) + (NB_JOUR)) ' VRAI
|
|
(E1) JOUE_JOURNEE (J_ALLER) ' VRAI
|
|
(E2) JOUE_JOURNEE (J_ALLER) ' VRAI
|
|
MATCHS JOURNEE (J_ALLER) ' VRAI
|
|
MATCHS JOURNEE ((J_ALLER) + (NB_JOUR)) ' VRAI
|
|
REPETITION ' <-- 0
|
|
(E1) PAS_JOUE VRAI ' INEXISTANT
|
|
POUR_TOUT ()
|
|
TEL_QUE [
|
|
(D) JOUE_BELLE VRAI
|
|
]
|
|
DEDUIRE [
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE ((J_ALLER) + (NB_JOUR) + (NB_JOUR)) ' VRAI
|
|
MATCHS JOURNEE ((J_ALLER) + (NB_JOUR) + (NB_JOUR)) ' VRAI
|
|
]
|
|
|
|
REGLE CALCUL_JOURNEE_PAS_JOUE_E2
|
|
;* cette regle permet de calculer la journee des rencontres pour la journee courante*;
|
|
;*on place aussi les retour plus ou moins tard en fction du nb d'equipes de la division*;
|
|
SI
|
|
ETAPE ' = 0
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_MATCH (E2)
|
|
JOUR_COURANT ' = (J_ALLER)
|
|
(E1) JOUE_JOURNEE (J_ALLER) ' INEXISTANT
|
|
(E2) JOUE_JOURNEE (J_ALLER) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) NB_JOURNEE (NB_JOUR)
|
|
(E2) PAS_JOUE VRAI
|
|
ALORS
|
|
(E1) JOUE_MATCH (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J_ALLER) ' VRAI
|
|
((E2) JOUE_CONTRE (E1)) JOURNEE ((J_ALLER) + (NB_JOUR)) ' VRAI
|
|
(E1) JOUE_JOURNEE (J_ALLER) ' VRAI
|
|
(E2) JOUE_JOURNEE (J_ALLER) ' VRAI
|
|
MATCHS JOURNEE (J_ALLER) ' VRAI
|
|
MATCHS JOURNEE ((J_ALLER) + (NB_JOUR)) ' VRAI
|
|
REPETITION ' <-- 0
|
|
(E2) PAS_JOUE VRAI ' INEXISTANT
|
|
POUR_TOUT ()
|
|
TEL_QUE [
|
|
(D) JOUE_BELLE VRAI
|
|
]
|
|
DEDUIRE [
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE ((J_ALLER) + (NB_JOUR) + (NB_JOUR)) ' VRAI
|
|
MATCHS JOURNEE ((J_ALLER) + (NB_JOUR) + (NB_JOUR)) ' VRAI
|
|
]
|
|
|
|
REGLE CALCUL_JOURNEE
|
|
;* cette regle permet de calculer la journee des rencontres pour la journee courante*;
|
|
;*on place aussi les retour plus ou moins tard en fction du nb d'equipes de la division*;
|
|
SI
|
|
ETAPE ' = 0
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_MATCH (E2)
|
|
JOUR_COURANT ' = (J_ALLER)
|
|
(E1) JOUE_JOURNEE (J_ALLER) ' INEXISTANT
|
|
(E2) JOUE_JOURNEE (J_ALLER) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) NB_JOURNEE (NB_JOUR)
|
|
ALORS
|
|
(E1) JOUE_MATCH (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J_ALLER) ' VRAI
|
|
((E2) JOUE_CONTRE (E1)) JOURNEE ((J_ALLER) + (NB_JOUR)) ' VRAI
|
|
(E1) JOUE_JOURNEE (J_ALLER) ' VRAI
|
|
(E2) JOUE_JOURNEE (J_ALLER) ' VRAI
|
|
MATCHS JOURNEE (J_ALLER) ' VRAI
|
|
MATCHS JOURNEE ((J_ALLER) + (NB_JOUR)) ' VRAI
|
|
REPETITION ' <-- 0
|
|
POUR_TOUT ()
|
|
TEL_QUE [
|
|
(D) JOUE_BELLE VRAI
|
|
]
|
|
DEDUIRE [
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE ((J_ALLER) + (NB_JOUR) + (NB_JOUR)) ' VRAI
|
|
MATCHS JOURNEE ((J_ALLER) + (NB_JOUR) + (NB_JOUR)) ' VRAI
|
|
]
|
|
|
|
REGLE FIN_CALCUL_JOURNEE
|
|
;* si apres examun des 2 regles precedentes, on a toujours repetition=1*;
|
|
;* c'est qu'on a place tous les matchs*;
|
|
SI
|
|
REPETITION ' = 1
|
|
ALORS
|
|
ETAPE ' <-- 1
|
|
JOUR_COURANT ' <-- 1
|
|
|
|
REGLE PAS_JOUE
|
|
SI
|
|
(E) ' = EQUIPE
|
|
JOUR_COURANT ' = (J)
|
|
(E) JOUE_JOURNEE (J) ' INEXISTANT
|
|
ALORS
|
|
(E) PAS_JOUE VRAI
|
|
|
|
REGLE CHANGER_JOURNEE
|
|
;*quand on a place tous les matchs de la journee*;
|
|
SI
|
|
ETAPE ' = 0
|
|
REPETITION ' = 0
|
|
JOUR_COURANT ' = (J)
|
|
ALORS
|
|
JOUR_COURANT ' <-- (J) + 1
|
|
REPETITION ' <-- 1
|
|
|
|
;*---------------PLACEMENT DES MATCHS ALLER----------------*;
|
|
;*par journee et par semaine*;
|
|
;*on commence par remplir les terrain les plus contraints*;
|
|
REGLE PLACEMENT_MATCH**JOUR_COURANT**PROPRIETAIRE*LUNDI
|
|
;* on place les match du lundi avec une equipe proprieraire*;
|
|
QUAND
|
|
ETAPE ' =1
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
ALORS
|
|
((((E1) JOUE_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE (E2) ' VRAI
|
|
(E2) A_JOUE (E1) ' INEXISTANT
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 2
|
|
|
|
REGLE PLACEMENT_MATCH**JOUR_COURANT**PROPRIETAIRE*PAS_LUNDI
|
|
;* on place les match des autre jours avec une equipe proprieraire*;
|
|
QUAND
|
|
ETAPE ' =1
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI ' INEXISTANT
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
ALORS
|
|
((((E1) JOUE_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE (E2) ' VRAI
|
|
(E2) A_JOUE (E1) ' INEXISTANT
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 2
|
|
|
|
REGLE PLACEMENT_MATCH**JOUR_COURANT**LIBRE**LUNDI
|
|
;* on place les match du lundi sans equipe proprieraire*;
|
|
QUAND
|
|
ETAPE ' =1
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
ALORS
|
|
((((E1) JOUE_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE (E2) ' VRAI
|
|
(E2) A_JOUE (E1) ' INEXISTANT
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 2
|
|
|
|
REGLE PLACEMENT_MATCH**JOUR_COURANT**LIBRE**PAS_LUNDI
|
|
;* on place les match des autre jours sans equipe proprieraire*;
|
|
QUAND
|
|
ETAPE ' =1
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI ' INEXISTANT
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
ALORS
|
|
((((E1) JOUE_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE (E2) ' VRAI
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) A_JOUE (E1) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 2
|
|
|
|
|
|
;*---------------PLACEMENT DES MATCHS ALLER----------------*;
|
|
;*par journee et par semaine*;
|
|
;*on commence par remplir les terrain les plus contraints*;
|
|
REGLE PLACEMENT_MATCH**JOUR_COURANT**PROPRIETAIRE*MERCREDI
|
|
;* on place les match du lundi avec une equipe proprieraire*;
|
|
QUAND
|
|
ETAPE ' =1
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY MERCREDI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
ALORS
|
|
((((E1) JOUE_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE (E2) ' VRAI
|
|
(E2) A_JOUE (E1) ' INEXISTANT
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 2
|
|
|
|
REGLE PLACEMENT_MATCH**JOUR_COURANT**PROPRIETAIRE*PAS_MERCREDI
|
|
;* on place les match des autre jours avec une equipe proprieraire*;
|
|
QUAND
|
|
ETAPE ' =1
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY MERCREDI ' INEXISTANT
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
ALORS
|
|
((((E1) JOUE_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE (E2) ' VRAI
|
|
(E2) A_JOUE (E1) ' INEXISTANT
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 2
|
|
|
|
REGLE PLACEMENT_MATCH**JOUR_COURANT**LIBRE**MERCREDI
|
|
;* on place les match du lundi sans equipe proprieraire*;
|
|
QUAND
|
|
ETAPE ' =1
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY MERCREDI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
ALORS
|
|
((((E1) JOUE_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE (E2) ' VRAI
|
|
(E2) A_JOUE (E1) ' INEXISTANT
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 2
|
|
|
|
REGLE PLACEMENT_MATCH**JOUR_COURANT**LIBRE**PAS_MERCREDI
|
|
;* on place les match des autre jours sans equipe proprieraire*;
|
|
QUAND
|
|
ETAPE ' =1
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY MERCREDI ' INEXISTANT
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
ALORS
|
|
((((E1) JOUE_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE (E2) ' VRAI
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) A_JOUE (E1) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 2
|
|
|
|
REGLE ABSCENCE_MATCH_JOUR_COURANT
|
|
;*si il n'y a pas de match a placer cette journee la*;
|
|
SI
|
|
ETAPE ' =1
|
|
JOUR_COURANT ' = (J)
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
MATCHS JOURNEE (J) ' INEXISTANT
|
|
DERNIER_JOUR ' = (J_MAX)
|
|
(J) <= (J_MAX)
|
|
ALORS
|
|
JOUR_COURANT ' <-- JOUR_COURANT ' + 1
|
|
|
|
;*-----CHANGEMENT DE JOURNEE----------------*;
|
|
REGLE MEME_JOUR
|
|
;* il reste des match a placer dans la journee courante*;
|
|
QUAND
|
|
ETAPE ' = 2
|
|
JOUR_COURANT ' = (J_COUR)
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J_COUR)
|
|
(E1) A_JOUE (E2)' INEXISTANT
|
|
ALORS
|
|
ETAPE ' <-- 3
|
|
|
|
REGLE JOUR_SUIVANT
|
|
;* il ne reste pas de match a placer dans la journee courante*;
|
|
;* puisque l'on n'est pas passe dans la regle precedente*;
|
|
;* on passe a la journee suivante*;
|
|
SI
|
|
ETAPE ' = 2
|
|
JOUR_COURANT ' = (J_COUR)
|
|
ALORS
|
|
JOUR_COURANT ' <-- JOUR_COURANT ' + 1
|
|
(J_COUR) TRAITE VRAI
|
|
ETAPE ' <-- 3
|
|
|
|
;*-----CHANGEMENT DE SEMAINE----------------*;
|
|
;*on regarde s'il reste des matchs que l'on peut placer*;
|
|
REGLE RESTE_MATCH_SEMAINE**MERCREDI**PROPRIETAIRE
|
|
;*le lundi sur un terrain proprietaire*;
|
|
QUAND
|
|
ETAPE ' =3
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2) (D))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY MERCREDI
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE RESTE_MATCH_SEMAINE**MERCREDI**LIBRE
|
|
;*le lundi sur un terrain libre*;
|
|
QUAND
|
|
ETAPE ' =3
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2) (D))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY MERCREDI
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE RESTE_MATCH_SEMAINE**PAS_MERCREDI**PROPRIETAIRE
|
|
;*un autre jour sur un terrain proprietaire*;
|
|
QUAND
|
|
ETAPE ' =3
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
(C) DAY MERCREDI ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE RESTE_MATCH_SEMAINE**PAS_MERCREDI**LIBRE
|
|
;*un autre jour sur un terrain libre*;
|
|
QUAND
|
|
ETAPE ' =3
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((E1) (E2) (C))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) DAY MERCREDI ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY MERCREDI ' INEXISTANT
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
;*-----CHANGEMENT DE SEMAINE----------------*;
|
|
;*on regarde s'il reste des matchs que l'on peut placer*;
|
|
REGLE RESTE_MATCH_SEMAINE**LUNDI**PROPRIETAIRE
|
|
;*le lundi sur un terrain proprietaire*;
|
|
QUAND
|
|
ETAPE ' =3
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2) (D))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE RESTE_MATCH_SEMAINE**LUNDI**LIBRE
|
|
;*le lundi sur un terrain libre*;
|
|
QUAND
|
|
ETAPE ' =3
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2) (D))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE RESTE_MATCH_SEMAINE**PAS_LUNDI**PROPRIETAIRE
|
|
;*un autre jour sur un terrain proprietaire*;
|
|
QUAND
|
|
ETAPE ' =3
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
(C) DAY LUNDI ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE RESTE_MATCH_SEMAINE**PAS_LUNDI**LIBRE
|
|
;*un autre jour sur un terrain libre*;
|
|
QUAND
|
|
ETAPE ' =3
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((E1) (E2) (C))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) DAY LUNDI ' INEXISTANT
|
|
((E1) JOUE_CONTRE (E2)) JOURNEE (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI ' INEXISTANT
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
(E1) A_JOUE (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE CHANGEMENT_SEMAINE
|
|
;* si on n'a pas trouve de match a place cette semaine, on change*;
|
|
SI
|
|
ETAPE ' = 3
|
|
SEMAINE_COURANTE ' = (S_COUR)
|
|
(S_SVT) SUIT (S_COUR)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
SEMAINE_COURANTE ' = (S_SVT)
|
|
ETAPE ' <-- 1
|
|
|
|
REGLE MEME_SEMAINE
|
|
;* sinon (on n'est pas passe dans la regle precedente)*;
|
|
;*on reinitialise*;
|
|
QUAND
|
|
ETAPE ' = 3
|
|
CONTINUER_SEMAINE ' = 1
|
|
ALORS
|
|
ETAPE ' <-- 1
|
|
CONTINUER_SEMAINE ' <-- 0
|
|
|
|
^
|
|
REGLE FIN_MATCH
|
|
;*si on n'a pas pu passer dans aucune des regles *;
|
|
;*MEME_JOUR ou JOUR_SUIVANT*;
|
|
;* on passe aux matchs retours*;
|
|
SI
|
|
ETAPE ' = 2
|
|
JOUR_COURANT ' = (J)
|
|
DERNIER_JOUR ' =(J)
|
|
ALORS
|
|
JOUR_COURANT '<-- 1
|
|
ETAPE ' <-- 6;* on commence par regarder si on doit changer de semaine*;
|
|
|
|
;*---------------PLACEMENT DES MATCHS RETOUR----------------*;
|
|
;*par journee et par semaine*;
|
|
;*meme chose que pour les matchs aller*;
|
|
REGLE PLACEMENT_MATCH**RETOUR**JOUR_COURANT**PROPRIETAIRE**LUNDI
|
|
QUAND
|
|
ETAPE ' =4
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(E1) A_JOUE_RETOUR (E2) ' INEXISTANT
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
ALORS
|
|
((((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE_RETOUR (E2) ' VRAI
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 5
|
|
|
|
REGLE PLACEMENT_MATCH**RETOUR**JOUR_COURANT**PROPRIETAIRE**PAS_LUNDI
|
|
QUAND
|
|
ETAPE ' =4
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI ' INEXISTANT
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) A_JOUE_RETOUR (E2) ' INEXISTANT
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
ALORS
|
|
((((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE_RETOUR (E2) ' VRAI
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 5
|
|
|
|
REGLE PLACEMENT_MATCH**RETOUR**JOUR_COURANT**LIBRE**LUNDI
|
|
QUAND
|
|
ETAPE ' =4
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(E1) A_JOUE_RETOUR (E2) ' INEXISTANT
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
|
|
ALORS
|
|
((((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE_RETOUR (E2) ' VRAI
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 5
|
|
|
|
REGLE PLACEMENT_MATCH**RETOUR**JOUR_COURANT**LIBRE**PAS_LUNDI
|
|
QUAND
|
|
ETAPE ' =4
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI ' INEXISTANT
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) A_JOUE_RETOUR (E2) ' INEXISTANT
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
ALORS
|
|
((((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)) PDT_SEM (S)) SUR_COURT (C)
|
|
(C) OCCUPE (S) ' VRAI
|
|
(E1) A_JOUE_RETOUR (E2) ' VRAI
|
|
(E1) JOUE_SEM (S) ' VRAI
|
|
(E2) JOUE_SEM (S) ' VRAI
|
|
ECRIRE(ENVOI, (E1) "&" (E2) "&" (S) "&" (C) "&" )
|
|
ETAPE ' <-- 5
|
|
|
|
REGLE ABSCENCE_RETOUR_JOUR_COURANT
|
|
SI
|
|
ETAPE ' =4
|
|
JOUR_COURANT ' = (J)
|
|
(E1) ' = EQUIPE
|
|
(E2) ' = EQUIPE
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J) 'INEXISTANT
|
|
ALORS
|
|
ETAPE ' <-- 5
|
|
|
|
|
|
REGLE MEME_JOUR_RETOUR
|
|
QUAND
|
|
ETAPE ' = 5
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J_COUR)
|
|
JOUR_COURANT ' = (J_COUR)
|
|
(E1) A_JOUE_RETOUR (E2)' INEXISTANT
|
|
ALORS
|
|
ETAPE ' <-- 6
|
|
|
|
REGLE JOUR_SUIVANT_RETOUR
|
|
SI
|
|
ETAPE ' = 5
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J_SVT)
|
|
(J_SVT) TRAITE_RETOUR VRAI ' INEXISTANT
|
|
JOUR_COURANT ' = (J_COUR)
|
|
(J_SVT) APRES (J_COUR)
|
|
ALORS
|
|
JOUR_COURANT ' <-- (J_SVT)
|
|
(J_COUR) TRAITE_RETOUR VRAI
|
|
ETAPE ' <-- 6
|
|
|
|
|
|
REGLE RESTE_MATCH_SEMAINE_RETOUR**LUNDI**PROPRIETAIRE
|
|
QUAND
|
|
ETAPE ' =6
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2) (D))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)
|
|
JOUR_COURANT ' = (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(E1) A_JOUE_RETOUR (E2) ' INEXISTANT
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE RESTE_MATCH_SEMAINE_RETOUR**LUNDI**LIBRE
|
|
QUAND
|
|
ETAPE ' =6
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2) (D))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)
|
|
JOUR_COURANT ' = (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) JOUE_DIV (D)
|
|
(D) JOUE_LIGUE (S) ' INEXISTANT
|
|
(E1) A_JOUE_RETOUR (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE RESTE_MATCH_SEMAINE_RETOUR**PAS_LUNDI**PROPRIETAIRE
|
|
QUAND
|
|
ETAPE ' =6
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI ' INEXISTANT
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)
|
|
JOUR_COURANT ' = (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) A_JOUE_RETOUR (E2) ' INEXISTANT
|
|
(((E1) CONTRE (E2)) SUR (C)) TYPE PROPRIETAIRE
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE RESTE_MATCH_SEMAINE_RETOUR**PAS_LUNDI**LIBRE
|
|
QUAND
|
|
ETAPE ' =6
|
|
SEMAINE_COURANTE ' = (S)
|
|
JOUR_COURANT ' = (J)
|
|
ALORS
|
|
POUR_TOUT ()
|
|
IL_EXISTE ((C) (E1) (E2))
|
|
TEL_QUE [
|
|
(C) ' = COURT
|
|
(C) PERMIS (E2) ' INEXISTANT
|
|
(C) PERMIS (E1) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E2) ' INEXISTANT
|
|
(C) IMPOSSIBLE (E1) ' INEXISTANT
|
|
(C) OCCUPE (S) ' INEXISTANT
|
|
(C) DAY LUNDI ' INEXISTANT
|
|
((E1) JOUE_RETOUR_CONTRE (E2)) JOURNEE (J)
|
|
JOUR_COURANT ' = (J)
|
|
(E1) JOUE_SEM (S) ' INEXISTANT
|
|
(E2) JOUE_SEM (S) ' INEXISTANT
|
|
(E1) A_JOUE_RETOUR (E2) ' INEXISTANT
|
|
]
|
|
DEDUIRE [
|
|
CONTINUER_SEMAINE ' <-- 1
|
|
]
|
|
|
|
REGLE CHANGEMENT_SEMAINE_RETOUR
|
|
SI
|
|
ETAPE ' = 6
|
|
SEMAINE_COURANTE ' = (S_COUR)
|
|
(S_SVT) SUIT (S_COUR)
|
|
CONTINUER_SEMAINE ' = 0
|
|
ALORS
|
|
SEMAINE_COURANTE ' = (S_SVT)
|
|
ETAPE ' <-- 4
|
|
|
|
REGLE MEME_SEMAINE_RETOUR
|
|
QUAND
|
|
ETAPE ' = 6
|
|
CONTINUER_SEMAINE ' = 1
|
|
ALORS
|
|
ETAPE ' <-- 4
|
|
CONTINUER_SEMAINE ' <-- 0
|