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

  1. 10 COLOR 3,0,0:SCREEN 0,0,0:LOCATE ,,0:ON KEY(10) GOSUB 830:KEY(10) ON
  2. 20 GOSUB 590:GOSUB 400:GOSUB 390:GOSUB 130
  3. 30 RANDOMIZE(VAL(RIGHT$(TIME$,2))):RANDOMIZE(VAL(RIGHT$(TIME$,2))*RND*RND*RND)
  4. 40 GOSUB 340:GOSUB 240
  5. 50 GOSUB 100:GOSUB 310:SHOTS=SHOTS+1
  6. 60 IF DROP=SUB(1) THEN A(DROP)=15:SUB(1)=99 ELSE IF DROP=SUB(2) THEN A(DROP)=15:SUB(2)=99 ELSE IF DROP=SUB(3) THEN A(DROP)=15:SUB(3)=99 ELSE A(DROP)=0
  7. 70 IF SUB(1)=SUB(2) AND SUB(3)=99 THEN GOSUB 610:GOTO 630
  8. 80 GOSUB 240:TRY=TRY+1:IF SHOTS<3 THEN 50 ELSE SHOTS=0:GOSUB 950:MISS=FIX(RND*2):GOSUB 510:IF MISS THEN 40 ELSE HIT=HIT+1
  9. 90 IF HIT=3 THEN GOSUB 600:GOTO 630 ELSE 40
  10. 100 LOCATE 24,1:PRINT SPC(78);:LOCATE 24,10:COLOR 15,0:PRINT"Choose a Level 1, 2, or 3 and Strike Corresponding Key";:GOSUB 120:IF Z>"0" AND Z<"4" THEN A=24*(VAL(Z)-1):AA=VAL(Z) ELSE 100
  11. 110 LOCATE 24,1:PRINT SPC(78);:LOCATE 24,10:COLOR 15,0:PRINT"Choose a Quadrant A Thru X and Strike Corresponding Key";:GOSUB 120:IF Z<"A" OR Z>"X" THEN 110 ELSE DROP=A+ASC(Z)-65:RETURN
  12. 120 DEF SEG=&H40:POKE &H17,(PEEK(&H17) OR 96):Z=INKEY$:IF Z="" THEN 120 ELSE GOSUB 930:RETURN
  13. 130 FOR A=1 TO VAL(RIGHT$(TIME$,2))*10:B=RND:NEXT:A=FIX(RND*24):IF (A>6 AND A<11) OR (A>12 AND A<17) THEN ELSE 130
  14. 140 A=A+(FIX(RND*3)*24):RANDOMIZE(VAL(RIGHT$(TIME$,2))*RND*50):ON FIX(RND*8) GOTO 160,170,180,190,200,210,220
  15. 150 B=A+1:C=A-1:GOTO 230
  16. 160 B=A+7:C=A-7:GOTO 230
  17. 170 B=A+6:C=A-6:GOTO 230
  18. 180 B=A+5:C=A-5:GOTO 230
  19. 190 B=A-1:C=A+1:GOTO 230
  20. 200 B=A-7:C=A+7:GOTO 230
  21. 210 B=A-6:C=A+6:GOTO 230
  22. 220 B=A-5:C=A+5
  23. 230 SUB(1)=A:SUB(2)=B:SUB(3)=C:RETURN
  24. 240 GOSUB 930:B=0:FOR A=1314 TO 1414 STEP 20:GOSUB 250:NEXT:B=24:FOR A=2114 TO 2214 STEP 20:GOSUB 250:NEXT:B=48:FOR A=2914 TO 3014 STEP 20:GOSUB 250:NEXT:GOTO 300
  25. 250 POKE A,A(B):IF A(B)=15 THEN POKE A+1,132
  26. 260 POKE A+156,A(B+6):IF A(B+6)=15 THEN POKE A+157,132
  27. 270 POKE A+312,A(B+12):IF A(B+12)=15 THEN POKE A+313,132
  28. 280 POKE A+468,A(B+18):IF A(B+18)=15 THEN POKE A+469,132
  29. 290 B=B+1:RETURN
  30. 300 COLOR 0,7:LOCATE 10,72:PRINT" LEVEL 1 ":LOCATE 15,72:PRINT" LEVEL 2 ":LOCATE 20,72:PRINT" LEVEL 3 ":COLOR 15,0:RETURN
  31. 310 GOSUB 930:X=1:Y=42:B=B(ABS(A-DROP)):C=42:L=1:FOR A=1 TO 5:FOR E=1000 TO 50 STEP -50:SOUND E,.0001:NEXT:NEXT:FOR E=1.5 TO 4.76 STEP .25:L=COS(E)*(3+ABS(B))+6:LOCATE L,C:X=CSRLIN:Y=POS(0):V=SCREEN(X,Y):W=SCREEN(X,Y,1)
  32. 320 PRINT CHR$(15);:FOR D=1 TO 20*B:NEXT:POKE (X-1)*160+Y*2-1,W:POKE (X-1)*160+Y*2-2,V:C=C+B:NEXT:SOUND 50,0:C=C-B:FOR L=L+2 TO AA*2+FIX(DROP/6)+L-AA+2:LOCATE L,C:X=CSRLIN:Y=POS(0):V=SCREEN(X,Y):W=SCREEN(X,Y,1):PRINT"¥";:FOR D=1 TO 200:NEXT
  33. 330 POKE (X-1)*160+Y*2-1,W:POKE (X-1)*160+Y*2-2,V:NEXT:PRINT CHR$(29)"█":FOR X=20 TO 500 STEP 10:SOUND X*2+22,.0001:NEXT:SOUND X,0:RETURN
  34. 340 GOSUB 890:ON 3-HIT GOTO 350,360,370
  35. 350 LOCATE 7,35:PRINT"▄▄▄"
  36. 360 LOCATE 7,45:PRINT"▄▄▄"
  37. 370 GOSUB 850:RETURN
  38. 380 DATA -1.85,-1.1,-.3,.45,1.2,2,-2.00,-1.2,-.5,.3,1.1,1.85,-2.15,-1.4,-.6,.15,.9,1.7,-2.3,-1.55,-.8,0,.8,1.55
  39. 390 PLAY"MB"+"T200O3L4":PLAY"MB"+"MLCCMBMNEGMLAL8AMNL8EL4L2AO4CL4DO3GO4L1C":RETURN
  40. 400 CLS:COLOR 15,0:LOCATE 6,15:PRINT"(Enter Your Name And Then Strike The Enter Key)":LOCATE 4,20:PRINT"What Is Your First Name Captain? ";
  41. 410 GOSUB 870:CAPT$=ZA:COLOR 3,0:IF LEFT$(CAPT$,1)=" " THEN CAPT$="Ahab"
  42. 420 CLS:LOCATE 1,1:PRINT STRING$(80,219):FOR A=2 TO 22:LOCATE A,1:PRINT CHR$(219):LOCATE A,80:PRINT CHR$(219):NEXT:LOCATE 23,1:PRINT STRING$(80,219);
  43. 430 COLOR 15,0,0:LOCATE 4,30:PRINT"S E A   B A T T L E"
  44. 440 LOCATE 10,25:PRINT"Would You Like Instructions? <Y/N>":COLOR 3,0
  45. 450 GOSUB 120:IF Z="N" THEN RETURN ELSE IF Z<>"Y" THEN 450
  46. 460 LOCATE 6,11:PRINT"You're the C.O. on a destroyer.  You've played cat and mouse":LOCATE 7,11:PRINT"with the enemy sub for two days now.  It's time to do battle.":LOCATE 9,11:PRINT"He's somewhere in the depths below.   To fire a depth charge,
  47. 470 LOCATE 10,11:PRINT"first select a level  1,  2, or  3; then select the quadrant":LOCATE 11,11:PRINT"A  thru  X.  If your depth charge damages the sub, the space":LOCATE 12,11:PRINT"will be replaced with a  flashing  star.   Remember, the sub
  48. 480 LOCATE 13,11:PRINT"is THREE  quadrants in length.  It can be aligned diagonally,":LOCATE 14,11:PRINT"horizontally,  or  vertically.  The sub will be on one level.":LOCATE 16,11:PRINT"It takes three  hits to sink either ship.  You will be given
  49. 490 LOCATE 17,11:PRINT"three depth charges for each  torpedo  fired  by  your enemy.":LOCATE 19,11:PRINT"Your ability to find and destroy the sub will determine your":LOCATE 20,11:PRINT"next  assignment,  an  aircraft  carrier or a  garbage barge.
  50. 500 LOCATE 25,27:COLOR 15,0:PRINT"Strike Any Key To Continue";:COLOR 3,0:GOSUB 120:RETURN
  51. 510 ON 3-HIT GOTO 520,530,540
  52. 520 LOCATE 12,35:PRINT"▄▄▄"
  53. 530 LOCATE 12,42:PRINT"▄▄▄"
  54. 540 FOR A=1 TO 3:FOR E=820 TO 1000 STEP 1.5:SOUND E,.1:NEXT:SOUND 50,0:NEXT:FOR A=22 TO 13 STEP -1:LOCATE A,39:PRINT"▌":FOR B=1 TO 300:NEXT:LOCATE A,39:PRINT" ":NEXT:LOCATE 25,25
  55. 550 IF MISS THEN PRINT"Torpedo Missed Captain "CAPT$;:GOTO 580 ELSE PRINT"A Torpedo Broadside Captain "CAPT$;
  56. 560 GOSUB 930:E=248:A=1674:POKE A-162,E:POKE A-150,E:FOR A1=1 TO 100:NEXT:SOUND 50,.001:POKE A-10,E:POKE A-328,E:SOUND 50,0:FOR A1=1 TO 100:NEXT:SOUND 50,.001:POKE A,E:SOUND 50,0:FOR A1=1 TO 100:NEXT
  57. 570 SOUND 50,.001:POKE A+12,E:SOUND 50,0:FOR A1=1 TO 100:NEXT:SOUND 50,.001:POKE A-4,E:SOUND 50,0:FOR A1=1 TO 100:NEXT:SOUND 50,.001:POKE A+8,E:SOUND 50,0:FOR A1=1 TO 100:NEXT:POKE A-168,E:POKE A-484,E:FOR A1=1 TO 100:NEXT
  58. 580 FOR A=1 TO 3000:NEXT:RETURN
  59. 590 DEFSTR Z:DIM A(71),B(23),SUB(3):FOR A=0 TO 23:A(A)=A+65:A(A+24)=A(A):A(A+48)=A(A):NEXT:FOR A=0 TO 23:READ B(A):NEXT:RETURN
  60. 600 PLAY"T100"+"MN"+"MB":PLAY"O3L8C.L16C"+"L2F.L8C.L16F":PLAY"L2A.L8C.L16F"+"L4A"+"L8C."+"L16F"+"L4A"+"L8C."+"L16F"+"L2A.":PLAY"O3"+"L8F.L16A"+"ML"+"O4L2C"+"MN"+"O3L4AL4FL2C.":PLAY"O3L8C.L16C"+"ML"+"L1F"+"MN"+"L4F":RETURN
  61. 610 PLAY"MB"+"MN T120":PLAY"O2 G8 G8. G16 G8. F16 E8. G16 O3 C8. D16 E8. E16 E8. D16 C4":PLAY"O3 C8.O2 B16 A8.A16 A8.B16 O3 C8.O2 B16 O3C8.O2 A16 G8.A16 G8.E16 G4":PLAY"O2 G8. G16 G8. G16 G8. F16 E8. G16 O3 C8. D16 E8. E16 E8. D16 C4"
  62. 620 PLAY"O3 C4 D4 D4 C4 O2B4 O3 C2.":RETURN
  63. 630 CLS:COLOR 15,0:IF HIT=3 THEN 680
  64. 640 LOCATE 10,30:PRINT"Congratulations Captain ";CAPT$
  65. 650 LOCATE 12,30:PRINT"You've Accomplished Your Mission
  66. 660 LOCATE 13,30:PRINT"And Used Only "TRY" Depth Charges
  67. 670 LOCATE 14,30:PRINT"Your Promotion Is On The Way!!!!":GOTO 720
  68. 680 LOCATE 10,28:PRINT"We Are Very Sorry Captain "CAPT$
  69. 690 LOCATE 12,28:PRINT"Your Ship Was Lost  And Crew Killed!
  70. 700 LOCATE 13,28:PRINT"You Should Be  Court-Marshalled For   "
  71. 710 LOCATE 14,28:PRINT"Your Poor Judgement And Performance
  72. 720 LOCATE 16,28:PRINT"Would You Like To Play Again? <Y/N>";:COLOR 3,0
  73. 730 GOSUB 120:IF Z="N" THEN 800 ELSE IF Z<>"Y" THEN 730
  74. 740 CLEAR:GOSUB 590
  75. 750 CLS:COLOR 15,0:LOCATE 6,15:PRINT"(Enter Your Name And Then Strike The Enter Key)
  76. 760 LOCATE 4,20:PRINT"What Is Your First Name Captain? ";
  77. 770 GOSUB 870:CAPT$=ZA:COLOR 3,0
  78. 780 IF LEN(CAPT$)<2 THEN CAPT$=""
  79. 790 GOSUB 130:GOTO 30
  80. 800 CLEAR:ON ERROR GOTO 810:RUN"MENU1.001
  81. 810 CLEAR:ON ERROR GOTO 820:RUN"MENU2.002
  82. 820 RUN"MENU3.003
  83. 830 KEY(10) OFF:XX=CSRLIN:YY=POS(0):LOCATE 25,1:PRINT SPC(78);:LOCATE 25,20:PRINT"Do You Wish To Leave This Game? <Y/N>";
  84. 840 GOSUB 120:IF Z="Y" THEN 800 ELSE IF Z<>"N" THEN 840
  85. 850 LOCATE 25,1:PRINT SPC(78);:LOCATE 25,22:COLOR 0,15:PRINT" Strike <F10> To Leave This Game ";:COLOR 3,0:IF XX=<1 OR YY<1 THEN ELSE LOCATE XX,YY
  86. 860 KEY(10) ON:RETURN
  87. 870 GOSUB 120:IF Z=CHR$(13) THEN ZA=SPACE$(8):LSET ZA=ZH:RETURN ELSE IF Z=CHR$(8) THEN IF LEN(ZH)<1 THEN 870 ELSE PRINT CHR$(29)" "CHR$(29);:ZH=LEFT$(ZH,LEN(ZH)-1):GOTO 870
  88. 880 IF LEN(ZH)>7 THEN 870 ELSE ZH=ZH+Z:PRINT Z;:GOTO 870
  89. 890 COLOR 7,0:CLS:LOCATE 1,39:PRINT"╫     ░░░":LOCATE 2,39:PRINT"╫     ╫   █ █":LOCATE 3,38:PRINT"▓▓▓▓   ╫   █ █":LOCATE 4,27:PRINT"─▄▄      ███████  ╫   █ █     ▄▄─":LOCATE 5,18:PRINT"╒      «═████     █░░█░░█░░█░░░░░░█   ████═»        ╥"
  90. 900 LOCATE 6,18:PRINT"▀██▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒██":LOCATE 7,14:PRINT"______▀████████████████████████████████████████████████▀________":LOCATE 8,13:PRINT"/"TAB(77)"/"
  91. 910 LP=9:GOSUB 920:LP=14:GOSUB 920:LP=19:GOSUB 920:LOCATE 22,70:PRINT SPC(8):LOCATE 23,68:PRINT"          ":RETURN
  92. 920 LOCATE LP,11:PRINT"/"TAB(75)"/":PRINT TAB(9)"/"TAB(73)"/":PRINT TAB(7)"/"TAB(71)"/":PRINT"    /"TAB(69)"/________":PRINT"  /"STRING$(63,"_")"/         /":RETURN
  93. 930 DEF SEG=0:IF (PEEK(1040) AND 48)=48 THEN DEF SEG=&HB000 ELSE DEF SEG=&HB800
  94. 940 RETURN
  95. 950 COLOR 7,0:CLS:PRINT STRING$(80,"░"):FOR A=2 TO 22:LOCATE A,1:PRINT"░":LOCATE A,80:PRINT"░";:NEXT:LOCATE 23,1:PRINT STRING$(80,"░");
  96. 960 LOCATE 2,26:PRINT"─             │":LOCATE 3,22:PRINT"40 ──             │":LOCATE 4,26:PRINT"─     ╦       │":LOCATE 5,22:PRINT"30 ──     ╫      ░░░":LOCATE 6,26:PRINT"─     ╫      ╫│":LOCATE 7,22:PRINT"20 ──     ╫      ╫│  ██ ██"
  97. 970 LOCATE 8,26:PRINT"─    ▓▓▓▓▓   ╫│  ██ ██":LOCATE 9,18:PRINT"─▄▄ 10 ──   ███████  ╫│  ██ ██          ▄▄─":LOCATE 10,9:PRINT"╒      «═████    █░░░█░░█░░█░░█░░░░░░░░░█       ████═»      ╥"
  98. 980 LOCATE 11,9:PRINT"▀▀██"STRING$(55,"▒")"██":LOCATE 12,2:PRINT"──────────▀"STRING$(54,"█")"▀▀───────────":LOCATE 13,21:PRINT"-10 ──             │":LOCATE 14,26:PRINT"─             │":LOCATE 15,21:PRINT"-20 ──             │"
  99. 990 LOCATE 16,26:PRINT"─             │":LOCATE 17,2:PRINT"│ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │ ┼─┼ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │ ┼ │":LOCATE 18,4:PRINT"1   2   3   4   5   6 ─ 7   8   9   │  -9  -8  -7  -6  -5  -4  -3  -2  -1"
  100. 1000 LOCATE 19,21:PRINT"-30 ──             │":LOCATE 20,26:PRINT"─             │":LOCATE 21,21:PRINT"-40 ──             │":LOCATE 22,25:PRINT"──             │":RETURN
  101.