home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / BASIC / FRIENDLY.ZIP / MAZE.001 < prev    next >
Encoding:
Text File  |  1988-10-13  |  8.9 KB  |  97 lines

  1. 10 WIDTH 80:SCREEN 0,0,0:COLOR 3,0,0:CLS:DEFINT A-Y:DEFSTR Z:DIM A(7,7):GOSUB 860:KEY(10) ON:ON KEY(10) GOSUB 300
  2. 20 RANDOMIZE(VAL(RIGHT$(TIME$,2))*100):FOR A=1 TO 4:READ Z1(A):NEXT:RANDOMIZE(RND*500):FOR C=1 TO FIX(RND*5)+1:FOR A=0 TO 7:READ B(A):NEXT:FOR A=0 TO 7:FOR B=0 TO 7:READ A(A,B):NEXT B,A:NEXT C:IF RND<.5 THEN B(0)=B(5):B(1)=B(6):B(4)=B(7)
  3. 30 X=B(0):Y=B(1):L=0:DIR=B(4):S=X:T=Y:COLOR 2:CLS:GOSUB 170:X=S:Y=T
  4. 40 LOCATE 24,30:PRINT"Use Cursor Arrows To Move";:COLOR 0,7:LOCATE 25,24,0:PRINT" Strike <F10> Key To Leave This Game ";:COLOR 3,0:L=0:LOCATE 8,38:PRINT Z1(DIR)
  5. 50 GOSUB 950:IF RP$="8" THEN M=M+1:GOTO 90 ELSE IF RP$="2" THEN DIR=DIR+2 ELSE IF RP$="4" THEN DIR=DIR-1 ELSE IF RP$="6" THEN DIR=DIR+1 ELSE 50
  6. 60 IF DIR>4 THEN DIR=DIR-4
  7. 70 IF DIR<1 THEN DIR=DIR+4
  8. 80 GOTO 150
  9. 90 IF DIR=1 THEN X=X-1 ELSE IF DIR=2 THEN Y=Y+1 ELSE IF DIR=3 THEN X=X+1 ELSE IF DIR=4 THEN Y=Y-1
  10. 100 IF X=B(2) AND Y=B(3) THEN 250
  11. 110 D=A(S,T)
  12. 120 L(1)=D AND 8:L(2)=D AND 4:L(3)=D AND 2:L(4)=D AND 1
  13. 130 IF L(DIR) THEN FOR X=1 TO 8:SOUND 300,1:SOUND 32767,1:SOUND 50,1:NEXT X:GOTO 160
  14. 140 S=X:T=Y
  15. 150 COLOR 2,0:CLS:GOSUB 170
  16. 160 X=S:Y=T:GOTO 40
  17. 170 D=A(X,Y)
  18. 180 L(1)=D AND 8:L(2)=D AND 4:L(3)=D AND 2:L(4)=D AND 1:L(5)=D AND 8:L(6)=D AND 4:L(7)=D AND 2
  19. 190 ON L+1 GOSUB 530,540,550,560,570:ON L+1 GOSUB 330,370,410,450,490
  20. 200 IF L(DIR) THEN RETURN
  21. 210 L=L+1:IF L>4 THEN RETURN
  22. 220 IF DIR=1 THEN X=X-1 ELSE IF DIR=2 THEN Y=Y+1 ELSE IF DIR=3 THEN X=X+1 ELSE IF DIR=4 THEN Y=Y-1
  23. 230 IF X>7 OR Y>7 OR X<0 OR Y<0 THEN GOSUB 940:GOTO 210
  24. 240 GOTO 170
  25. 250 CLS:LOCATE 10,25:PRINT"You Made It !!!!   in"M"Moves.":COLOR 15:LOCATE 12,23:PRINT"Would You Like To Try Again? <Y/N>":COLOR 3,0
  26. 260 GOSUB 950:IF RP$="Y" THEN RUN ELSE IF RP$<>"N" THEN 260
  27. 270 ON ERROR GOTO 280:RUN"MENU1.001"
  28. 280 ON ERROR GOTO 290:RUN"MENU2.002"
  29. 290 RUN"MENU3.003"
  30. 300 KEY(10) OFF:LOCATE 25,1:PRINT SPC(79);:COLOR 15,0:LOCATE 25,24:PRINT"Do You Wish To Leave This Game? <Y/N>";:COLOR 3,0
  31. 310 GOSUB 950:IF RP$="Y" THEN 270 ELSE IF RP$<>"N" THEN 310
  32. 320 LOCATE 25,1:PRINT SPC(79);:KEY(10) ON:RETURN
  33. 330 COLOR 2:IF L(DIR) THEN GOSUB 770
  34. 340 IF L(DIR+1) THEN 350 ELSE GOSUB 590
  35. 350 IF L(DIR+3) THEN 360 ELSE GOSUB 580
  36. 360 RETURN
  37. 370 COLOR 3:IF L(DIR) THEN GOSUB 780
  38. 380 IF L(DIR+1) THEN GOSUB 680 ELSE GOSUB 730
  39. 390 IF L(DIR+3) THEN GOSUB 600 ELSE GOSUB 690
  40. 400 RETURN
  41. 410 COLOR 4:IF L(DIR) THEN GOSUB 790
  42. 420 IF L(DIR+1) THEN GOSUB 670 ELSE GOSUB 740
  43. 430 IF L(DIR+3) THEN GOSUB 610 ELSE GOSUB 700
  44. 440 RETURN
  45. 450 COLOR 5:IF L(DIR) THEN GOSUB 800
  46. 460 IF L(DIR+1) THEN GOSUB 660 ELSE GOSUB 750
  47. 470 IF L(DIR+3) THEN GOSUB 620 ELSE GOSUB 710
  48. 480 RETURN
  49. 490 COLOR 6:IF L(DIR) THEN GOSUB 640
  50. 500 IF L(DIR+1) THEN GOSUB 650 ELSE GOSUB 760
  51. 510 IF L(DIR+3) THEN GOSUB 630 ELSE GOSUB 720
  52. 520 RETURN
  53. 530 COLOR 2:FOR A=1 TO 23:LOCATE A,8:PRINT"█":LOCATE A,72:PRINT"█":NEXT:RETURN
  54. 540 COLOR 3:LOCATE 3,20:PRINT"▄":FOR A=4 TO 16:LOCATE A,20:PRINT"█":NEXT:LOCATE 17,20:PRINT"▀":LOCATE 3,60:PRINT"▄":FOR A=4 TO 16:LOCATE A,60:PRINT"█":NEXT:LOCATE 17,60:PRINT"▀":RETURN
  55. 550 COLOR 4:FOR A=5 TO 12:LOCATE A,28:PRINT"█":NEXT:LOCATE 13,28:PRINT"▀":FOR A=5 TO 12:LOCATE A,52:PRINT"█":NEXT:LOCATE 13,52:PRINT"▀":RETURN
  56. 560 COLOR 5:FOR A=6 TO 10:LOCATE A,32:PRINT"█":NEXT:LOCATE 11,32:PRINT"▀":FOR A=6 TO 10:LOCATE A,48:PRINT"█":NEXT:LOCATE 11,48:PRINT"▀":RETURN
  57. 570 COLOR 6:LOCATE 6,35:PRINT"▄":FOR A=7 TO 9:LOCATE A,35:PRINT"█":NEXT:LOCATE 6,45:PRINT"▄":FOR A=7 TO 9:LOCATE A,45:PRINT"█":NEXT:RETURN
  58. 580 COLOR 2:LOCATE 1,1:PRINT STRING$(7,219):LOCATE 23,1:PRINT STRING$(7,219);:COLOR 1:FOR A=2 TO 22:LOCATE A,1:PRINT STRING$(7,176):NEXT:COLOR 14:LOCATE 10,4:PRINT"<═":COLOR 2:RETURN
  59. 590 COLOR 2:LOCATE 1,73:PRINT STRING$(7,219):LOCATE 23,73:PRINT STRING$(7,219):COLOR 1:FOR A=2 TO 22:LOCATE A,73:PRINT STRING$(7,176):NEXT:COLOR 14:LOCATE 10,75:PRINT"═>":COLOR 2:RETURN
  60. 600 LOCATE 1,9:PRINT"▄":LOCATE 2,9:PRINT"▀███▄▄▄":LOCATE 3,13:PRINT"▀▀▀███▄":LOCATE 4,19:PRINT"▀":LOCATE 17,18:PRINT"▄█":LOCATE 18,16:PRINT"▄█▀":LOCATE 19,14:PRINT"▄█▀":LOCATE 20,12:PRINT"▄█▀":LOCATE 21,10:PRINT"▄█▀":LOCATE 22,9:PRINT"█▀":RETURN
  61. 610 LOCATE 3,21:PRINT"▄":LOCATE 4,21:PRINT"▀███▄▄":LOCATE 5,25:PRINT"▀▀█":LOCATE 13,26:PRINT"▄█▀":LOCATE 14,24:PRINT"▄█▀":LOCATE 15,22:PRINT"▄█▀":LOCATE 16,21:PRINT"█▀":RETURN
  62. 620 LOCATE 5,29:PRINT"▄▄":LOCATE 6,29:PRINT"▀▀▀":LOCATE 11,30:PRINT"▄█":LOCATE 12,29:PRINT"█▀":RETURN
  63. 630 LOCATE 6,33:PRINT"▀▄":LOCATE 9,34:PRINT"▄":LOCATE 10,33:PRINT"█▀":RETURN
  64. 640 LOCATE 6,36:PRINT STRING$(9,220):LOCATE 9,36:PRINT STRING$(9,220):RETURN
  65. 650 LOCATE 6,46:PRINT"▄▀":LOCATE 9,46:PRINT"▄":LOCATE 10,46:PRINT"▀█":RETURN
  66. 660 LOCATE 5,50:PRINT"▄▄":LOCATE 6,49:PRINT"▀▀▀":LOCATE 11,49:PRINT"█▄":LOCATE 12,50:PRINT"▀█":RETURN
  67. 670 LOCATE 3,59:PRINT"▄":LOCATE 4,54:PRINT"▄▄███▀":LOCATE 5,52:PRINT"██▀▀":LOCATE 13,53:PRINT"█▄":LOCATE 14,54:PRINT"▀█▄":LOCATE 15,56:PRINT"▀█▄":LOCATE 16,58:PRINT"▀█":RETURN
  68. 680 LOCATE 1,71:PRINT"▄":LOCATE 2,65:PRINT"▄▄▄███▀":LOCATE 3,61:PRINT"▄███▀▀▀":LOCATE 4,61:PRINT"▀":LOCATE 17,61:PRINT"█▄":LOCATE 18,62:PRINT"▀█▄":LOCATE 19,64:PRINT"▀█▄":LOCATE 20,66:PRINT"▀█▄":LOCATE 21,68:PRINT"▀█▄":LOCATE 22,70:PRINT"▀█":RETURN
  69. 690 LOCATE 3,9:PRINT STRING$(11,220):LOCATE 4,9:PRINT STRING$(11,223):LOCATE 16,9:PRINT STRING$(11,220):LOCATE 17,9:PRINT STRING$(11,223):RETURN
  70. 700 LOCATE 5,21:PRINT STRING$(7,219):LOCATE 12,21:PRINT STRING$(7,220):LOCATE 13,21:PRINT STRING$(7,223):RETURN
  71. 710 LOCATE 6,29:PRINT"███":LOCATE 10,29:PRINT"▄▄▄":LOCATE 11,29:PRINT"▀▀▀":RETURN
  72. 720 LOCATE 6,33:PRINT"▄▄":LOCATE 9,33:PRINT"▄▄":RETURN
  73. 730 LOCATE 3,61:PRINT STRING$(11,220):LOCATE 4,61:PRINT STRING$(11,223):LOCATE 16,61:PRINT STRING$(11,220):LOCATE 17,61:PRINT STRING$(11,223):RETURN
  74. 740 LOCATE 5,53:PRINT STRING$(7,219):LOCATE 12,53:PRINT STRING$(7,220):LOCATE 13,53:PRINT STRING$(7,223):RETURN
  75. 750 LOCATE 6,49:PRINT"███":LOCATE 10,49:PRINT"▄▄▄":LOCATE 11,49:PRINT"▀▀▀":RETURN
  76. 760 LOCATE 6,46:PRINT"▄▄":LOCATE 9,46:PRINT"▄▄":RETURN
  77. 770 LOCATE 1,9:PRINT STRING$(63,219):LOCATE 23,9:PRINT STRING$(63,219):RETURN
  78. 780 LOCATE 3,21:PRINT STRING$(39,220):LOCATE 4,21:PRINT STRING$(39,223):LOCATE 16,21:PRINT STRING$(39,220):LOCATE 17,21:PRINT STRING$(39,223):RETURN
  79. 790 LOCATE 5,29:PRINT STRING$(23,219):LOCATE 12,29:PRINT STRING$(23,220):LOCATE 13,29:PRINT STRING$(23,223):RETURN
  80. 800 LOCATE 6,33:PRINT STRING$(15,219):LOCATE 10,33:PRINT STRING$(15,220):LOCATE 11,33:PRINT STRING$(15,223):RETURN
  81. 810 DATA NORTH," EAST",SOUTH," WEST",7,3,8,2,1,3,7,1,11,12,9,10,8,12,11,12,9,2,4,9,6,3,12,5,5,11,4,1,14,9,6,5,3,10,6,5,9,4,11,4,9,8,10,6,5,3,14,5,7,5,15,13,3,10,10,4,11,0,12,1,10,12,13,5,11,6,5,7,11,2,2,6
  82. 820 DATA 0,7,8,0,3,6,6,1,13,11,8,10,8,10,12,13,3,10,0,14,3,10,4,5,9,12,1,12,9,14,1,4,5,5,7,5,5,9,6,7,1,0,10,0,4,1,10,12,7,7,13,5,5,3,12,7,9,14,1,4,3,14,5,13,1,10,6,3,10,14,3,6
  83. 830 DATA 6,2,8,1,1,7,7,1,9,10,10,12,9,10,8,14,5,11,12,3,6,13,3,12,3,10,2,12,13,3,10,4,11,12,9,6,3,10,12,5,9,2,6,9,14,9,6,5,5,9,12,5,13,3,10,4,5,7,5,3,0,10,12,5,3,12,3,10,6,11,2,6
  84. 840 DATA 0,0,-1,1,3,7,3,1,13,3,10,10,10,8,10,14,3,8,10,12,13,3,10,12,9,6,11,6,1,10,14,5,3,10,10,8,2,10,10,6,9,10,12,5,9,8,10,12,5,9,6,5,7,5,9,6,5,1,10,0,10,2,2,12,3,2,14,7,11,10,10,6
  85. 850 DATA 0,3,0,8,3,7,3,1,9,10,10,8,10,10,12,9,1,10,12,1,12,9,6,5,5,13,7,5,7,7,11,4,5,3,10,6,9,10,10,6,1,10,10,10,6,9,10,12,5,9,12,11,12,3,8,6,5,5,3,8,2,10,2,12,3,2,14,7,11,10,10,6
  86. 860 LOCATE 1,1:PRINT STRING$(80,219):FOR A=2 TO 22:LOCATE A,1:PRINT"█":LOCATE A,80:PRINT"█":NEXT:LOCATE 23,1:PRINT STRING$(80,219);:LOCATE 3,30:COLOR 15:PRINT"K I L L E R    M A Z E";:COLOR 3
  87. 870 COLOR 15:LOCATE 11,24:PRINT" Would You Like Instructions? <Y/N> ";:COLOR 3,0
  88. 880 GOSUB 950:IF RP$="N" THEN CLS:RETURN ELSE IF RP$<>"Y" THEN 880
  89. 890 LOCATE 5,14:PRINT"This is  `KILLER MAZE'.  Play it one time and see why!":LOCATE 6,14:PRINT"You will be placed INSIDE one of four different mazes;":LOCATE 7,14:PRINT"moreover,  you will also encounter different starting
  90. 900 LOCATE 8,14:PRINT"positions within each maze.  The idea is to find your":LOCATE 9,14:PRINT"way to the exit in the fewest possible moves or steps.":LOCATE 11,14:PRINT"Each maze is an 8 by 8 square.  Due to poor visibilty,
  91. 910 LOCATE 12,14:PRINT"you will be able to see at most  4 steps ahead of you.":LOCATE 14,14:PRINT"The  UP ARROW is the only key that will move you.  It":LOCATE 15,14:PRINT"will allow you to take one step FORWARD.  The LEFT AR-
  92. 920 LOCATE 16,14:PRINT"ROW and  RIGHT ARROW will allow you to turn either to":LOCATE 17,14:PRINT"the left or  right.  The DOWN ARROW will allow you to":LOCATE 18,14:PRINT"turn  completely around.  The mazes come  up randomly
  93. 930 LOCATE 19,14:PRINT"so you may encounter the same maze twice in a row,but":LOCATE 20,14:PRINT"don't expect that to help. GOOD LUCK. YOU'LL NEED IT!":LOCATE 25,28:COLOR 15:PRINT"Strike Any Key To Continue";:COLOR 3:GOSUB 950:CLS:RETURN
  94. 940 LOCATE 6,35:PRINT"╔"STRING$(9,205)"╗":FOR A=7 TO 9:LOCATE A,35:PRINT"║":LOCATE A,45:PRINT"║":NEXT:LOCATE 10,35:PRINT"╚"STRING$(9,205)"╝":LOCATE 7,37:COLOR 28:PRINT"E X I T":COLOR 3:RETURN
  95. 950 IF INKEY$<>"" THEN 950
  96. 960 DEF SEG=&H40:POKE &H17,(PEEK(&H17) OR 96):RP$=INKEY$:IF RP$="" THEN 960 ELSE RETURN
  97.