Appears on
Assembled by Tim Ward from many sources. Contains programs 10211 – 10251.
Source Code
0 REM ROBO (KILLER ROBOTS) FROM DAVID AHL, BASIC COMPUTER GAMES CONVERTED TO SINCLAIR BASIC BY ANTHONY WILLING, WITH INSTRUCTIONS ADDED 3 CLS 5 SLOW 10 PRINT TAB 8;"%K%I%L%L%E%R% %R%O%B%O%T%S" 15 PRINT 20 PRINT 30 PRINT 40 PRINT "YOU ARE WITHIN A MAZE. THE WALLS ARE ELECTRICALLY CHARGED, AND THERE ARE MANY ROBOTS TRYINGTO DESTROY YOU." 50 PRINT 60 PRINT "THE ONLY CHANCE TO SURVIVE IS TOMANEUVER THE ROBOTS INTO THE WALLS." 70 PRINT 80 PRINT "YOU ARE THE ""*""" 90 PRINT "ROBOTS ARE THE ""+""S" 100 PRINT "THE WALLS ARE THE ""X""S" 110 PRINT AT 21,3;"(PRESS ENTER TO CONTINUE)" 120 PAUSE 4E4 130 CLS 140 PRINT "MOVES ARE 7.8.9" 150 PRINT " 4.%5.6" 160 PRINT " 1.2.3" 170 PRINT 180 PRINT "ENTER:" 190 PRINT "10 = NO MOVE FOR REST OF GAME" 200 PRINT "-1 = COMMIT SUICIDE--HOPELESS" 210 PRINT " 0 = A HUGE RANDOM LEAP" 213 PRINT 215 PRINT "HOW MANY ROBOTS (5-30)?" 217 INPUT Z 220 PRINT AT 21,4;"(PRESS ENTER TO BEGIN)" 230 PRINT AT 21,4;"(%P%R%E%S%S% %E%N%T%E%R% %T%O% %B%E%G%I%N)" 240 IF INKEY$<>"" THEN GOTO 260 250 GOTO 220 260 CLS 265 FAST 270 DIM A(10,20) 280 DIM B(10,20) 290 DIM N(12) 300 DIM L(Z) 310 DIM M(Z) 320 DIM N(Z) 330 DIM O(Z) 340 FOR B=1 TO 10 350 FOR C=1 TO 20 360 LET X=INT (1+10*RND) 370 IF X=5 THEN GOTO 400 380 LET A(B,C)=CODE (" ") 390 GOTO 410 400 LET A(B,C)=CODE ("X") 410 NEXT C 420 NEXT B 430 FOR D=1 TO 10 440 LET A(D,1)=CODE ("X") 450 LET A(D,20)=CODE ("X") 460 NEXT D 470 FOR F=1 TO 20 480 LET A(1,F)=CODE ("X") 490 LET A(10,F)=CODE ("X") 500 NEXT F 510 GOTO 560 520 LET H=INT (1+8*RND)+2 530 LET I=INT (1+18*RND)+2 540 IF A(H,I)<>CODE (" ") THEN GOTO 520 550 RETURN 560 GOSUB 520 570 LET A(H,I)=CODE ("*") 580 LET J=H 590 LET K=I 600 FOR N=1 TO Z 610 GOSUB 520 620 LET A(H,I)=CODE ("+") 630 LET L(N)=H 640 LET M(N)=I 650 NEXT N 660 FOR C=1 TO 10 670 FOR D=1 TO 20 680 LET B(C,D)=A(C,D) 690 NEXT D 700 NEXT C 710 FOR C=1 TO 5 720 LET N(C)=L(C) 730 LET O(C)=M(C) 740 NEXT C 750 LET J1=J 760 LET K1=K 770 LET Y9=0 780 CLS 781 FOR E=1 TO 10 790 FOR D=1 TO 20 800 LET N$=CHR$ (A(E,D)) 810 PRINT N$; 820 NEXT D 830 PRINT 840 NEXT E 850 IF Y9<>10 THEN GOTO 880 860 PRINT 870 GOTO 1180 880 INPUT Y9 890 LET J2=J 900 LET K2=K 910 IF Y9=0 THEN GOTO 1150 920 IF Y9<0 THEN GOTO 1570 930 IF Y9=10 THEN GOTO 1390 940 GOTO (1100 AND Y9=1)+(1080 AND Y9=2)+(1050 AND Y9=3)+(1130 AND Y9=4)+(1180 AND Y9=5)+(1030 AND Y9=6)+(0950 AND Y9=7)+(0980 AND Y9=8)+(1000 AND Y9=9) 950 LET J=J-1 960 LET K=K-1 970 GOTO 1180 980 LET J=J-1 990 GOTO 1180 1000 LET J=J-1 1010 LET K=K+1 1020 GOTO 1180 1030 LET K=K+1 1040 GOTO 1180 1050 LET J=J+1 1060 LET K=K+1 1070 GOTO 1180 1080 LET J=J+1 1090 GOTO 1180 1100 LET J=J+1 1110 LET K=K-1 1120 GOTO 1180 1130 LET K=K-1 1140 GOTO 1180 1150 PRINT "YOU JUMP..." 1160 LET J=INT (1+8*RND)+2 1170 LET K=INT (1+18*RND)+2 1180 IF A(J,K)=CODE ("X") THEN GOTO 1600 1190 LET A(J2,K2)=CODE (" ") 1200 LET A(J,K)=CODE ("*") 1210 GOTO 1390 1220 REM %I%N%T%E%R%C%E%P%T%O%R% %M%O%V%E%S 1230 IF A(X,Y)=CODE ("X") THEN GOTO 1360 1240 LET X2=X 1250 LET Y2=Y 1260 LET X=SGN (J-X) 1270 LET Y=SGN (K-Y) 1280 LET X=X+X2 1290 LET Y=Y+Y2 1300 IF A(X,Y)=CODE ("*") THEN GOTO 1370 1310 IF A(X,Y)=CODE (" ") THEN GOTO 1340 1320 LET A(X2,Y2)=CODE (" ") 1330 RETURN 1340 LET A(X,Y)=CODE ("+") 1350 LET A(X2,Y2)=CODE (" ") 1360 RETURN 1370 LET G9=99 1380 RETURN 1390 FOR N=1 TO Z 1400 LET X=L(N) 1410 LET Y=M(N) 1420 LET G9=0 1430 GOSUB 1230 1440 IF G9<>0 THEN GOTO 1580 1450 LET L(N)=X 1460 LET M(N)=Y 1470 NEXT N 1480 FOR N=1 TO Z 1490 IF A(L(N),M(N))<>CODE (" ") THEN GOTO 1510 1500 LET A(L(N),M(N))=CODE ("+") 1510 NEXT N 1520 FOR N=1 TO Z 1530 IF A(L(N),M(N))<>CODE ("X") THEN GOTO 780 1540 NEXT N 1550 PRINT "YOU DESTROYED ALL ROBOTS-YOU WIN" 1555 PRINT 1560 GOTO 1630 1570 PRINT "GIVE UP, EH??" 1580 PRINT "*****YOU HAVE BEEN KILLED*****" 1585 PRINT 1590 GOTO 1630 1600 PRINT "%H%I%G%H% %V%O%L%T%A%G%E" 1610 PRINT "ZAP...SIZZLE..YOU ARE DEAD" 1620 PRINT 1630 PRINT "ANOTHER GAME? (Y/N)" 1640 INPUT V$ 1650 IF V$<>"Y" THEN GOTO 5000 1660 PRINT "SAME SET-UP? (Y/N)" 1670 INPUT V$ 1680 IF V$<>"Y" THEN CLS 1685 IF V$<>"Y" THEN RUN 1690 FOR C=1 TO 10 1700 FOR D=1 TO 20 1710 LET A(C,D)=B(C,D) 1720 NEXT D 1730 NEXT C 1740 FOR C=1 TO 5 1750 LET L(C)=N(C) 1760 LET M(C)=O(C) 1770 NEXT C 1780 LET J=J1 1790 LET K=K1 1800 GOTO 770 5000 STOP 5020 SAVE "1021%4" 5030 RUN