c64-basic/robot-maze/robot-maze.bas

33 lines
1.1 KiB
QBasic

10 PRINT CHR$(147):PRINT " ROBOT MAZE":PRINT
20 PRINT "REACH E. MOVE WITH W A S D.":PRINT "THE MAZE CHANGES EVERY GAME."
25 PRINT:PRINT "PRESS ANY KEY"
30 GET A$:IF A$="" THEN 30
35 R=RND(-TI)
40 DIM M(19,19):FOR Y=1 TO 19:FOR X=1 TO 19:M(X,Y)=1:NEXT X,Y
50 X=2:Y=2:M(X,Y)=0:FOR I=1 TO 160:D=INT(RND(1)*4):NX=X:NY=Y
60 IF D=0 THEN NX=X+1
70 IF D=1 THEN NX=X-1
80 IF D=2 THEN NY=Y+1
90 IF D=3 THEN NY=Y-1
100 IF NX<2 OR NX>18 OR NY<2 OR NY>18 THEN 50
110 X=NX:Y=NY:M(X,Y)=0:NEXT:FOR I=2 TO 18:M(I,2)=0:M(18,I)=0:NEXT:X=2:Y=2
120 PRINT CHR$(147):FOR J=1 TO 19:FOR I=1 TO 19
130 IF I=X AND J=Y THEN PRINT "R";:GOTO 160
140 IF I=18 AND J=18 THEN PRINT "E";:GOTO 160
150 IF M(I,J) THEN PRINT "#";:GOTO 160
155 PRINT " ";
160 NEXT:PRINT:NEXT:PRINT "WASD MOVE, Q QUITS"
170 GET A$:IF A$="" THEN 170
180 NX=X:NY=Y:IF A$="W" THEN NY=Y-1
190 IF A$="S" THEN NY=Y+1
200 IF A$="A" THEN NX=X-1
210 IF A$="D" THEN NX=X+1
220 IF A$="Q" THEN 280
230 IF M(NX,NY)=0 THEN X=NX:Y=NY
240 IF X<>18 OR Y<>18 THEN 120
250 PRINT CHR$(147):PRINT "THE ROBOT FOUND THE EXIT!":PRINT
260 PRINT "R=REPLAY Q=QUIT"
280 GET A$:IF A$="R" THEN RUN
290 IF A$<>"Q" THEN 280
300 PRINT CHR$(147):END