home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug054.ark / CHASE.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  3.1 KB  |  116 lines

  1. 20 PRINT "YOU ARE WITHIN THE WALLS OF A HIGH VOLTAGE MAZE."
  2. 30 PRINT "THERE ARE FIVE SECURITY MACHINES TRYING TO DESTROY YOU."
  3. 40 PRINT "YOU ARE THE '*'     THE INTERCEPTORS ARE THE '+'."
  4. 50 PRINT "THE AREAS MARKED 'X' ARE HIGH VOLTAGE."
  5. 60 PRINT "YOUR ONLY CHANCE FOR SURVIVAL IS TO MANUVER EACH"
  6. 70 PRINT "INTERCEPTER INTO AN 'X'.  ----- GOOD LUCK -----"
  7. 80 PRINT: PRINT "MOVES ARE:  1.2.3": PRINT "            8.*.4"
  8. 90 PRINT "            7.6.5": PRINT
  9. 100 INPUT "ENTER THE WIDTH OF THE MAZE";W1
  10. 110 IF W1>60 OR ABS(W1)<>W1 THEN 100
  11. 120 INPUT "ENTER THE LENGTH OF THE MAZE";L1
  12. 130 IF L1>23 OR ABS(L1)<>L1 THEN 120
  13. 210 DIM A$(L1,W1)
  14. 215 T1=0
  15. 220 FOR B=1 TO L1
  16. 230 FOR C=1 TO W1
  17. 240 X=INT(10*RND(1))
  18. 250 IF X=5 THEN 280
  19. 260 A$(B,C)=" "
  20. 270 GOTO 290
  21. 280 A$(B,C)="X"
  22. 290 NEXT C
  23. 300 NEXT B
  24. 310 FOR D=1 TO L1
  25. 320 A$(D,1)="X"
  26. 330 NEXT D
  27. 340 FOR E=1 TO L1
  28. 350 A$(E,W1)="X"
  29. 360 NEXT E
  30. 370 FOR F=1 TO W1
  31. 380 A$(1,F)="X"
  32. 410 A$(L1,F)="X"
  33. 420 NEXT F
  34. 430 GOTO 500
  35. 440 H=INT(1+(L1*RND(1))):IF H>L1 THEN 440
  36. 450 I=INT(1+(W1*RND(1))):IF I>W1 THEN 450
  37. 460 IF A$(H,I)="X" THEN 440
  38. 470 IF A$(H,I)="*" THEN 440
  39. 480 IF A$(H,I)="+" THEN 440
  40. 490 RETURN
  41. 500 GOSUB 440
  42. 510 A$(H,I)="*":J=H:K=I
  43. 520 GOSUB 440
  44. 530 A$(H,I)="+":L=H:M=I
  45. 540 GOSUB 440
  46. 550 A$(H,I)="+":N=H:O=I
  47. 560 GOSUB 440
  48. 570 A$(H,I)="+":P=H:Q=I
  49. 580 GOSUB 440
  50. 590 A$(H,I)="+":R=H:S=I
  51. 600 GOSUB 440
  52. 610 A$(H,I)="+":T=H:U=I
  53. 630 FOR D2=1 TO L1
  54. 640 FOR B2=1 TO W1
  55. 650 PRINT A$(D2,B2);
  56. 660 NEXT B2
  57. 662 IF D2=INT(L1/2)-1 THEN PRINT "     1.2.3"; ELSE IF D2=INT(L1/2) THEN PRINT "     8.0.4"; ELSE IF D2=INT(L1/2)+1     THEN PRINT "     7.6.5";
  58. 670 PRINT
  59. 680 NEXT D2
  60. 682 T1=T1+1
  61. 690 INPUT Y: IF Y=0 THEN 800
  62. 700 V=J:W=K
  63. 710 ON Y GOTO 720,730,740,750,760,770,780,790
  64. 720 J=J-1:K=K-1:GOTO 800
  65. 730 J=J-1:GOTO 800
  66. 740 J=J-1:K=K+1:GOTO 800
  67. 750 K=K+1:GOTO 800
  68. 760 J=J+1:K=K+1:GOTO 800
  69. 770 J=J+1:GOTO 800
  70. 780 J=J+1:K=K-1:GOTO 800
  71. 790 K=K-1
  72. 800 IF A$(J,K)="X" THEN 1160
  73. 810 A$(V,W)=" ":A$(J,K)="*"
  74. 820 GOTO 940
  75. 830 IF A$(X,Y)="X" THEN 910
  76. 840 V=X:W=Y
  77. 850 X=SGN(J-X):Y=SGN(K-Y)
  78. 860 X=X+V:Y=Y+W
  79. 870 IF A$(x,Y)="*" THEN 920 ELSE IF A$(X,Y)=" " THEN 890
  80. 880 X=1: Y=1: A$(V,W)=" ": RETURN
  81. 890 A$(X,Y)="+"
  82. 900 A$(V,W)=" "
  83. 910 RETURN
  84. 920 IF T1=1 THEN T1$="MOVE" ELSE T1$="MOVES"
  85. 925 PRINT ">**>**>**>  THE INTERCEPTORS HAVE DESTROYED YOU IN";T1;T1$"  <**<**<**<":    GOTO 1180
  86. 940 X=L:Y=M:GOSUB 830
  87. 950 L=X:M=Y
  88. 960 X=N:Y=O:GOSUB 830
  89. 970 N=X:O=Y
  90. 980 X=P:Y=Q:GOSUB 830
  91. 990 P=X:Q=Y
  92. 1000 X=R:Y=S:GOSUB 830
  93. 1010 R=X:S=Y
  94. 1020 X=T:Y=U:GOSUB 830
  95. 1030 T=X:U=Y
  96. 1040 IF A$(L,M)="X" THEN 1060
  97. 1050 GOTO 630
  98. 1060 IF A$(N,O)="X" THEN 1080
  99. 1070 GOTO 630
  100. 1080 IF A$(P,Q)="X" THEN 1100
  101. 1090 GOTO 630
  102. 1100 IF A$(R,S)="X" THEN 1120
  103. 1110 GOTO 630
  104. 1120 IF A$(T,U)="X" THEN 1140
  105. 1130 GOTO 630
  106. 1140 PRINT "CONGRATULATIONS !!!!!  YOU HAVE SUCCESFULLY DESTROYED ALL OF YOUR"  : PRINT "OPPONENTS IN";T1"MOVES --- THE GAME IS YOURS.  ";
  107. 1150 GOTO 1180
  108. 1160 PRINT "YOU TOUCHED THE FENCE !!!!!!!!!!!"
  109. 1170 PRINT "********** ZAP **********   YOU'RE DEAD !!!"
  110. 1180 PRINT "ANOTHER GAME (YES OR NO)";
  111. 1190 INPUT N9$
  112. 1195 IF N9$<> "Y" GOTO 1220
  113. 1200 CLEAR
  114. 1210 GOTO 100
  115. 1220 END
  116.