10 REM IL PLEUT BERGERE
20 REM RENTRE TES BLANCS MOUTONS
30 REM par eric DUPONT
40 REM --------------------------------
50 REM GRAPHISME
60 SYMBOL AFTER 128
70 SYMBOL 128,0,68,135,255,124,68,68,0
80 SYMBOL 129,0,6,143,126,124,68,68,0
90 SYMBOL 130,24,126,126,255,255,126,126,24
100 SYMBOL 131,0,12,30,30,12,31,61,173
110 SYMBOL 132,239,140,158,191,191,191,146,179
120 SYMBOL 133,60,126,255,255,255,255,126,60
130 SYMBOL 134,0,0,40,28,56,20,0,0
140 SYMBOL 135,0,34,225,255,62,34,34,0
150 SYMBOL 136,0,0,0,24,60,126,255,255
160 SYMBOL 137,255,143,168,154,171,171,139,255
170 SYMBOL 138,255,251,169,171,171,171,139,255
180 SYMBOL 139,255,255,81,87,81,93,17,255
190 SYMBOL 140,60,126,255,255,255,255,127,63
200 SYMBOL 141,63,127,255,255,255,255,126,60
210 SYMBOL 142,15,15,15,15,15,15,15,15
220 SYMBOL 144,60,126,255,255,255,255,254,252
230 SYMBOL 145,252,254,255,255,255,255,126,60
240 SYMBOL 147,240,240,240,240,240,240,240,240
250 RANDOMIZE TIME
260 REM -------------------------------
270 REM PRESENTATION
280 MODE 0:BORDER 0:PAPER 5:CLS:LOCATE 3,3:PEN 11:PRINT "IL PLEUT BERGERE":LOCATE 3,5:PEN 3:PRINT"IL PLEUT BERGERE":LOCATE 8,7:PEN 7:PRINT"RENTRE":LOCATE 2,9:PEN 6:PRINT"TES BLANCS MOUTONS"
290 LOCATE 10,11:PEN 9:PRINT CHR$(136):LOCATE 12,11:PRINT CHR$(136)
300 LOCATE 10,23:PEN 3:PRINT CHR$(24);"BRUTUS":LOCATE 10,24:PEN 9:PRINT CHR$(24);"      "
310 PEN 9:FOR I=1 TO 64:READ C,L:LOCATE C,L:PRINT CHR$(143):NEXT I
320 DATA 10,12,12,12,10,13,12,13,9,14,10,14,11,14,12,14,8,15,9,15,11,15,12,15,13,15,6,16,7,16,8,16,9,16,10,16,11,16,12,16,13,16,6,17,7,17,8,17,9,17,10,17,11,17,12,17,13,17,9,18,10,18,11,18,12,18,13,18,14,18,6,19,7,19,8,19,9,19,10,19,11,19,12,19,13,19
330 DATA 14,19,7,20,8,20,9,20,10,20,11,20,12,20,13,20,14,20,10,21,11,21,12,21,13,21,14,21,15,21,10,22,11,22,12,22,13,22,14,22,15,22
340 GOSUB 1760:FOR D=1 TO 2000:NEXT D
350 PAPER 5:CLS:PEN 11:LOCATE 9,4:PRINT"par":PEN 3:LOCATE 5,7:PRINT"ERIC DUPONT":PEN 11:LOCATE 9,10:PRINT CHR$(143)+CHR$(143)+CHR$(143):LOCATE 8,13:PEN 7:PRINT"dedie":LOCATE 10,14:PRINT"a":LOCATE 7,15:PRINT"mon ami":LOCATE 7,18:PEN 6:PRINT"NICOLAS"
360 LOCATE 3,21:PEN 7:PRINT"surnomme BRUTUS":LOCATE 2,23:PRINT"par ses camarades":LOCATE 6,25:PRINT"de classe"
370 FOR I=1 TO 5000:NEXT I
380 MODE 1:PAPER 0:CLS:BORDER 1:PEN 1:LOCATE 3,3:PRINT"Vous etes `BRUTUS',chien berger":LOCATE 3,4:PRINT"Il pleut,":LOCATE 3,5:PRINT"La bergere est bien a l'abri":LOCATE 3,6:PRINT"Sous le toit de la bergerie...":LOCATE 3,9:PRINT"A vous d'y faire rentrer"
390 LOCATE 3,10:PRINT"Tous les moutons!":LOCATE 3,12:PEN 1:PRINT"Mais ATTENTION,les moutons":LOCATE 3,13:PRINT"Ne doivent pas croquer les legumes":LOCATE 3,14:PRINT"Des deux potagers.":LOCATE 10,17:PRINT"Appuyez sur `L'"
400 LOCATE 10,18:PRINT"pour continuer la lecture."
410 a$=INKEY$:IF a$="l" OR a$="L" THEN 430
420 GOTO 410
430 PAPER 0:CLS:PEN 1
440 LOCATE 2,2:PRINT"Vous apparaissez":LOCATE 2,3:PRINT"a cote de la bergere":LOCATE 2,4:PRINT"en appuyant sur la touche":LOCATE 2,5:PRINT"directionnelle `GAUCHE'":LOCATE 16,7:PRINT"Vous vous deplacez":LOCATE 16,8:PRINT"avec les quatre touches"
450 LOCATE 16,9:PRINT"directionnelles.":LOCATE 2,11:PRINT"Vous validez vos deplacements ":LOCATE 2,12:PRINT"en appuyant sur `ENTER'.":LOCATE 16,14:PRINT"Chaque `ENTER' et":LOCATE 16,15:PRINT"chaque LEGUME BROUTE":LOCATE 16,16:PRINT"compte pour un essai!"
460 LOCATE 2,18:PRINT"Vous devez regrouper":LOCATE 2,19:PRINT"les moutons":LOCATE 2,20:PRINT"dans la bergerie":LOCATE 2,21:PRINT"en un minimum d'ESSAIS.":LOCATE 13,23:PRINT"Votre RECOMPENSE":LOCATE 11,24:PRINT"sera proportionnelle"
470 LOCATE 13,25:PRINT"a vos resultats."
480 FOR I=1 TO 20000:NEXT I
490 REM -------------------------------
500 MODE 1:BORDER 9:INK 0,9:PAPER 0
510 DIM X(10),Y(10)
520 F=0
530 E=0
540 X=36:Y=16
550 REM -------------------------------
560 REM DESSIN DE L'ENCLOS
570 INK 1,0:PEN 1:PLOT 6,6:DRAW 632,6:DRAW 632,392:DRAW 6,392:DRAW 6,6
580 PEN 1:PLOT 632,249:DRAW 390,249:PLOT 632,247:DRAW 390,247
590 PEN 1:PLOT 632,89:DRAW 390,89:PLOT 632,87:DRAW 390,87
600 FOR T=30 TO 35 STEP 5:LOCATE T,20:PRINT CHR$(130):NEXT T
610 FOR T=30 TO 35 STEP 5:LOCATE T,10:PRINT CHR$(130):NEXT T
620 PEN 1:LOCATE 25,10:PRINT CHR$(130):LOCATE 25,20:PRINT CHR$(130)
630 PLOT 8,8:DRAW 630,8:DRAW 630,390:DRAW 8,390:DRAW 8,8
640 PEN 1:LOCATE 1,1:PRINT CHR$(133):LOCATE 40,1:PRINT CHR$(133)
650 LOCATE 1,25:PRINT CHR$(133);:LOCATE 40,25:PRINT CHR$(133);
660 FOR I=5 TO 38 STEP 5
670 LOCATE I,1:PRINT CHR$(130):LOCATE I,25:PRINT CHR$(130);
680 IF I<25 THEN LOCATE 1,I:PRINT CHR$(130):LOCATE 40,I:PRINT CHR$(130)
690 NEXT I
700 REM -------------------------------
710 REM DESSIN DES LEGUMES
720 FOR U=26 TO 37
730 INK 3,6:LOCATE U,2:PEN 3:PRINT CHR$(134):NEXT U
740 FOR U=26 TO 37
750 INK 3,6:LOCATE U,3:PEN 3:PRINT CHR$(134):NEXT U
760 FOR U=26 TO 37 
770 INK 3,6:LOCATE U,4:PEN 3:PRINT CHR$(134):NEXT U
780 FOR U=26 TO 37
790 INK 3,6:LOCATE U,6 :PEN 3:PRINT CHR$(134):NEXT U
800 FOR U=26 TO 37
810 INK 3,6:LOCATE U,7:PEN 3:PRINT CHR$(134):NEXT U
820 FOR U=26 TO 37
830 INK 3,6:LOCATE U,8:PEN 3:PRINT CHR$(134):NEXT U 
840 FOR U=26 TO 37
850 INK 3,6:LOCATE U,9:PEN 3:PRINT CHR$(134):NEXT U
860 FOR R=26 TO 37
870 INK 3,6:LOCATE R,24:PEN 3:PRINT CHR$(134):NEXT R
880 FOR R=26 TO 37
890 INK 3,6:LOCATE R,23:PEN 3:PRINT CHR$(134):NEXT R
900 FOR R=26 TO 37
910 INK 3,6:LOCATE R,21:PEN 3:PRINT CHR$(134):NEXT R
920 REM -------------------------------
930 REM DESSIN DE LA BERGERE
940 INK 2,26:PEN 2:LOCATE 37,15:PRINT CHR$(131):LOCATE 37,16:PRINT CHR$(132)
950 REM -------------------------------
960 REM DESSIN DE LA BERGERIE
970 LOCATE 32,13:PEN 1:PRINT CHR$(214):FOR T=33 TO 38:LOCATE T,13:PRINT CHR$(143):NEXT T
980 FOR U=14 TO 16:LOCATE 38,U:PRINT CHR$(149):NEXT U
990 LOCATE 38,17:PRINT CHR$(153):FOR K=37 TO 33 STEP-1:LOCATE K,17:PRINT CHR$(154):NEXT K:LOCATE 32,17:PRINT CHR$(146)
1000 REM -------------------------------
1010 REM DESSIN DU CHIEN ET DES MOUTONS
1020 N=10
1030 FOR I=1 TO N
1040 X(I)=INT(RND(1)*14)+2
1050 Y(I)=INT(RND(1)*20)+2
1060 IF TEST(X(I)*16-8,408-Y(I)*16)<>0 THEN 1040
1070 IF I=N+1 THEN LOCATE X(I),Y(I):PEN 1:PRINT CHR$(128):X=X(I):Y=Y(I):GOTO 1090
1080 PEN 2:LOCATE X(I),Y(I):PRINT CHR$(129)
1090 NEXT I
1100 REM ------------------------------
1110 REM DEPLACEMENT DU  CHIEN...   
1120 REM ... ET DES MOUTONS
1130 ENT -2,=1000,60,=3000,40
1140 ENV 1,10,1,5,2,-4,1,2,-1,20
1150 D$=INKEY$:IF D$="" THEN 1150
1160 IF D$=CHR$(13) THEN E=E+1:SOUND 1,0,200,10,1,2,31:GOTO 1240
1170 LOCATE X,Y:PRINT " "
1180 IF D$=CHR$(242) THEN IF TEST((X-1)*16-8,408-Y*16)=0 THEN X=X-1:GOTO 1230
1190 IF D$=CHR$(243) THEN IF TEST((X+1)*16-8,408-Y*16)=0 THEN X=X+1:GOTO 1220
1200 IF D$=CHR$(240) THEN IF TEST(X*16-8,408-(Y-1)*16)=0 THEN Y=Y-1:GOTO 1220
1210 IF D$=CHR$(241) THEN IF TEST(X*16-8,408-(Y+1)*16)=0 THEN Y=Y+1:GOTO 1220
1220 LOCATE X,Y:PEN 1:PRINT CHR$(128):GOTO 1150
1230 LOCATE X,Y:PEN 1:PRINT CHR$(135):GOTO 1150
1240 FOR J=1 TO 5
1250 F=0
1260 FOR I=1 TO N
1270 LOCATE X(I),Y(I):PRINT " "
1280 IF X(I)<32 OR X(I)>37 THEN 1340
1290 IF Y(I)<13 OR Y(I)>17 THEN 1340
1300 F=F+1
1310 IF TEST((X(I)+1)*16-8,408-Y(I)*16)<>0 THEN 1460
1320 X(I)=X(I)+1
1330 GOTO 1460
1340 AX=X(I):AY=Y(I)
1350 IF Y(I)=2 THEN Y(I)=3:GOTO 1430
1360 IF Y(I)=24 THEN Y(I)=23:GOTO 1430
1370 IF Y<Y(I) THEN Y(I)=Y(I)+1
1380 IF Y>Y(I) THEN Y(I)=Y(I)-1
1390 IF X(I)=2 THEN X(I)=3:GOTO 1430
1400 IF X(I)=39 THEN X(I)=38:GOTO 1430
1410 IF X<X(I) THEN X(I)=X(I)+1
1420 IF X>X(I) THEN X(I)=X(I)-1
1430 IF TEST(X(I)*16-8,408-Y(I)*16)=0 THEN 1460
1440 IF TEST(X(I)*16-8,408-Y(I)*16)=3 THEN E=E+1:GOTO 1460
1450 X(I)=AX:Y(I)=AY
1460 PEN 2:LOCATE X(I),Y(I):PRINT CHR$(129)
1470 NEXT I
1480 IF F=N THEN 1530
1490 NEXT J
1500 GOTO 1150
1510 REM ------------------------------
1520 REM SCORE ET RECOMPENSE
1530 MODE 0:PAPER 5:CLS:BORDER 0
1540 LOCATE 4,2:PEN 7:PRINT"VOS ESSAIS:";E
1550 IF E<25 THEN 1580
1560 IF E>25 AND E<60 THEN 1640
1570 IF E>60 THEN 1690
1580 LOCATE 5,5:PEN 6:PRINT"Bravo  BRUTUS:":LOCATE 2,7:PRINT"Tu es le MEILLEUR":LOCATE 1,9:PRINT"Voici ta recompense:"
1590 PEN 2:LOCATE 2,13:PRINT CHR$(213)+CHR$(137)+CHR$(138)+CHR$(139)+CHR$(212):LOCATE 9,12:PRINT CHR$(140):LOCATE 9,13:PRINT CHR$(142)+CHR$(143)+CHR$(143)+CHR$(143)+CHR$(147):LOCATE 9,14:PRINT CHR$(141):LOCATE 13,12:PRINT CHR$(144)
1600 LOCATE 13,14:PRINT CHR$(145):LOCATE 17,13:PRINT CHR$(143):LOCATE 16,14:PRINT CHR$(143):LOCATE 18,14:PRINT CHR$(143)
1610 LOCATE 3,16:PEN 7:PRINT"UNE   UN OS  DES":LOCATE 2,17:PRINT"SOUPE        SUCRES"
1620 FOR I=1 TO 10000:NEXT I
1630 GOTO 1720
1640 LOCATE 2,5:PEN 6:PRINT"C'est bien BRUTUS":LOCATE 1,7:PRINT"Tu peux faire mieux,":LOCATE 1,9:PRINT"Voici ta recompense:"
1650 PEN 2:LOCATE 4,13:PRINT CHR$(213)+CHR$(137)+CHR$(138)+CHR$(139)+CHR$(212):LOCATE 13,13:PRINT CHR$(142)+CHR$(143)+CHR$(143)+CHR$(143)+CHR$(147):LOCATE 13,12:PRINT CHR$(140):LOCATE 13,14:PRINT CHR$(141):LOCATE 17,12:PRINT CHR$(144)
1660 LOCATE 17,14:PRINT CHR$(145):PEN 7:LOCATE 5,16:PRINT"UNE     UN OS":LOCATE 4,17:PRINT"SOUPE"
1670 FOR I=1 TO 10000:NEXT I
1680 GOTO 1720
1690 LOCATE 4,5:PEN 6:PRINT"Pauvre BRUTUS":LOCATE 1,7:PRINT"Tu es bien decevant,":LOCATE 1,9:PRINT"Voici ta nourriture:":LOCATE 8,13:PEN 2:PRINT CHR$(213)+CHR$(137)+CHR$(138)+CHR$(139)+CHR$(212):LOCATE 9,16:PEN 7:PRINT"UNE":LOCATE 8,17:PRINT"SOUPE"
1700 FOR I=1 TO 10000:NEXT I
1710 GOTO 1720
1720 PAPER 5:CLS:PEN 7:LOCATE 1,10:INPUT "VOULEZ VOUS REJOUER (O/N)";B$:IF B$="O" OR B$="o" THEN 1740
1730 PEN 0:PRINT CHR$(24):CLS:MODE 1:END
1740 RUN
1750 REM ------------------------------
1760 REM MUSIQUE 'IL PLEUT BERGERE...`
1770 SOUND 1,142,30,15:SOUND 1,119,60,15:SOUND 1,142,30,15:SOUND 1,119,60,15:SOUND 1,142,30,15:SOUND 1,179,90,15:SOUND 1,239,60,15:SOUND 1,0,30
1780 SOUND 1,179,30,15:SOUND 1,190,30,15:SOUND 1,179,30,15:SOUND 1,159,60,15:SOUND 1,159,30,15:SOUND 1,142,90,15:SOUND 1,142,60,15:SOUND 1,0,30
1790 SOUND 1,142,30,15:SOUND 1,159,30,15:SOUND 1,142,30,15:SOUND 1,134,60,15:SOUND 1,134,30,15:SOUND 1,119,90,15:SOUND 1,142,60,15:SOUND 1,0,30
1800 SOUND 1,119,30,15:SOUND 1,106,30,15:SOUND 1,119,30,15:SOUND 1,134,30,15:SOUND 1,142,30,15:SOUND 1,159,60,15:SOUND 1,0,30
1810 SOUND 1,159,30,15:SOUND 1,142,30,15:SOUND 1,159,30,15:SOUND 1,159,60,15:SOUND 1,134,30,15:SOUND 1,142,90,15:SOUND 1,119,90,15
1820 SOUND 1,134,30,15:SOUND 1,142,30,15:SOUND 1,159,30,15:SOUND 1,142,60,15:SOUND 1,179,30,15:SOUND 1,142,90,15:SOUND 1,159,60,15
1830 SOUND 1,142,30,15:SOUND 1,119,60,15:SOUND 1,142,30,15:SOUND 1,119,60,15:SOUND 1,142,30,15:SOUND 1,134,90,15:SOUND 1,106,90,15:SOUND 1,119,30,15:SOUND 1,106,30,15:SOUND 1,119,30,15:SOUND 1,159,60,15:SOUND 1,142,30,15:SOUND 1,179,120,15
1840 FOR I=1 TO 2000:NEXT I:RETURN