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 |