User Tools

Site Tools


sdb:robots

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
sdb:robots [2026/04/14 06:09] – created appledogsdb:robots [2026/04/19 20:32] (current) appledog
Line 1: Line 1:
 += 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]].
 +
 +<codify BASIC>
 +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 PRINT "THANK YOU FOR PLAYING!"
 +5440 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
 +7100 PLAY "T120 W1 V5 O2 L24 B"
 +7900 RETURN
 +</codify>

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki