10 RANDOMIZE 20 !draw board with random layout 30 OI=11 :: OJ=7 40 CALL CLEAR 50 CALL HCHAR(2,2,65,12) 60 CALL HCHAR(13,2,65,12) 70 CALL VCHAR(2,2,65,12) 80 CALL VCHAR(2,13,65,12) 90 FOR II=3 TO 12 100 FOR JJ=3 TO 12 110 C=INT(RND*10)+1 120 IF C>7 THEN G=67 ELSE G=66 130 CALL HCHAR(II,JJ,G) 140 NEXT JJ 150 NEXT II 160 !Press Key to Start 170 CALL KEY(0,K,S):: IF S=0 THEN 170 180 OI=11 :: OJ=7 :: LC=0 190 !FOR I=3 TO 12 200 !FOR J=3 TO 12 210 II=11 :: JJ=7 :: LV=-1 220 DIM I(75):: DIM J(75) 230 GOSUB 250 240 GOTO 540 250 LV=LV+1 :: I(LV)=II :: J(LV)=JJ 260 CALL GCHAR(I(LV),J(LV),SP):: !Start Position 270 CALL GCHAR(I(LV),J(LV)-1,L):: !Look Left 280 CALL GCHAR(I(LV)-1,J(LV),U):: !Look Up 290 CALL GCHAR(I(LV)+1,J(LV),D):: !Look Down 300 CALL GCHAR(I(LV),J(LV)+1,R):: !Look Right 310 LC=LC+1 320 DISPLAY AT(17,1):SP;L;R;U;D;II;JJ 330 DISPLAY AT(16,1):" SP";" L";" R";" U";" D";" II";" JJ" 340 DISPLAY AT(18,1):OI;OJ;" Dir:";D$;" Lvl:";LV;" Loop Count:";LC 350 CALL KEY(0,K,S):: IF S=0 THEN 350 360 IF SP=66 THEN CALL HCHAR(II,JJ,32) 370 IF SP=66 OR SP=32 AND(U=66 OR L=66 OR R=66 OR D=66)THEN 390 380 GOTO 540 390 !start rec 400 !IF JJ<4 OR JJ>11 OR II<4 OR II>11 THEN 530 410 CALL HCHAR(II,JJ,32) 420 IF L<>66 THEN 440 430 JJ=JJ-1 :: D$="L" :: GOTO 250 440 IF U<>66 THEN 460 450 II=II-1 :: D$="U" :: GOTO 250 460 IF D<>66 THEN 480 470 II=II+1 :: D$="D" :: GOTO 250 480 IF R<>66 THEN 500 490 JJ=JJ+1 :: D$="R" :: GOTO 250 500 IF U<>66 AND L<>66 AND R<>66 AND D<>66 THEN 540 510 !NEXT J 520 !NEXT I 530 GOTO 250 540 DISPLAY AT(15,1):R;U;L;R;D;OI;OJ 550 IF LV<1 THEN 570 560 LV=LV-1 :: II=I(LV):: JJ=J(LV):: GOTO 260 570 CALL SOUND(1000,220,10) 580 CALL KEY(0,K,S):: IF S=0 THEN 570 590 GOTO 10