Vous trouverez-ci-dessous une adaptation d'un programme paru dans
l'ancienne revue Jeux&Stratégie n°1.
L'idée de base est simple:
2 groupes de moutons cherchent à changer de place.
Leur espace vital est de 7 cases.(oh, la taille maximale
d'une chaine de caractères sur pas mal de pockets,
quel hasard...
La situation de départ est:
ABC.123
la situation à laquelle on souhaite arriver est:
123.ABC
En suivant les règles suivantes:
1) un mouton ne se deplace que dans un sens
(les ABC vers la droite, les 123 vers la gauche)
2) un mouton peut aller sur une case vide proximitaire
3) un mouton peut passer par dessus un autre mouton
Voila. Libre à vous de rajouter du son, des graphismes, etc...
Le programme est adaptable aux autres pockets
La solution tient en 15 coups.
Amusez-vous bien...
Paul - ovinologue depuis 1836
Code : Tout sélectionner
10 CLS :CLEAR :LOCATE 11,0:PRINT "* SAUTE-MOUTON *":PRINT "Un remue-meninges paru dans le magazine"
20 LOCATE 10,2:PRINT "Jeux&Strategie no 1":LOCATE 7,3:WAIT 20:PRINT "Adaptation : Paul Tergeist"
30 A$=INKEY$ :IF A$=""THEN 30
40 CLS :WAIT 0:LOCATE 10,0:PRINT "* MENU PRINCIPAL *"
50 LOCATE 10,1:PRINT "Regles du jeu....1":LOCATE 10,2:PRINT "Jouer............2":LOCATE 10,3:PRINT "Quitter..........3"
60 A$=INKEY$ :IF A$="1" THEN 100
70 IF A$="2" LET R$="":GOTO 210
80 IF A$="3" THEN 200
90 GOTO 60
100 CLS :PRINT "Le but de ce jeu est de faire passer":PRINT "les moutons A,B et C vers la droite"
110 WAIT 20:PRINT "a la place des moutons 1,2 et 3
120 A$=INKEY$ :IF A$=""THEN 120
130 CLS :WAIT 0:PRINT "Les moutons peuvent avancer d'une case ou sauter par-dessus un autre mouton."
140 WAIT 20:PRINT "Les moutons s'appellent par leur symbole
150 A$=INKEY$ :IF A$=""THEN 150
160 WAIT 0:CLS :PRINT "Pendant le jeu vous pouvez egalement":PRINT "utiliser la touche (R) pour revenir
170 WAIT 20:PRINT "en position initiale"
180 A$=INKEY$ :IF A$=""THEN 180
190 GOTO 40
200 CLS :PRINT "A bientot...":END
210 ECRAN$="ABC.123":CLS :WAIT 50:PRINT "C'est ";R$;"parti..."
220 WAIT 0:CLS :PRINT ECRAN$
230 IF ECRAN$="123.ABC" THEN 450
240 A$=INKEY$ :IF A$="" OR A$="." THEN 240
250 IF A$="R"LET R$=R$+"re-":GOTO 210
260 P=0:FOR I=1 TO 7:IF MID$ (ECRAN$,I,1)=A$ LET P=I
270 NEXT I:IF P=0 WAIT 80:PRINT "Mauvaise touche!":GOTO 220
280 SENS=1:IF VAL (A$)>0LET SENS=-1
290 REM Mouton au bord ?
300 IF P+SENS<1 OR P+SENS>7 GOSUB 440:GOTO 220
310 REM Mouton avance d'une case libre ?
320 IF MID$ (ECRAN$,P+SENS,1)="." THEN 380
330 REM Mouton saute ?
340 REM Mouton au bord ?
350 IF P+2*SENS<1 OR P+2*SENS>7 GOSUB 440:GOTO 220
360 IF MID$ (ECRAN$,P+2*SENS,1)="." THEN 410
370 GOSUB 440:GOTO 220
380 IF SENS=1 LET ECRAN$=MID$ (ECRAN$,1,P-1)+"."+A$+MID$ (ECRAN$,P+2,7)
390 IF SENS=-1 LET ECRAN$=MID$ (ECRAN$,1,P-2)+A$+"."+MID$ (ECRAN$,P+1,7)
400 WAIT 30:PRINT "Hop!...":GOTO 220
410 IF SENS=1 LET ECRAN$=MID$ (ECRAN$,1,P-1)+"."+MID$ (ECRAN$,P+1,1)+A$+MID$ (ECRAN$,P+3,7)
420 IF SENS=-1 LET ECRAN$=MID$ (ECRAN$,1,P-3)+A$+MID$ (ECRAN$,P-1,1)+"."+MID$ (ECRAN$,P+1,7)
430 GOTO 400
440 WAIT 80:PRINT "Ce deplacement est interdit...":RETURN
450 PRINT "Bravo, les moutons te remercient"
460 PRINT "tu recevras sous peu un pull en laine... :)))
470 END











