= ROBOTS.BAS This game is featured in the [[sd:sd-8516_user_s_guide#chapter_4how_to_write_games_in_stellar_basic|SD-8516 User's Guide, chapter four]]. 10 LET PX = 19 20 LET PY = 11 30 LET RX = 1 40 LET RY = 1 100 REM DRAW MAP 110 GOSUB 1000 120 REM GET PLAYER INPUT 130 GOSUB 2000 140 REM MAKE ROBOTS MOVE 150 GOSUB 7000 160 REM CHECK FOR COLLISION 170 IF PX = RX THEN IF PY = RY THEN GOTO 4000 180 REM LOOP UNTIL QUIT 190 GOTO 100 1000 REM DRAW MAP 1005 VSTOP 1010 CLS 1020 LET A = ASC("*") 1030 FOR X = 0 TO 39 1040 CHARXY X, 0, A 1050 CHARXY X, 24, A 1060 NEXT X 1070 FOR Y = 0 TO 24 1080 CHARXY 0, Y, A 1090 CHARXY 39, Y, A 1100 NEXT Y 1110 LET PC = ASC("@") 1120 LET RC = ASC("r") 1200 CHARXY PX, PY, PC 1300 CHARXY RX, RY, RC 1800 VSTART 1900 RETURN 2000 REM *** SECTION B) INPUT LOOP 2010 LET K = GETKEY() 2015 IF K >= 97 THEN LET K = K - 32 2020 LET L = ASC("H") 2030 LET D = ASC("J") 2040 LET U = ASC("K") 2050 LET R = ASC("L") 2060 LET Q = ASC("Q") 2200 IF K = L THEN GOSUB 5000 : REM MOVE LEFT 2210 IF K = D THEN GOSUB 5100 : REM MOVE DOWN 2220 IF K = U THEN GOSUB 5200 : REM MOVE UP 2230 IF K = R THEN GOSUB 5300 : REM MOVE RIGHT 2240 IF K = Q THEN GOSUB 5400 : REM QUIT 2900 RETURN 4000 REM ROBOT CATCHES YOU 4010 CLS 4020 ? "OH NO! THE ROBOT CATCHES YOU." 4030 ? "GAME OVER." 4900 END 5000 REM MOVE PLAYER LEFT 5010 LET PX = PX - 1 5020 IF PX < 1 THEN LET PX = 1 5030 RETURN 5100 REM MOVE PLAYER DOWN 5110 LET PY = PY + 1 5120 IF PY > 22 THEN LET PY = 22 5130 RETURN 5200 REM MOVE PLAYER UP 5210 LET PY = PY - 1 5220 IF PY < 1 THEN LET PY = 1 5230 RETURN 5300 REM MOVE PLAYER RIGHT 5310 LET PX = PX + 1 5320 IF PX > 38 THEN LET PX = 38 5330 RETURN 5400 REM QUIT 5410 CLS 5420 PRINT "QUIT GAME" 5430 END 7000 REM MAKE ROBOT MOVE TOWARDS PLAYER 7010 IF RX < PX THEN LET RX = RX + 1 7020 IF RX > PX THEN LET RX = RX - 1 7030 IF RY < PY THEN LET RY = RY + 1 7040 IF RY > PY THEN LET RY = RY - 1 7900 RETURN