10 !
20 !
30 ! PATROUILLE LUNAIRE
40 ! pour EXL 100
50 ! PAR CHRISTOPHE BOUILLE
60 !
70 !
80 CALL POKE(50688,165,8,6,10):CALL POKE(49156,198,0)
90 CLS "GBB":CALL COLOR("0YLHI"):GOSUB 2150
100 !
110 ! PRESENTATION
120 !
130 CALL POKE(259,45)
140 CALL POKE(258,50,132)
150 !
160 ! GRAPHIQUES
170 !
180 CALL CHAR(65,"000000071E7E7FFFFFFF")
190 CALL CHAR(75,"00000000001038383838")
200 CALL CHAR(76,"00071F3E7E7EFEFCFCFC")
210 CALL CHAR(77,"FCFCFCFE7E7E3E1F0700")
220 CALL CHAR(80,"00000000C3C33C3C0000")
230 CALL CHAR(66,"000000E010103EFFFFFF")
240 CALL CHAR(67,"DBBD3C18000000000000")
250 CALL CHAR(68,"C381183C3C1800000000")
260 CALL CHAR(69,"C3810000183C3C180000")
270 CALL CHAR(71,"44BFFFFFFFFFFFFFFFFF")
280 CALL CHAR(73,"01010307071F3F7FFFFF")
290 CALL CHAR(72,"66FFFFFFFFFFFFFFFFFF")
300 CALL CHAR(74,"8080C0E0E0E8FCFEFFFF")
310 CALL CHAR(70,"FFFFFFFFFFFFFFFFFFFF")
320 CALL CHAR(78,"08000000000000000000")
330 CALL CHAR(79,"081C0800000000000000")
340 CALL CHAR(81,"00000000000000003EFF")
350 !
360 CLS "Ybb"
370 CALL COLOR("1Yb"):LOCATE (10,10):PRINT CHR$(65);CHR$(66)
380 LOCATE (11,10):PRINT CHR$(68);CHR$(68)
390 CALL COLOR("0GbHL"):LOCATE (5,1):PRINT "PPAATTRROOUUIILLEE LLUUNNAAIIRREE"
400 LOCATE (6,1):PRINT "PPAATTRROOUUIILLEE LLUUNNAAIIRREE":CALL COLOR("1Yb")
410 CALL COLOR("0GbL"):LOCATE (18,1)
420 PRINT "UUNN JJEEUU RREEAALLIISSEE ppaarr"
430 PRINT "CChhrriissttoopphhee BBOOUUIILLLLEE"
440 CALL COLOR("1Yb"):S=21
450 FOR I=1 TO 38:LOCATE (S,I):PRINT "P":CALL POKE(258,I+19,132):NEXT I
460 S=15
470 FOR I=38 TO 1 STEP -1:LOCATE (S,I):PRINT "P":CALL POKE(258,I+19,132):NEXT I
480 CALL COLOR("1Yb")
490 FOR T=1 TO 30
500 FOR T1=0 TO 2
510 CALL POKE(258,100,150)
520 FOR P=1 TO 2:LOCATE (11,9+P):PRINT CHR$(67+T1):NEXT P
530 NEXT T1
540 NEXT T
550 GOSUB 1320
560 !
570 ! CIEL ETOILE
580 !
590 DATA 125,150,132,150,132,169,125
600 RESTORE 590:FOR I=1 TO 7:READ Y
610 CALL POKE(258,Y,132):PAUSE .2:NEXT I:PAUSE 1
620 CLS "YbB":CALL COLOR("1Yb")
630 RANDOMIZE
640 FOR P=30 TO 1 STEP -1
650 GOSUB 1280:X=INT(RND*16)+1:Y=INT(RND*39)+1:O=INT(RND*2)+78
660 LOCATE (X,Y):PRINT CHR$(O):NEXT P:LOCATE (2,5):PRINT CHR$(76)
670 LOCATE (3,5):PRINT CHR$(77):CALL COLOR("0Yb"):LOCATE (22,1):PRINT "score:"
680 CALL COLOR("1Bb")
690 FOR P=.5 TO 20:LOCATE (20,P*2):PRINT CHR$(72);CHR$(71);:LOCATE (21,P*2)
700 PRINT CHR$(70);CHR$(70);:NEXT P
710 CALL COLOR("0bB"):LOCATE (21,5):PRINT "pressez une touche"
720 CALL KEY1(DF,FG):IF FG=0 THEN 720
730 LOCATE (21,5):PRINT " ":PAUSE 1
740 !
750 ! JEU
760 !
770 KL=1:R=18:E=3:KP=0:GSC=10:GSC$="BOUILLE"
780 FOR P=KL TO 1200:A$=SEG$(B$,P,39):P$=SEG$(C$,P,39)
790 CALL POKE(258,90,150)
800 Q=Q+1:CALL COLOR("0Gb"):LOCATE (22,8):PRINT Q:CALL COLOR("1Yb")
810 IF P=300 THEN PAUSE 2:P=1:GOTO 780
820 IF SEG$(P$,2,1)=CHR$(73)AND R=18 THEN GOSUB 1040
830 IF SEG$(P$,2,1)=CHR$(75)THEN Q=Q-10
840 CALL KEY1(A,B):IF B<>0 AND R=18 THEN GOSUB 910
850 O=O-1:IF O=0 THEN GOSUB 950
860 IF SEG$(A$,3,1)=CHR$(74)AND R=18 THEN GOSUB 1040
870 LOCATE (20,1):CALL COLOR("1Bb"):PRINT A$:LOCATE (19,1):GOSUB 2140
880 LOCATE (R,E):CALL COLOR("1Yb"):PRINT CHR$(65);CHR$(66)
890 LOCATE (R+1,E):PRINT CHR$(69);CHR$(69)
900 NEXT P
910 FOR RT=80 TO 60 STEP -1:CALL POKE(258,RT,132):NEXT RT
920 LOCATE (19,E):PRINT " ":LOCATE (18,E):PRINT CHR$(68);CHR$(68)
930 LOCATE (18,E):PRINT CHR$(67);CHR$(67)
940 LOCATE (17,E):PRINT CHR$(65);CHR$(66):O=7:R=R-1:RETURN
950 CALL COLOR("1Yb"):LOCATE (17,E):PRINT " ":LOCATE (18,E)
960 PRINT CHR$(65);CHR$(66):LOCATE (19,E):PRINT CHR$(69);CHR$(69)
970 FOR RT=60 TO 80 STEP 3:CALL POKE(258,RT,132):NEXT RT
980 IF SEG$(A$,3,1)="J"AND R=3 THEN 1040
990 IF SEG$(A$,3,1)="I" THEN 1040
1000 R=R+1:RETURN
1010 !
1020 ! ACCIDENT
1030 !
1040 FOR I=1 TO 10:CALL SPEECH("L,"&"30"):NEXT I
1050 CALL COLOR("0BR"):LOCATE (22,15):PRINT "vous avez parcouru ";Q;"m":PAUSE 1
1060 SC=SC+Q:Q=1
1070 DATA 250,.4,187,1.2,250,.4,187,.5,150,.4,125,1.8,150,.4,187,.4,150,.4,125,1
1080 DATA 250,1,187,2
1090 RESTORE 1070
1100 FOR RT=1 TO 12:READ TY,YU:CALL POKE(258,TY,132):PAUSE YU/4:NEXT RT
1110 CALL POKE(258,255,140)
1120 CALL COLOR("0YLI"):LOCATE (5,5):PRINT "SSCCOORREE :: ";
1130 CALL COLOR("0YbI"):LOCATE (5,18):PRINT SC;" m":PAUSE 3
1140 IF SC<GSC THEN 1170
1150 GSC=SC
1160 CLS "GBB":CALL COLOR("0G"):INPUT "VOTRE NOM ?";GSC$:CLS "Ybb"
1170 PRINT:PRINT "MEILLEUR SCORE : ";GSC$;" AVEC ";GSC;" m":PAUSE 5:SE=1
1180 CALL COLOR("0YR"):CLS "YRR":LOCATE (20,1):INPUT "VOULEZ-VOUS REJOUER ?";PA$
1190 IF SEG$(PA$,1,1)="O"AND SE=1 THEN 590
1200 IF SEG$(PA$,1,1)="O" THEN RUN
1210 !
1220 ! FIN
1230 !
1240 CLS "GBB":CALL COLOR("1GLHIF"):LOCATE (15,5)
1250 PRINT "AAUU RREEVVOOIIRR":LOCATE (16,5):PRINT "AAUU RREEVVOOIIRR"
1260 FOR I=20 TO 250:CALL POKE(258,I,132):NEXT I
1270 CALL POKE(259,0):PAUSE 1:CLS:END
1280 CALL POKE(258,P+20,150):RETURN
1290 !
1300 ! REGLES DU JEU
1310 !
1320 CALL POKE(258,250,133)
1330 CALL COLOR("0MH"):LOCATE (20,1)
1340 PRINT " voulez-vous les regles du jeu ? (O/N)"
1350 PRINT " voulez-vous les regles du jeu ? (O/N)"
1360 CALL KEY1(I,J)
1370 CALL POKE(258,250,135)
1380 IF I=79 THEN 1420
1390 IF I=78 THEN 1610
1400 CALL POKE(258,255,135)
1410 GOTO 1360
1420 PAUSE 2:CALL COLOR("0Yb"):LOCATE (20,1):PRINT RPT$(" ",80)
1430 LOCATE (7,10):PRINT "REGLES DU JEU"
1440 K$(1)="VOUS PILOTEZ UN ENGIN SPATIAL"
1450 K$(2)="SUR LE SOL DE LA LUNE."
1460 K$(3)="VOUS DEVEZ EVITER "
1470 K$(4)="LES BOSSES ET LES CRATERES"
1480 K$(5)="EN PRESSANT UNE TOUCHE."
1490 K$(6)="VOUS FAITES ALORS DES BONDS !"
1500 K$(7)="SI VOUS RENCONTREZ UNE MINE"
1510 K$(8)="VOUS RECULEZ DE 10 METRES."
1520 K$(9)="BONNE CHANCE ET BONNE PATROUILLE !!!"
1530 FOR I=1 TO 9:CALL POKE(258,50,132)
1540 LOCATE (16,1):CALL COLOR("0MB"):PRINT RPT$(CHR$(12),40)
1550 W=1+INT(20-LEN(K$(I))/2)
1560 FOR Y=W TO W+LEN(K$(I))-1:CALL COLOR("0BB")
1570 CALL POKE(259,45):CALL POKE(258,100,132)
1580 LOCATE (16,Y):PRINT " "
1590 CALL COLOR("0GM"):LOCATE (16,Y):PRINT SEG$(K$(I),Y-W+1,1)
1600 NEXT Y:CALL POKE(259,45):PAUSE 2:NEXT I
1610 !
1620 ! FORCE
1630 !
1640 CALL POKE(258,100,132)
1650 CLS "Ybb":CALL COLOR("0GHL")
1660 LOCATE (3,1):PRINT "PPAATTRROOUUIILLLLEE LLUUNNAAIIRREE"
1670 LOCATE (4,1):PRINT "PPAATTRROOUUIILLLLEE LLUUNNAAIIRREE"
1680 CALL COLOR("0Gb")
1690 FOR I=8 TO 18:LOCATE (I,2)
1700 PRINT RPT$(" ",36):NEXT I
1710 CALL COLOR("0RG")
1720 DATA 9,3,ENTREZ LE CIRCUIT
1730 DATA 11,3,FFAACCIILLEE....................11
1740 DATA 12,3,MMOOYYEENN......................22
1750 DATA 13,3,DDIIFFFFIICCIILLEE..............33
1760 DATA 14,3,TTRREESS DDIIFFFFIICCIILLEE....44
1770 DATA 15,3,PPRROOGGRREESSSSIIFF............55
1775 DATA 17,3,RREETTOOUURR AAUU MMEENNUU....66
1780 RESTORE 1720:READ I,W,I$:LOCATE (I,W):PRINT I$
1790 CALL COLOR("0GBL")
1800 FOR Y=1 TO 6:READ I,W,I$
1810 LOCATE (I,W):PRINT I$:NEXT Y
1820 CALL KEY1(L,I)
1830 IF L<49 OR L>54 THEN 1820
1840 W=L-48:ON W GOSUB 1860,1920,1980,2040,2100,2280
1850 RETURN
1860 C1$=" IJ IJ "
1870 B1$="GHGHGHGHFFFGHGHGHGHJQIGHGHGHGHFFFGHGHGHG"
1880 IF U=1 THEN RETURN
1890 B$=B1$&B1$&B1$&B1$&B1$&B1$
1900 C$=C1$&C1$&C1$&C1$&C1$&C1$
1910 RETURN
1920 C2$=" IJ IJ K IJ "
1930 B2$="GHGHGHFFFGHGHGFFFGHGHGHJQIGHGFFFGHGHGJIH"
1940 IF U=1 THEN RETURN
1950 B$=B2$&B2$&B2$&B2$&B2$&B2$
1960 C$=C2$&C2$&C2$&C2$&C2$&C2$
1970 RETURN
1980 C3$=" KIFJ IJ K IFJ "
1990 B3$="GHGHGHFFFFGHGJIGHGHGHHGHGFFFGHGHFFFFGHGH"
2000 IF U=1 THEN RETURN
2010 B$=BA$&B3$&B3$&B3$&B3$&B3$
2020 C$=C3$&C3$&C3$&C3$&C3$&C3$
2030 RETURN
2040 C4$="IJ K IFJ IJ K IFJ K "
2050 B4$="FFFGHJIGHFFFFGHGFFFGHGJIGHGJQIGHGFFFFGHG"
2060 IF U=1 THEN RETURN
2070 B$=B4$&B4$&B4$&B4$&B4$&B4$
2080 C$=C4$&C4$&C4$&C4$&C4$&C4$
2090 RETURN
2100 U=1:GOSUB 1860:GOSUB 1920:GOSUB 1980:GOSUB 2040
2105 !
2110 B$=B1$&B1$&B2$&B2$&B3$&B4$
2120 C$=C1$&C1$&C2$&C2$&C3$&C4$
2130 RETURN
2140 CALL COLOR("1Bb"):PRINT P$:RETURN
2150 !
2160 ! SON ENTREE
2170 !
2180 LOCATE (10,2):PRINT "PPAATTRROOUUIILLLLEE LLUUNNAAIIRREE"
2190 LOCATE (11,2):PRINT "PPAATTRROOUUIILLLLEE LLUUNNAAIIRREE"
2200 RESTORE 2210
2210 DATA 250,.4,187,1.2,250,.4,187,.5,150,.4,125,1.8,150,.4,187,.4,150,.4,125,1
2220 DATA 250,1,187,2
2230 DATA 250,1,187,1,150,.4,169,.4,187,1,200,.4,187,.4,169,.4,187,.4,200,.4
2240 DATA 225,.4,250,2
2250 FOR I=1 TO 24:READ UI,IO
2260 CALL POKE(258,UI,132):PAUSE IO/4:NEXT I
2270 RETURN
2280 END
Ce listing est uniquement proposé pour un usage privé.
Sans accord écrit préalable, vous n'êtes pas autorisé à le distribuer, le transmettre ou le rediffuser.