10 REM **********
20 REM * ROBOTS * 30 REM ********** 40 DEFINT A-Z 50 DIM TB(40,25) 60 NH=5 70 N1=5 80 NM=40 90 NR=N1 100 DIM R(30,1) 110 GOSUB 1610 120 GOSUB 1470 130 GOSUB 890 140 ON JS GOSUB 690,790 150 FOR I=1 TO 100 160 NEXT I 170 C=TB(HX,HY) 180 IF C<>H AND C<>0 THEN 490 190 PEN 1 200 LOCATE X,Y 210 PRINT N$;:TB(X,Y)=0 220 LOCATE HX,HY 230 PRINT H$;:TB(HX,HY)=H 240 X=HX 250 Y=HY 260 T=0 270 FOR I=1 TO NR 280 IF R(I,0)=0 THEN 420 290 T=1 300 RX=R(I,0)+SGN(HX-R(I,0)) 310 RY=R(I,1)+SGN(HY-R(I,1)) 320 C=TB(RX,RY) 330 IF C=M OR C=R THEN S=S+1:LOCATE R(I,0),R(I,1):PRINT N$;:TB(R(I,0),R(I,1))=0:R(I,0)=0:GOTO 420 340 IF C=H THEN 490 350 PEN 3 360 LOCATE R(I,0),R(I,1) 370 PRINT N$;:TB(R(I,O),R(I,1))=0 380 LOCATE RX,RY 390 PRINT R$;:TB(RX,RY)=R 400 R(I,0)=RX 410 R(I,1)=RY 420 NEXT I 430 IF T=0 THEN 450 440 GOTO 140 450 S=S+10 460 IF INKEY$<>"" THEN 460 470 IF NR<30 THEN NR=NR+1 480 GOTO 130 490 NH=NH-1 500 PEN 2 510 LOCATE X,Y 520 PRINT N$;:TB(X,Y)=0 530 LOCATE HX,HY 540 PRINT H$;:TB(HX,HY)=H 550 IF INKEY$<>"" THEN 550 560 IF NH>0 THEN NR=N1:GOTO 130 570 CLS 580 LOCATE 10,11 590 PRINT "SCORE :";S; 600 LOCATE 10,21 610 PRINT "UNE AUTRE ?"; 620 PEN 1 630 IF INKEY$<>"" THEN 630 640 D$=INKEY$ 650 IF D$="" THEN 640 660 IF D$<>"N" AND D$<>"n" THEN RUN 670 CLS 680 END 690 D$=UPPER$(INKEY$) 700 IF D$="Q" THEN HX=HX-1:HY=HY-1 710 IF D$="W" THEN HY=HY-1 720 IF D$="E" THEN HY=HY-1:HX=HX+1 730 IF D$="A" THEN HX=HX-1 740 IF D$="D" THEN HX=HX+1 750 IF D$="Z" THEN HX=HX-1:HY=HY+1 760 IF D$="X" THEN HY=HY+1 770 IF D$="C" THEN HY=HY+1:HX=HX+1 780 RETURN 790 J=JOY(0) 800 IF J=5 THEN HX=HX-1:HY=HY-1 810 IF J=1 THEN HY=HY-1 820 IF J=9 THEN HY=HY-1:HX=HX+1 830 IF J=4 THEN HX=HX-1 840 IF J=8 THEN HX=HX+1 850 IF J=6 THEN HX=HX-1:HY=HY+1 860 IF J=2 THEN HY=HY+1 870 IF J=10 THEN HY=HY+1:HX=HX+1 880 RETURN 890 CLS 900 PEN 1 910 LOCATE 1,25 920 PRINT "SCORE :";S; 930 IF NH=1 THEN 980 940 FOR HX=1 TO NH-1 950 LOCATE 20+HX,25 960 PRINT H$; 970 NEXT HX 980 PEN 2 990 ERASE TB 1000 DIM TB(40,25) 1010 FOR HX=1 TO 40 1020 LOCATE HX,1 1030 PRINT M$;:TB(HX,1)=M 1040 LOCATE HX,24 1050 PRINT M$;:TB(HX,24)=M 1060 NEXT HX 1070 FOR HY=2 TO 23 1080 LOCATE 1,HY 1090 PRINT M$;:TB(1,HY)=M 1100 LOCATE 40,HY 1110 PRINT M$;:TB(40,HY)=M 1120 NEXT HY 1130 FOR I=1 TO NM 1140 HX=INT(RND(1)*38)+2 1150 HY=INT(RND(1)*22)+2 1160 IF TB(HX,HY)<>0 THEN 1140 1170 LOCATE HX,HY 1180 PRINT M$;:TB(HX,HY)=M 1190 NEXT I 1200 PEN 2 1210 FOR I=1 TO NR 1220 R(I,0)=INT(RND(1)*38)+2 1230 R(I,1)=INT(RND(1)*22)+2 1240 IF TB(R(I,0),R(I,1))<>0 THEN 1220 1250 LOCATE R(I,0),R(I,1) 1260 PRINT R$;:TB(R(I,0),R(I,1))=R 1270 NEXT I 1280 HX=INT(RND(1)*38)+2 1290 HY=INT(RND(1)*22)+2 1300 IF TB(HX,HY)<>0 THEN 1280 1310 X=HX 1320 Y=HY 1330 FOR I=1 TO 5 1340 LOCATE HX,HY 1350 PEN 3 1360 PRINT CHR$(143); 1370 PRINT CHR$(7); 1380 FOR J=1 TO 50 1390 NEXT J 1400 LOCATE HX,HY 1410 PEN 1 1420 PRINT H$;:TB(HX,HY)=H 1430 FOR J=1 TO 50 1440 NEXT J 1450 NEXT I 1460 RETURN 1470 CLS 1480 MODE 1 1490 INK 0,1 1500 INK 1,25 1510 INK 2,23 1520 INK 3,16 1530 BORDER 22 1540 LOCATE 11,11 1550 PRINT "JOYSTICK ?"; 1560 D$=INKEY$ 1570 C=RND(1) 1580 IF D$="" THEN 1560 1590 IF D$="O" OR D$="o" THEN JS=2 ELSE JS=1 1600 RETURN 1610 SYMBOL 240,28,28,73,62,8,28,20,20 1620 SYMBOL 241,60,126,219,255,255,126,36,60 1630 SYMBOL 242,0,0,24,60,126,126,60,24 1640 H$=CHR$(240) 1650 H=240 1660 R$=CHR$(241) 1670 R=241 1680 M$=CHR$(242) 1690 M=242 1700 N$=CHR$(32) 1710 RETURN |