exemples/pLogo/ECLUSE.JLOGO

POUR G& 
VT
EC [NON PROTEGE PAS DE CORRECTION :L]
FIN

POUR POSITION :X :Y
CT LC FPOS PH :X :Y BC
FIN

POUR AVAL-BASSIN :L
SI DEUXIEME? [BASSIN] :L [BOUGE-G 36 31 10 23 -56 DONNE "PE [BASSIN]]
FIN

POUR DEUXIEME? :X :L
RENDS EGAL? ITEM 2 :L PREM :X
FIN

POUR BASSIN :L
COULEUR-EAU
SI PREMIER? [PLEIN] :L [RECPL-A -72 10 40 71 DONNE "B [PLEIN]]
SI PREMIER? [VIDE] :L [RECPL-A -72 10 20 71 DONNE "B [VIDE]]
FIN

POUR COULEUR-EAU 
FCC 10 ;4
FIN

POUR PREMIER? :X :L
RENDS EGAL? PREM :L PREM :X
FIN

POUR ELEMENT-D :L
TD 90
AV :L
TG 90
AV 1
TG 90
AV :L
TD 90
FIN

POUR COULEUR-FOND 
FCC 0
FIN

POUR COULEUR-BATEAU 
FCC  11 ;3
FIN

POUR ELEMENT-G :L
TD 90
AV :L
TG 90
RE 1
TG 90
AV :L
TD 90
FIN

POUR BIEF-AMONT 
COULEUR-EAU
RECPL-A -160 10 40 79
FIN

POUR BIEF-AVAL 
COULEUR-EAU
RECPL-A 8 10 20 85
FIN

POUR PORTE :L
DONNE MOT "PO PREM :L SP :L
SI PREMIER? [AMONT] :L [SI DEUXIEME? [FERMEE] :L [COULEUR-PORTE RECPL-A -80 10 5 7 RECPL-A -80 23 37 7] [COULEUR-EAU RECPL-A -80 10 5 7 RECPL-A -80 23 27 7 COULEUR-FOND RECPL-A -80 51 9 7]]
SI PREMIER? [AVAL] :L [SI DEUXIEME? [FERMEE] :L [COULEUR-PORTE RECPL-A 0 10 5 7 RECPL-A 0 23 37 7] [COULEUR-EAU RECPL-A 0 10 5 7 RECPL-A 0 23 7 7 COULEUR-FOND RECPL-A 0 31 29 7]]
FIN

POUR COULEUR-PORTE 
FCC 1
FIN

POUR VANNE :L
DONNE MOT "V PREM :L SP :L
SI PREMIER? [AMONT] :L [SI DEUXIEME? [FERMEE] :L [COULEUR-VANNE RECPL-A -80 15 7 7] [COULEUR-EAU RECPL-A -80 15 7 7]]
SI PREMIER? [AVAL] :L [SI DEUXIEME? [FERMEE] :L [COULEUR-VANNE RECPL-A 0 15 7 7] [COULEUR-EAU RECPL-A 0 15 7 7]]
FIN

POUR COULEUR-VANNE 
;FCC 2
FIN

POUR VIDE 
DESCENDS -72 50 71 -56 61 23 19
FIN

POUR DESCENDS :XB :YB :LB :XPE :YPE :LPE :PLEIN
SI EGAL? :PLEIN 0 [STOP]
COULEUR-FOND
POSITION :XB :YB
ELEMENT-G :LB
POSITION :XPE :YPE
ELEMENT-G :LPE
COULEUR-BATEAU
POSITION :XPE :YPE - 11
ELEMENT-G :LPE
DESCENDS :XB :YB - 1 :LB :XPE :YPE - 1 :LPE :PLEIN - 1
FIN

POUR MONTE :XB :YB :LB :XPE :YPE :LPE :PLEIN
SI PLP? :PLEIN 0 [STOP]
COULEUR-FOND
POSITION :XPE :YPE - 11
ELEMENT-D :LPE
POSITION :XPE :YPE
COULEUR-BATEAU
ELEMENT-D :LPE
POSITION :XB :YB
COULEUR-EAU
ELEMENT-D :LB
MONTE :XB :YB + 1 :LB :XPE :YPE + 1 :LPE :PLEIN - 1
FIN

POUR BATEAU :L
DONNE "PE :L
COULEUR-BATEAU
SI PREMIER? [AMONT] :L [RECPL-A -130 51 10 23]
SI PREMIER? [AVAL] :L [RECPL-A 36 31 10 23]
FIN

POUR DEPART :L
VE ;ME 13
FCFG 0
BIEF-AMONT
PORTE [AMONT FERMEE]
VANNE [AMONT FERMEE]
BASSIN [VIDE]
SI DEUXIEME? [VIDE] :L [DONNE "B [VIDE]]
SI DEUXIEME? [PLEIN] :L [DONNE "B [PLEIN] REMPLIS-BASSIN]
PORTE [AVAL FERMEE]
VANNE [AVAL FERMEE]
BIEF-AVAL
SI PREMIER? [AMONT] :L [DONNE "PE [AMONT] BATEAU [AMONT]]
SI PREMIER? [AVAL] :L [DONNE "PE [AVAL] BATEAU [AVAL]]
FIN

POUR REMPLIS-BASSIN 
COULEUR-EAU
RECPL-A -72 30 20 71
DONNE "B [PLEIN]
FIN

POUR OUVRE :L
SI PREMIER? [PORTE] :L [PORTE PH SP :L "OUVERTE]
SI PREMIER? [VANNE] :L [VANNE PH SP :L "OUVERTE]
FIN

POUR PASSE :L
SI PREMIER? [AMONT] :L [AMONT-BASSIN :L]
SI PREMIER? [BASSIN] :L [SORTIE-BASSIN :L]
SI PREMIER? [AVAL] :L [AVAL-BASSIN :L]
FIN

POUR AMONT-BASSIN :L
SI DEUXIEME? [BASSIN] :L [BOUGE-D -131 51 10 23 -56 DONNE "PE [BASSIN]]
FIN

POUR SORTIE-BASSIN :L
SI DEUXIEME? [AVAL] :L [BOUGE-D -56 31 10 23 36 DONNE "PE [AVAL]]
SI DEUXIEME? [AMONT] :L [BOUGE-G -56 51 10 23 -131 DONNE "PE [AMONT]]
FIN

POUR FERME :L
SI PREMIER? [PORTE] :L [PORTE PH SP :L "FERMEE]
SI PREMIER? [VANNE] :L [VANNE PH SP :L "FERMEE]
FIN

POUR BATEAU? :SI
RENDS EGAL? :SI :PE
FIN

POUR BASSIN? :SI
RENDS EGAL? :SI :B
FIN

POUR VANNE? :SI
RENDS EGAL? CHOSE MOT "V PREM :SI SP :SI
FIN

POUR PORTE? :SI
RENDS EGAL? CHOSE MOT "PO PREM :SI SP :SI
FIN

POUR LPROC 
RENDS [G& POSITION AVAL-BASSIN DEUXIEME? BASSIN COULEUR-EAU PREMIER? ELEMENT-D COULEUR-FOND COULEUR-BATEAU ELEMENT-G BIEF-AMONT BIEF-AVAL PORTE COULEUR-PORTE VANNE COULEUR-VANNE VIDE DESCENDS MONTE BATEAU DEPART REMPLIS-BASSIN OUVRE PASSE AMONT-BASSIN SORTIE-BASSIN FERME BATEAU? BASSIN? VANNE? PORTE? LPROC MONTE-BATEAU DESCENDS-BATEAU VIDE-BASSIN RECPL-R BOUGE-D BOUGE-G RECPL-A ECLUSE SOS SOS1 SOS2 SOS3 #ETAT #ESSAI]
FIN

POUR MONTE-BATEAU 
MONTE -72 30 71 -56 41 23 19
DONNE "B [PLEIN]
FIN

POUR DESCENDS-BATEAU 
DESCENDS -72 50 71 -56 61 23 19
DONNE "B [VIDE]
FIN

POUR VIDE-BASSIN 
COULEUR-FOND
RECPL-R -72 50 19 71
DONNE "B [VIDE]
FIN

POUR RECPL-R :X :Y :L :N
POSITION :X :Y
REPETE :L [ELEMENT-G :N]
FIN

POUR BOUGE-D :X :Y :L :N :Z
SI EGAL? :X :Z [STOP]
POSITION :X :Y
COULEUR-FOND AV :L
POSITION :X + :N :Y
COULEUR-BATEAU AV :L
BOUGE-D :X + 1 :Y :L :N :Z
FIN

POUR BOUGE-G :X :Y :L :N :Z
SI EGAL? :X :Z [STOP]
POSITION :X + :N :Y
COULEUR-FOND AV :L
POSITION :X - 1 :Y
COULEUR-BATEAU AV :L
BOUGE-G :X - 1 :Y :L :N :Z
FIN

POUR RECPL-A :X :Y :L :N
POSITION :X :Y
REPETE :L [ELEMENT-D :N]
FIN

POUR ECLUSE 
ME 13
FCFG 0
CT
EC [Pour conna”tre les commandes]
EC [dont tu disposes, tu peux]
FCT 1 EC [ˆ tout moment] FCT 2
TAPE [taper] FCT 7 EC [$ SOS] FCT 2
FIN

POUR SOS 
VT
EC [RENSEIGNEMENTS SUR:]
FCT 6 TAPE [-le dessin de l'Žcluse:]
FCT 1 EC [tapez 1]
FCT 6 TAPE [-les manoeuvres possibles:]
FCT 1 EC [tapez 2]
FCT 6 TAPE [-les tests d'Žtat de l'Žcluse:]
FCT 1 EC [tapez 3]
DONNE "G& LISCAR
SI NON MEMBRE? :G& [1 2 3] [SOS]
FCT 2
EXEC MD MOT "SOS :G& []
FIN

POUR SOS1 
VT FCT 2
EC [$ Pour dessiner l'Žcluse dans son Žtat]
EC [initial, tu disposes de la commande :]
FCT 7
EC []
EC [DEPART [AMONT/AVAL VIDE/PLEIN]]
EC []
FCT 2
EC [$ Tu obtiendras le dessin de l'Žcluse]
EC [complte, le bateau pouvant tre]
EC [en AMONT ou en AVAL,]
EC [le bassin ‚tant PLEIN ou VIDE]
EC []
FCT 7
EC [Exemple: DEPART [AVAL PLEIN]]
FCT 2
FIN

POUR SOS2 
VT
FCT 1 EC [COMMANDES D'ECLUSAGE]
FCT 7
EC [-->OUVRE [VANNE/PORTE AMONT/AVAL]]
EC [-->FERME [VANNE/PORTE AMONT/AVAL]]
TAPE [-->DESCENDS-BATEAU] FCT 3 TAPE [$ ou $ ] FCT 7 TAPE [MONTE-BATEAU] FCT 2 TAPE [$ pour faire descendre]
EC [$ ou monter le niveau $ $ $ d'eau ET le bateau dans le bassin]
FCT 7
TAPE [-->VIDE-BASSIN] FCT 3 TAPE [$ ou $ ] FCT 7 TAPE [REMPLIS-BASSIN] FCT 2
EC [$ pour $ $ faire descendre ou monter le niveau] EC [$ SANS le bateau]
FCT 7
TAPE [-->PASSE [AMONT/BASSIN/AVAL AMONT/BASSIN/AVAL]] FCT 2 EC [$ fait passer le bateau]
FIN

POUR SOS3 
VT
FCT 1 EC [TESTS D'ECLUSAGE] FCT 2
FCT 7
EC [->BATEAU? [AMONT/BASSIN/AVAL]]
FCT 2
EC [$ $ La r‚ponse est VRAI si le bateau]
EC [$ $ est dans le bief donn‚ entre crochets]
FCT 7
EC [->BASSIN? [PLEIN/VIDE]]
FCT 2
EC [$ $ La r‚ponse est VRAI si le bassin]
EC [$ $ est dans l'‚tat indiqu‚.]
FCT 7
EC [->PORTE? [AMONT/AVAL OUVERTE/FERMEE]]
EC [->VANNE? [AMONT/AVAL OUVERTE/FERMEE]]
FCT 2
EC [$ $ rŽpond VRAI si la porte ou la vanne]
EC [$ $ est dans l'Žtat indiquŽ.]
FIN

POUR #ETAT 
VT FCT 1 EC PH "OUVERTE-vanne-amont= VANNE? [AMONT OUVERTE] EC PH "OUVERTE-porte-amont= PORTE? [AMONT OUVERTE] FCT 4 EC PH "BASSIN-vide?= BASSIN? [VIDE] FCT 3 EC PH "OUVERTE-vanne-aval= VANNE? [AVAL OUVERTE] EC PH "OUVERTE-porte-aval= PORTE? [AVAL OUVERTE] FCT 2 EC PH "BATEAU-EN= :PE
FIN

POUR #ESSAI 
ECLUSE
DEPART [AVAL PLEIN]
OUVRE [VANNE AVAL]
VIDE-BASSIN
OUVRE [PORTE AVAL]
PASSE [AVAL BASSIN]
FERME [PORTE AVAL]
FERME [VANNE AVAL]
OUVRE [VANNE AMONT]
MONTE-BATEAU
OUVRE [PORTE AMONT]
PASSE [BASSIN AMONT]
FERME [PORTE AMONT]
FERME [VANNE AMONT]
FIN

#ESSAI
 
 
Me faire un don