Hebdogiciel n°105 à 106


1 !
2 !
3 !    RALLYE
4 !  1ere Partie
5 !  Definition des caracteres
6 !  Regles du jeu
7 !
8 !
9 !    S. CARBILLET
10 ! Aout-Septembre 1985
11 !
12 !
13 !
14 !
15 CALL CHAR(89,"30484020176080804830")
16 CALL CHAR(90,"004200993C3C990042")
17 CALL CHAR(97,"00000000010F3F7060E0")
18 CALL CHAR(98,"00000000FFFF")
19 CALL CHAR(99,"0000000080F0FC0E0607")
20 CALL CHAR(100,"0103737E76040C1F1F7F")
21 CALL CHAR(101,"C0800000000000FFFFFF")
22 CALL CHAR(102,"00000000000000FFFFFF")
23 CALL CHAR(103,"03010000000000FFFFFF")
24 CALL CHAR(104,"80C0CE7E6E2038F8F8FE")
25 CALL CHAR(105,"FCFDF9FBFBFBF9FDFFFF")
26 CALL CHAR(106,"000000000000002626")
27 CALL CHAR(107,"187E7E7E")
28 CALL CHAR(108,"0000000000000006464")
29 CALL CHAR(109,"3FBF9FDFDFDF9FBFFFFF")
30 CALL CHAR(110,"7F7F7F7F7F7F7F7F3E3E")
31 CALL CHAR(111,"7F7F7F6060")
32 CALL CHAR(112,"FFFFFFFF")
33 CALL CHAR(113,"FEFEFE0606")
34 CALL CHAR(114,"FEFEFEFEFEFEFEFE7C7C")
35 CALL CHAR(115,"FFFFFFFFFFFFFFFFFFFF")
36 CALL CHAR(116,"488449252211D294642E")
37 CALL CHAR(117,"2252098A4A2445868E4C")
38 CALL CHAR(118,"26662213969F89CB7B67")
39 CALL CHAR(119,"92A4E2A936AFAF309EA9")
40 CALL CHAR(120,"5D65FD5E3EFAF8C9FDC2")
41 CALL CHAR(121,"773FBE5E1D3E1FFFF3F7")
42 CALL CHAR(122,"3D3A7CDFFFE7CEEEE4FE")
43 !
44 CLS "BCB":CALL HRON("G",13,6):CLS "BGB"
45 CALL LINE("B",145,0,64,59):CALL LINE("B",175,0,256,59)
46 CALL COLOR("1bG"):LOCATE (19,19):PRINT "abc"
47 LOCATE (20,18):PRINT "defgh":LOCATE (21,18):PRINT "i   m"
48 LOCATE (22,19):PRINT "opq":CALL COLOR("1Rb")
49 LOCATE (21,19):PRINT "jkl":CALL COLOR("1BG")
50 LOCATE (22,18):PRINT "n":LOCATE (22,22):PRINT "r"
51 CALL AFR(2,"**  RALLYE  **")
52 CALL AFR(7,"Voulez-vous les regles (1=OUI/0=NON) ?")
53 A$=KEY$:IF A$="0" THEN 109 ELSE IF A$<>"1" THEN 53
54 CALL SUITE:CALL AFM(5,"VOUS ETES PILOTE DE RALLYE.")
55 CALL AFB(7,"Cette course est une speciale")
56 CALL AFB(8,"de 30 kms sur route frequentee.")
57 CALL AFB(10,"Vous devrez eviter les obstacles")
58 CALL AFB(11,"pour terminer le parcours.")
59 CALL AFM(12,"VITESSE MAXI : 200Km/h"):CALL SUITE:CALL AFM(6,"COMMANDES :")
60 CALL AFB(8,"<-et-> = DIRECTION"):CALL AFB(9,"^ = ACCELERATION")
61 CALL AFB(10,CHR$(14)&" = FREINAGE .  "):CALL SUITE
62 CALL AFM(4,"1er OBSTACLE : VIRAGE"):CALL AFB(5,"Si vous sortez de la route,")
63 CALL AFB(10,"c'est l'accident et la fin du jeu.")
64 L1=64:L2=1:L3=256:GOSUB 65:PAUSE 2:L2=-1:GOSUB 65:GOTO 69
65 FOR I=1 TO 72 STEP 3
66 CALL LINE("G",145,0,L1,59):CALL LINE("G",175,0,L3,59)
67 CALL LINE("B",145,0,L1+L2,59):CALL LINE("B",175,0,L3+L2,59)
68 L1=L1+L2:L3=L3+L2:NEXT:CALL SUITE:RETURN
69 CALL AFM(7,"2eme OBSTACLE : VEHICULES"):CALL AFB(8,"Si vous percutez,")
70 CALL AFB(10,"c'est l'accident et la fin du jeu.")
71 DATA 155,35,163,20,177,20,185,35,0
72 C$="R":GOSUB 106:FOR I=36 TO 42 STEP 2
73 CALL LINE("R",155,I,185,I):NEXT:FOR I=43 TO 46
74 CALL LINE("B",157,I,161,I):CALL LINE("B",179,I,183,I)
75 NEXT:CALL SUITE
76 CALL AFM(4,"3eme OBSTACLE : CHAUSSEE DEFORMEE")
77 CALL AFB(6,"Si vous passez sur cet obstacle"):CALL AFB(7,"a plus de 60 K/h,")
78 CALL AFB(8,"c'est la crevaison."):CALL AFB(10,"Vous pourrez repartir,")
79 CALL AFB(11,"mais vous serez penalise.")
80 L1=160:L3=165:FOR Y=0 TO 58 STEP 2
81 CALL LINE("Y",L1,I,L3,I):L1=L1-.5:L3=L3+2.5
82 NEXT:CALL SUITE
83 CALL AFM(6,"4eme OBSTACLE :TERRE PLEIN CENTRAL"):GOSUB 87
84 L1,L3=160:FOR I=0 TO 58 STEP 2
85 CALL LINE("R",L1,I,L3,I):L1=L1-.5:L3=L3+.5:NEXT
86 CALL SUITE:GOTO 90
87 CALL AFB(8,"Sur cet obstacle,vous avez")
88 CALL AFB(9,"une petite chance de pouvoir")
89 CALL AFB(10,"repartir sans degats."):RETURN
90 CALL AFM(6,"5eme OBSTACLE : PLAQUE DE VERGLAS"):GOSUB 87
91 L1=152:L3=168:FOR I=20 TO 46 STEP 2
92 CALL LINE("W",L1,I,L3,I):IF I<35 THEN L1=L1-1.5:L3=L3+1.5:GOTO 94
93 L1=L1+.5:L3=L3-.5
94 NEXT:CALL SUITE
95 DATA 152,16,153,16,153,24,0
96 DATA 163,16,167,16,167,24,163,24,163,16,0
97 DATA 156,16,160,16,160,19,156,21,156,24,160,24,0
98 DATA 160,0,184,30,136,30,160,0,0
99 CALL AFM(4,"6eme OBSTACLE : VITESSE LIMITEE")
100 CALL AFB(6,"Si vous passez plus rapidement")
101 CALL AFB(7,"que la vitesse indiquee,")
102 CALL AFB(8,"vous serez penalise")
103 CALL AFB(9,"selon votre vitesse.")
104 C$="B":FOR I=1 TO 4:GOSUB 106:IF I=3 THEN C$="R"
105 NEXT:GOTO 109
106 READ A,B
107 READ C:IF C=0 THEN RETURN
108 READ D:CALL LINE(C$,A,B,C,D):A=C:B=D:GOTO 107
109 CALL SUITE: CALL HROFF
110 CALL AFR(10,"##  BONNE CHANCE  ##")
111 CALL AFB(19,"CHARGEZ MAINTENANT LA 2EME PARTIE"):PAUSE 3:CLS "BCC"
112 !
113 SUB AFR(X,A$)
114 CALL COLOR("0RH"):LOCATE (X,(41-LEN(A$))/2)
115 PRINT A$:LOCATE (X+1,(41-LEN(A$))/2)
116 PRINT A$:SUBEND
117 SUB AFB(X,A$):CALL COLOR("0bC")
118 FOR I=1 TO LEN(A$):LOCATE (X,(40-LEN(A$))/2+I):PRINT SEG$(A$,I,1)
119 CALL SPEECH("L,0D7CFFFE"):NEXT:PAUSE 1:SUBEND
120 SUB AFM(X,A$)
121 CALL COLOR("0MW"):LOCATE (X,2)
122 PRINT " * "&A$&" ":SUBEND
123 SUB SUITE
124 CALL COLOR("1RGF"):LOCATE (21,5)
125 PRINT "FRAPPER SUR":LOCATE (21,25):PRINT "UNE TOUCHE."
126 A$=KEY$:LOCATE (21,5):PRINT RPT$(" ",11):LOCATE (21,25):PRINT RPT$(" ",11)
127 CALL COLOR("0CB"):FOR I=4 TO 12
128 LOCATE (I,1):PRINT RPT$(" ",40):NEXT
129 L1=155:L3=165:FOR I=0 TO 59
130 CALL LINE("G",L1,I,L3,I):L1=L1-1.5:L3=L3+1.5
131 NEXT:SUBEND
132 !

 

1 ! RALLYE
3 !
5 ! Programme de Jeu
7 !
9 ! 2eme PARTIE
11 ! concu et realise par S. CARBILLET
13 ! Aout-Septembre 1985
15 !
17 ! Avant de charger ce programme
19 ! Assurez vous d'avoir charge
21 ! la premiere partie
23 !
25 !
27 CALL POKE(50688,165,8,6,10):CALL POKE(49156,198,0)
29 CLS "BCB":CALL HRON("G",9,10)
31 CLS "BGB":RANDOMIZE
33 CALL LINE("B",152,30,84,99)
35 CALL LINE("B",168,30,236,99)
37 FOR I=0 TO 25:CALL LINE("C",0,I,319,I):NEXT
39 L0=30:L4=110:L1=60:L2=10:L3=30:C1$="W":GOSUB 61
41 L0=185:L4=306:L1=255:L2=15:L3=34:C1$="Y":GOSUB 61
43 L0=0:L4=42:L1=0:LE=18:L3=51:GOSUB 61
45 L0=145:L4=230:L1=160:L2=14:L3=21:C1$="b":GOSUB 61
47 L0=30:L4=46:L1,L2,L3=268:FOR J=1 TO 4:FOR I=L0 TO L4 STEP 2
49 CALL LINE("B",L1,I,L3,I):IF I<(L4-L0)/2+L0 THEN L1=L1-1:L3=L3+1
51 NEXT:CALL LINE("B",L2,L4,L2,L4+3)
53 L0=L0+4:L4=L4+8:L1,L2,L3=L1+19:NEXT
55 CALL COLOR("1YC"):LOCATE (8,32):PRINT "Z"
57 CALL COLOR("0RB"):LOCATE (1,1):PRINT RPT$(" ",80)
59 LOCATE (1,10):PRINT "KMs";TAB(18);"VITESSE";TAB(30);"SCORE":GOTO 65
61 FOR I=L0 TO L4 STEP 3:CALL LINE(C1$,L1,L2,I,L3):NEXT:RETURN
63 !
65 SC=0:X1=10:K=0:VIT=20:P=1:PU=1:AC=0:SO=30:X=17
67 CALL COLOR("0Yb"):LOCATE (2,9):PRINT K;TAB(20);VIT;TAB(31);SC
69 !
71 CALL AFR(4,"ATTENTION AU DEPART :"):CALL VOIT(X,0)
73 FOR I=5 TO 0 STEP -1:FOR J=255 TO 45 STEP -40
75 CALL POKE(258,J,155):PAUSE .1:NEXT
77 PAUSE .3:CALL POKE(259,45)
79 LOCATE (6,19):CALL COLOR("0BC")
81 PRINT I:PAUSE .2:NEXT:CALL EF
83 !
85 PO=INT(220-VIT)/40+1:IF P>3 THEN CALL COLOR("0Yb"):GOTO 97
87 ON X1 GOSUB 161,185,209,209,233,247,283,295,315,339,339,339,339
89 GOSUB 137
91 IF X1<10 THEN GOSUB 339
93 P=P+1:IF PU=0 THEN P=1
95 GOTO 85
97 ON X1 GOSUB 181,205,225,225,239,273,289,303,329,379,379,379,379
99 CALL POKE(259,45):SC=SC+(VIT*.05):IF X1=3 OR X1=4 THEN K=K+.6 ELSE K=K+.3
101 LOCATE (2,9):PRINT USING"##.#",K:IF K>=30 THEN L0=39:GOTO 539
103 LOCATE (2,30):PRINT USING"####",SC:IF SC<0 THEN SC=0
105 IF AC<>0 THEN PAUSE 1:ON AC GOTO 409,433,479
107 !
109 X3=0:P=1:X1=INTRND(13):X2=INTRND(2):IF X2=2 THEN X2=-1
111 ON X1 GOSUB 115,117,119,121,123,125,127,129,131,133,133,133,133
113 GOTO 87
115 L0=42:L1=3:L2=39:L3=146:L4=47:RETURN
117 L0=41:L2=39:L3=170:L4=49:RETURN
119 L0=-1:L1=84:L3=236:L4=-12:X2=-1:V=0:RETURN
121 L0=1:L1=84:L3=236:L4=12:X2=1:V=0:RETURN
123 L0=35:L1,L3=160:L4=45:X3=RND:RETURN
125 L0=44:L1=142:L3=178:L4=67:X3=INTRND(3)-1:RETURN
127 L0=39:L1=160:L3=165:L4=59:RETURN
129 L0=39:L1=155:L3=160:L4=59:RETURN
131 L0=39:L1=155:L3=165:L4=45:PU=0:X3=RND:RETURN
133 RETURN
135 !
137 FOR I=1 TO PO:CALL KEY1(A,B):IF B=0 THEN 157
139 IF A=128 AND VIT<200 THEN VIT=VIT+20:GOTO 155
141 IF A=79 AND VIT<200 AND X<33 THEN X=X+1:VIT=VIT+20:GOTO 155
143 IF A=129 AND X<33 THEN X=X+1:GOTO 155
145 IF A=72 AND VIT>20 AND X<33 THEN X=X+1:VIT=VIT-20:GOTO 155
147 IF A=130 AND VIT>20 THEN VIT=VIT-20:GOTO 155
149 IF A=60 AND VIT>20 AND X>2 THEN X=X-1:VIT=VIT-20:GOTO 155
151 IF A=131 AND X>2 THEN X=X-1:GOTO 155
153 IF A=84 AND VIT<200 AND X>2 THEN X=X-1:VIT=VIT+20
155 CALL COLOR("0Yb"):LOCATE (2,20):PRINT USING"###",VIT
157 NO=255-VIT/2:CALL VOIT(X,NO):NEXT
159 EC=INT((VIT/60)+1)*1.25:RETURN
161 !
163 IF P=1 THEN 169 ELSE GOSUB 165:GOTO 167
165 FOR I=L2 TO L4:CALL LINE("G",160,I,L3,I):NEXT:RETURN
167 L0=L0+(7*P):L1=L1+2:L2=L0-(3*P):L3=L3-10:L4=L4+(9*P)
169 CALL LINE("R",160,L0,160-L1,L2):CALL LINE("R",160-L1,L2,L3+L1,L2)
171 CALL LINE("R",L3+L1,L2,L3,L0)
173 FOR I=L0 TO L4-(L1/2)STEP EC/2:CALL LINE("R",160,I,L3,I):NEXT
175 FOR I=L4-(L1/2)TO L4 STEP EC/2:CALL LINE("B",160-P,I,160-L1,I)
177 CALL LINE("B",L3+L1,I,L3+P,I):NEXT
179 RETURN
181 GOSUB 165:IF X<20 OR X>25 THEN AC=1
183 RETURN
185 !
187 IF P=1 THEN 193 ELSE GOSUB 189:GOTO 191
189 FOR I=L2 TO L1+1:CALL LINE("G",160,I,L3,I):NEXT:RETURN
191 L0=L0+(6*P):L2=L0-(2*P):L3=L3+14:L4=L4+7+(6*P)
193 FOR I=L2 TO L0 STEP EC/2:CALL LINE("W",160,I,L3,I):NEXT
195 CALL LINE("W",L3,L2,L3,L4):CALL LINE("W",160,L2,160,L4)
197 FOR I=L0+(3*P)TO L4 STEP EC/2:CALL LINE("W",160,I,L3,I):NEXT
199 L1=L4+1+P:FOR I=L4 TO L1 STEP EC/2:CALL LINE("B",L3-P,I,L3-(2*P),I)
201 CALL LINE("B",160+P,I,160+(2*P),I):NEXT
203 RETURN
205 GOSUB 189:IF X<10 OR X>15 THEN AC=1
207 RETURN
209 !
211 PU=1:IF X2=-1 THEN LE=-EC ELSE L2=EC
213 FOR I=L0 TO L4 STEP L2/2
215 CALL LINE("G",168,30,L3,99):CALL LINE("B",168,30,L3+L2,99)
217 CALL LINE("G",152,30,L1,99):CALL LINE("B",152,30,L1+L2,99)
219 L1=L1+L2:L3=L3+L2:NEXT:SO=SO+(L0*2):CALL COLOR("1YC")
221 LOCATE (8,SO):PRINT "  Z  ":V=V+1:IF V=3 THEN 223 ELSE RETURN
223 L0=-L0:L4=-L4:PU=0:X2=-X2:GOTO 229
225 FOR J=-1 TO 1:CALL LINE("G",168,30,L3+J,99):CALL LINE("G",152,30,L1+J,99)
227 NEXT:CALL LINE("B",152,30,84,99):CALL LINE("B",168,30,236,99)
229 IF X+1<L1/8 OR X+5>L3/8 THEN AC=1
231 RETURN
233 !
235 FOR I=L0 TO L4 STEP EC:CALL LINE("R",L1,I,L3,I)
237 L1=L1-(EC/4):L3=L3+(EC/4):NEXT:L0=L0+20:L4=L4+23:RETURN
239 !
241 IF (X>13 AND X<22)OR X<10 OR X>25 THEN AC=1
243 L1,L3=160:FOR I=35 TO 98:CALL LINE("G",L1,I,L3,I)
245 L1=L1-.5:L3=L3+.5:NEXT:RETURN
247 !
249 IF P=1 THEN 267
251 RESTORE 393:GOSUB 261:GOSUB 261
253 ON X3+1 GOTO 255,257,259
255 RESTORE 405:GOSUB 261:GOTO 267
257 RESTORE 397:GOSUB 261:GOTO 267
259 RESTORE 399:GOSUB 261:GOTO 267
261 READ C,D
263 READ E:IF E=0 THEN RETURN
265 READ F:CALL LINE("B",C,D,E,F):C=E:D=F:GOTO 263
267 CALL LINE("R",L1,L4,160,L0):CALL LINE("R",160,L0,L3,L4)
269 CALL LINE("R",L3,L4,L1,L4)
271 L0=L0-8:L1=L1-8:L3=L3+8:L4=L4+5:RETURN
273 !
275 L1,L3=160:FOR I=28 TO 77:CALL LINE("G",L1,I,L3,I)
277 L1=L1-1:L3=L3+1:NEXT
279 IF VIT>100+X3*20 THEN AC=3
281 RETURN
283 !
285 FOR I=L0 TO L4 STEP EC:CALL LINE("Y",L1,I,L3,I)
287 L1=L1-(EC/4):L3=L3+EC-.5:NEXT:L0=L0+20:L4=L4+20:RETURN
289 !
291 IF X<10 OR (X>13 AND VIT>60)THEN AC=2
293 GOTO 307
295 !
297 FOR I=L0 TO L4 STEP EC:CALL LINE("Y",L1,I,L3,I)
299 L1=L1-EC+.5:L3=L3+(EC/4):NEXT:L0=L0+20:L4=L4+20
301 RETURN
303 !
305 IF X>25 OR (X<22 AND VIT>60)THEN AC=2
307 L1=155:L3=165
309 FOR I=39 TO 100 STEP 1.25:CALL LINE("G",L1,I,L3,I)
311 L1=L1-1.5:L3=L3+1.5:NEXT
313 RETURN
315 !
317 IF L0>39 THEN GOSUB 333
319 FOR I=L0 TO L4 STEP 3:CALL LINE("W",L1,I,L3,I)
321 IF I<(L4-L0+3)/2+L0 THEN L1=L1-2:L3=L3+1.5:GOTO 325
323 L1=L1+1:L3=L3-1
325 NEXT:L0=L0+12:L4=L4+12+(3*P)
327 RETURN
329 !
331 IF (X>12 AND X<23)OR X<10 OR X>25 THEN AC=1
333 PU=1:L2=L1:L5=L3:FOR I=L0-12 TO L4-12 STEP 3
335 CALL LINE("G",L2,I,L5,I):L2=L2-3:L5=L5+3:NEXT
337 RETURN
339 !
341 ON P GOTO 343,345,347
343 C1$="M":C2$,C3$="G":GOTO 349
345 C2$="M":C1$,C3$="G":GOTO 349
347 C3$="M":C1$,C2$="G"
349 IF V=3 AND X1=4 THEN 357
351 IF V=3 AND X1=3 THEN 367
353 ON X2+2 GOTO 367,367,357
355 !
357 IF P=1 THEN FOR I=228 TO 230:CALL LINE("G",I,70,I,85):NEXT
359 CALL LINE(C1$,136,28,136,33)
361 FOR I=120 TO 121:CALL LINE(C2$,I,42,I,52):NEXT
363 FOR I=90 TO 92:CALL LINE(C3$,I,70,I,85):NEXT:GOTO 375
365 !
367 IF P=1 THEN FOR I=90 TO 92:CALL LINE("G",I,70,I,85):NEXT
369 CALL LINE(C1$,184,28,184,33)
371 FOR I=195 TO 196:CALL LINE(C2$,I,42,I,52):NEXT
373 FOR I=228 TO 230:CALL LINE(C3$,I,70,I,85):NEXT
375 IF V=6 AND (X1=3 OR X1=4)THEN X2=-X2
377 RETURN
379 !
381 L0=3:L1=91:L2=94:L3=97:L4=7:FOR I=1 TO 6
383 CALL LINE("B",L1,L0,L2,L4):CALL LINE("B",L2,L4,L3,L0):L1=L1+8:L2=L2+8
385 L3=L3+8:IF I<5 THEN L0=L0+3:L4=L4+2 ELSE L0=L0-2:L4=L4-1
387 NEXT:PAUSE .2:FOR I=3 TO 18:CALL LINE("C",91,I,138,I)
389 NEXT:RETURN
391 !
393 DATA 152,56,153,56,153,64,0
395 DATA 163,56,167,56,167,64,163,64,163,56,0
397 DATA 156,56,160,56,160,59,156,61,156,64,160,64,0
399 DATA 156,56,156,61,160,61,160,56,160,64,0
401 DATA 30,80,20,80,20,95,30,95,30,88,25,88,0
403 DATA 38,80,38,95,48,95,48,80,38,80,0
405 DATA 156,56,156,64,160,64,160,56,156,56,0
407 !
409 !
411 !
413 B1$="L,0BA02163031B18008D1E139840073A108100F0901E8108048047"
415 B2$="8F084420020570CEBD02110840704E118840043CE0010F78C00316"
417 B3$="B080052C20010948800214A00005284081FF":B$=B1$&B2$&B3$
419 IF X3>.8 THEN CALL AFR(3,"ACCROCHAGE") ELSE CALL AFR(3,"ACCIDENT"):GOTO 423
421 CALL SPEECH(B$):PAUSE 2:CALL AFB(6,"PAS DE DEGATS! REPARTEZ."):GOTO 469
423 CLS:FOR I=1 TO 3:CALL SPEECH(B$):NEXT:PAUSE 2:CALL COLOR("1bGF")
425 LOCATE (19,X+1):PRINT "h o c":LOCATE (20,X):PRINT "a    d"
427 CALL COLOR("1RGF"):LOCATE (20,X+2):PRINT "t u"
429 LOCATE (21,X+2):PRINT "vwx":LOCATE (22,X+2):PRINT "yz"
431 GOTO 499
433 !
435 GOSUB 471:CALL AFR(3,"CREVAISON")
437 B$="L,0E683FC7031EF040043CFE":FOR I=1 TO 5:CALL SPEECH(B$):PAUSE .1:NEXT
439 PAUSE 2:CALL AFB(5,"Allez reparer a gauche de l'ecran")
441 FOR I=70 TO 99
443 CALL LINE("W",14,I,54,I):CALL LINE("W",56,I,63,I-10):NEXT
445 L1=17:FOR I=60 TO 71 STEP 2:CALL LINE("R",L1,I,L1+47,I)
447 CALL LINE("B",L1,I+1,L1+47,I+1):L1=L1-1:NEXT:C1$="b":GOSUB 477
449 CALL AFB(6,"POINTS DE PENALITE:"):LOCATE (6,31):PRINT USING"###",(VIT-60)/2
451 FOR I=X TO 2 STEP -1
453 CALL KEY1(A,B):IF A<>131 THEN 453
455 X=X-1:CALL SPEECH(B$):NO=0:CALL VOIT(X,NO)
457 GOSUB 471:NEXT
459 SC=SC-((VIT-60)/2):LOCATE (2,30):PRINT USING"####",SC:PAUSE 5
461 C1$="W":GOSUB 477:RESTORE 401
463 GOSUB 261:GOSUB 261
465 FOR J=1 TO 3:PO=5:VIT=20:GOSUB 135:NEXT
467 FOR I=64 TO 10 STEP -1:CALL LINE("G",I,60,I,99):NEXT
469 PAUSE 3:CALL EF:X1=10:AC=0:VIT=20:GOTO 85
471 IF X<3 THEN RETURN
473 CALL COLOR("1BGF"):LOCATE (22,X):PRINT "Y"
475 RETURN
477 FOR I=85 TO 99:CALL LINE(C1$,22,I,46,I):NEXT:RETURN
479 !
481 CALL AFR(3,"CONTROLE RADAR")
483 B1$="L,87AEDADD62971CBA6A378F7572E8AADDADD6CDA52F75A8AADDEDD6E9A50A59B5BB"
485 B2$="DD3A3B64D5EE7EEBF69055BBFBADB34356ED1EB76E0F51B57B5CBB3D44D56E71E5F6"
487 B3$="1055BBE579DA8357EDB6A7ED0E5EB5DB9DB6BBF8C50F5655DA9DB63B58D5EE77B2F6"
489 B$=B1$&B2$&B3$&"6207ABDAFD4ED75EECE217BDEBE":FOR I=1 TO 3:CALL SPEECH(B$)
491 PAUSE .5:NEXT:X3=100+X3*20:PAUSE 2
493 CALL AFB(5,"VOTRE VITESSE :"):LOCATE (5,29):PRINT VIT
495 CALL AFB(6,"POINTS DE PENALITE :"):LOCATE (6,31):PRINT VIT-X3
497 SC=SC-(VIT-X3):GOTO 469
499 !
501 CALL AFR(3,"**  RALLYE  **"):PAUSE 2
503 IF K>=30 THEN CALL AFB(5,"VOUS AVEZ TERMINE !"):GOTO 507
505 CALL AFB(5,"HELAS ! VOUS ETES HORS COURSE.")
507 CALL COLOR("0YC"):LOCATE (6,2):PRINT "BONUS:";
509 PRINT TAB(16);"SCORE:";TAB(29);"RECORD:":CALL COLOR("0MC")
511 LOCATE (6,9):PRINT USING"###",K*5:SC=SC+K*5:IF SC>RE THEN RE=SC
513 LOCATE (6,22):PRINT USING"####",SC:LOCATE (6,36):PRINT USING"####",RE
515 IF SC<230 THEN A$="CONDUISEZ PLUTOT UNE 2CV !":GOTO 525
517 IF SC<450 THEN A$="CE N'EST PAS TRES BRILLANT !":GOTO 525
519 IF SC<670 THEN A$="CONTINUEZ DE VOUS ENTRAINER !":GOTO 525
521 IF SC<900 THEN A$="ENCORE QUELQUES EFFORTS !":GOTO 525
523 A$="VOUS ETES UN CHAMPION ! BRAVO !"
525 !
527 CALL AFB(7,A$):CALL COLOR("0WB")
529 LOCATE (19,27):PRINT " VOULEZ-VOUS "
531 LOCATE (20,27):PRINT "  REJOUER ?  "
533 LOCATE (21,27):PRINT "(1=OUI/0=NON)"
535 A$=KEY$:IF A$="1" THEN C1$,C2$="G":GOSUB 551:CALL EF:CLS:GOTO 63
537 IF A$="0" THEN PAUSE 2:CALL HROFF:CLS "BCC":END ELSE 535
539 L1=148:L3=172:FOR I=1 TO 4:FOR J=0 TO 1:CALL LINE("W",L1,L0+J,L3,L0+J)
541 NEXT:PAUSE EC/2:FOR J=-1 TO 1:CALL LINE("G",L1,L0+J,L3,L0+J):NEXT
543 L0=L0+18:L1=L1-18:L3=L3+18:NEXT:C1$="B":C2$="W":GOSUB 551
545 FOR I=1 TO 6:IF INT(I/2)=I/2 THEN L0=74 ELSE L0=69
547 FOR J=1 TO 3:FOR F=0 TO 4:CALL LINE("B",L1,L0+F,L1+4,L0+F)
549 NEXT:L0=L0+10:NEXT:L1=L1+5:NEXT:GOTO 499
551 L1=144:CALL LINE(C1$,128,68,173,68):FOR I=69 TO 99
553 CALL LINE(C2$,L1,I,173,I):NEXT:RETURN
555 !
557 !
559 !
561 SUB AFR(X,A$)
563 CALL COLOR("0MHF")
565 LOCATE (X,(41-LEN(A$))/2):PRINT A$
567 LOCATE (X+1,(41-LEN(A$))/2):PRINT A$
569 SUBEND
571 !
573 SUB AFB(X,A$)
575 CALL COLOR("0bC"):FOR I=1 TO LEN(A$):LOCATE (X,(40-LEN(A$))/2+I)
577 PRINT SEG$(A$,I,1):CALL SPEECH("L,0DBE"):NEXT:PAUSE .2
579 SUBEND
581 !
583 SUB EF
585 CALL COLOR("0BC")
587 LOCATE (3,1):PRINT RPT$(" ",200)
589 SUBEND
591 !
593 SUB VOIT(X,NO)
595 IF NO<>0 THEN CALL POKE(258,NO,155)
597 CALL COLOR("1bG"):LOCATE (19,X):PRINT "  abc "
599 LOCATE (20,X):PRINT " defgh "
601 LOCATE (21,X):PRINT " isssm "
603 LOCATE (22,X):PRINT " nopqr "
605 CALL COLOR("1Rb"):LOCATE (21,X+2):PRINT "jkl"
607 CALL COLOR("1BG"):LOCATE (22,X):PRINT " n"
609 LOCATE (22,X+5):PRINT "r "
611 SUBEND


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.