10 REM *************
20 REM * POURSUITE *
30 REM *************
40 DIM TB(40,25)
50 GOSUB 1360
60 S=0
70 N$=CHR$(32)
80 V$=CHR$(224)
90 V=224
100 P$=CHR$(251)
110 P=251
120 GOSUB 820
130 ON JK GOTO 200
140 D$=INKEY$
150 DH=(D$=F1$)-(D$=F2$)
160 DV=(D$=F3$)-(D$=F4$)
170 IF DH<>0 THEN DX=DH:DY=0
180 IF DV<>0 THEN DY=DV:DX=0
190 GOTO 230
200 ST=JOY(0)
210 DX=(ST=4)-(ST=8)
220 DY=(ST=1)-(ST=2)
230 Z=Z-0.2
240 LOCATE 1,25
250 PEN 1
260 PRINT "TEMPS :";INT(Z+1)
270 IF Z<0 THEN 520
280 PX=PX+DX
290 PY=PY+DY
300 C=TB(PX,PY)
310 IF C=V THEN 1270
320 IF C<>0 THEN PX=XP:PY=YP
330 LOCATE XP,YP
340 PRINT N$;:TB(XP,YP)=0
350 LOCATE PX,PY
360 PEN 2
370 PRINT P$;:TB(PX,PY)=P
380 YP=PY
390 XP=PX
400 VX=VX+CX
410 VY=VY+CY
420 IF TB(VX,VY)<>0 THEN GOSUB 660
430 IF TB(VX,VY)<>0 THEN 400
440 LOCATE XV,YV
450 PEN 1
460 PRINT N$;:TB(XV,YV)=0
470 LOCATE VX,VY
480 PRINT V$;:TB(VX,VY)=V
490 XV=VX
500 YV=VY
510 GOTO 130
520 IF INKEY$<>"" THEN 520
530 IF R<S THEN R=S
540 PEN 1
550 LOCATE 11,7
560 PRINT "TEMPS ECOULE";
570 LOCATE 11,11
580 PRINT "SCORE :";S;
590 LOCATE 11,19
600 PRINT "UNE AUTRE ?";
610 D$=INKEY$
620 IF D$="" THEN 610
630 IF D$<>"N" AND D$<>"n" THEN RUN
640 CLS
650 END
660 DT=DT+1
670 GOSUB 770
680 IF TB(XV+CX,YV+CY)=0 THEN VX=XV+CX:VY=YV+CY:RETURN
690 DT=DT-2
700 GOSUB 770
710 IF TB(XV+CX,YV+CY)=0 THEN VX=XV+CX:VY=YV+CY:RETURN
720 DT=DT-1
730 GOSUB 770
740 VX=XV+CX
750 VY=YV+CY
760 RETURN
770 IF DT>4 THEN DT=DT-4
780 IF DT<1 THEN DT=DT+4
790 CX=(DT=1)-(DT=3)
800 CY=(DT=2)-(DT=4)
810 RETURN
820 CLS
830 PEN 2
840 FOR VX=1 TO 40
850 LOCATE VX,1
860 PRINT CHR$(143);:TB(VX,1)=143
870 LOCATE VX,24
880 PRINT CHR$(143);:TB(VX,24)=143
890 NEXT VX
900 FOR VY=2 TO 23
910 LOCATE 1,VY
920 PRINT CHR$(143);:TB(1,VY)=143
930 LOCATE 40,VY
940 PRINT CHR$(143);:TB(40,VY)=143
950 NEXT VY
960 PEN 3
970 FOR VX=1 TO 150
980 GOSUB 1230
990 LOCATE PX,PY
1000 PRINT CHR$(143);:TB(PX,PY)=143
1010 NEXT VX
1020 GOSUB 1230
1030 VX=PX
1040 VY=PY
1050 PEN 1
1060 LOCATE VX,VY
1070 PRINT V$;:TB(VX,VY)=V
1080 XV=VX
1090 YV=VY
1100 GOSUB 1230
1110 PEN 3
1120 LOCATE PX,PY
1130 PRINT P$;:TB(PX,PY)=P
1140 XP=PX
1150 YP=PY
1160 Z=30
1170 CX=0
1180 CY=0
1190 DX=0
1200 DY=0
1210 DT=0
1220 RETURN
1230 PX=INT(RND(1)*38)+2
1240 PY=INT(RND(1)*22)+2
1250 IF TB(PX,PY)<>0 THEN 1230
1260 RETURN
1270 LOCATE VX,VY:PEN 2:PRINT CHR$(225);
1280 FOR I=1 TO 5
1290 SOUND 1,450,100,15
1300 SOUND 1,500,100,15
1310 NEXT I
1320 ERASE TB
1330 DIM TB(40,25)
1340 S=S+1
1350 GOTO 120
1360 MODE 1
1370 BORDER 1
1380 INK 0,2
1390 INK 1,16
1400 INK 2,22
1410 INK 3,25
1420 CLS
1430 F1$=CHR$(242)
1440 F2$=CHR$(243)
1450 F3$=CHR$(240)
1460 F4$=CHR$(241)
1470 LOCATE 11,11
1480 PRINT "JOYSTICK ?";
1490 D$=INKEY$
1500 PX=RND(1)
1510 IF D$="" THEN 1490
1520 IF D$="O" OR D$="o" THEN JK=1 ELSE JK=0
1530 RETURN