home *** CD-ROM | disk | FTP | other *** search
/ ftp.update.uu.se / ftp.update.uu.se.2014.03.zip / ftp.update.uu.se / pub / rainbow / msdos / games / f-16.lzh / F-16.BAS next >
BASIC Source File  |  1994-01-01  |  9KB  |  207 lines

  1. 10 REM         Program modified by Tom Karlsson in Dec 93.
  2. 20 REM (corrections for the Rainbow GW-BASIC compiler and some spell checking)
  3. 30 REM
  4. 40 REM    Compile with:    GWBASCOM F-16 /E /O,,,
  5. 50 REM    and link with:   LINK F-16,,,BCOM20G
  6. 60 REM
  7. 100 REM ** F-16 INFILTRATOR **
  8. 110 REM ** Written by Edward H. Schoenharl II **
  9. 120 REM ** For Epoch Hardware and Software Company **
  10. 130 REM ** Date : 02-21-84 **
  11. 140 REM ** INITALIZATION **
  12. 150 ON ERROR GOTO 1600
  13. 160 KEY OFF:GOTO 1890
  14. 165 DIM R1(3):DIM R2(3):DIM R9(3):DIM PERSON$(10):DIM SCR(10)
  15. 170 SCORE=0
  16. 180 SHIP=5:SCREEN 1:WIDTH 80
  17. 190 RANDOMIZE CINT(TIMER/3)
  18. 191 CLS:X=0:Y=0:X1=0:R=0:R1=0:R2=0:R3=0:R4=0:R5=0:R6=0
  19. 195 FOR I=1 TO 3:R9(I)=0:R2(I)=0:NEXT I:R10=0:K$=INKEY$
  20. 200 LOCATE 1,1:PRINT"*  F - 1 6   E A R L Y   D E P L O Y M E N T   A I R S T R I K E   F O R C E  *"
  21. 210 LOCATE 4,4:PRINT"Written by Edward H. Schoenharl II for Epoch Hardware and Software Company"
  22. 220 LOCATE 5,22:PRINT"(C) 1984 , ALL RIGHTS RESERVED."
  23. 230 F=7:FUEL = 300
  24. 240 GOSUB 710
  25. 250 GOSUB 790
  26. 260 LOCATE 10,1:PRINT"AIR TO GROUND TO MISSILES : 7"
  27. 270 LOCATE 10,33:PRINT"FUEL : 300 UNITS"
  28. 280 LOCATE 10,54:PRINT"SHIPS :":LOCATE 10,61:PRINT SHIP
  29. 290 LOCATE 10,67:PRINT"SCORE :"
  30. 300 REM ** GET KEYS **
  31. 310 FUEL=FUEL-2:SCORE=SCORE+1
  32. 320 GOSUB 670
  33. 330 K$=INKEY$
  34. 340 IF X=0 THEN FUEL=FUEL+2:SCORE=SCORE-1
  35. 350 IF K$="" THEN 540
  36. 360 IF K$="A" OR K$="a" THEN Y=Y-5
  37. 370 IF K$="Z" OR K$="z" THEN Y=Y+5
  38. 380 IF K$="," THEN X1=-40
  39. 390 IF K$="." THEN X=-360:FUEL=FUEL-100
  40. 400 IF K$=" " AND F>0 THEN FIRE=1 :CIRCLE(500+X,155+Y),2,,,,4:F=F-1:_
  41.     IF SN=0 THEN SOUND 490,.4:IF F = 0 THEN LOCATE 17,28:PRINT"0"
  42. 410 IF K$="S" OR K$="s" THEN GOSUB 790
  43. 420 IF Y=15 OR Y= -10 THEN 1120
  44. 440 IF FIRE<>1 THEN 540
  45. 450 FIRE=0
  46. 460 IF Y<>10 THEN 530
  47. 470 FOR I=1 TO 3
  48. 480 IF 500+X=500-R1(I) THEN CIRCLE(500-R1(I),167),5,2,(3.14*.2),3.2:_
  49.     SCORE=SCORE+50
  50. 490 NEXT I
  51. 500 FOR I=1 TO 3:IF (500+X)=(500-R9(I)) THEN CIRCLE(500-R9(I),165),8,3,,,.3:_
  52.     SCORE=SCORE+90
  53. 510 NEXT I
  54. 520 IF (500+X)=(500-R10) THEN CIRCLE((500-R10),168),6,2,.7,2.1,.8:_
  55.     SCORE=SCORE+75
  56. 530 CIRCLE(500+X,155+Y),2,3,,,4
  57. 540 REM
  58. 550 IF FUEL<1 THEN Y=Y+5:X=X-40:LOCATE 24,23:PRINT"**  YOU'RE OUT OF FUEL  **";:IF Y=15 THEN 1120
  59. 560 X=X+X1
  60. 570 IF X= -400 THEN X=0:GOSUB 840
  61. 580 FOR I=1 TO 3
  62. 590 IF ((100+R2(I)) = (500+X)) AND Y >= 0 THEN 1120
  63. 600 NEXT I
  64. 610 IF ((500+X) = (100+(R3*40))) AND ((150+Y) = (140+(R4*5))) THEN 1120
  65. 620 IF ((500+X) = (100+(R7*40))) AND Y=0 THEN FUEL = 300:F=7
  66. 630 REM ** F-16 **
  67. 640 CIRCLE(500+X,150+Y),15,2,,,.08
  68. 650 LINE(515+X,149+Y)-(520+X,146+Y),2
  69. 660 GOTO 300
  70. 670 REM ** F-16 **
  71. 675 GOSUB 790
  72. 680 CIRCLE(500+X,150+Y),15,0,,,.08
  73. 690 LINE(515+X,149+Y)-(520+X,146+Y),0
  74. 700 RETURN
  75. 710 REM ** GROUND **
  76. 720 LINE (0,168)-(640,168),3
  77. 730 LINE (0,190)-(640,190),3
  78. 740 LOCATE 22,21:PRINT"PREPARE TO ENTER ENEMY AIR SPACE"
  79. 750 FOR I=1 TO 100:NEXT I
  80. 760 FOR I=1 TO 22:LINE(0,168+I)-(640,168+I),3:NEXT I
  81. 770 LINE (0,139)-(640,139),3
  82. 780 RETURN
  83. 790 REM ** STATUS REPORT **
  84. 800 LOCATE 10,27:PRINT F
  85. 810 LOCATE 10,74:PRINT SCORE
  86. 820 LOCATE 10,39:PRINT FUEL
  87. 825 REM Delay is a must due to the faster compiled code...
  88. 826 FOR DELAY=0 TO 400:NEXT DELAY
  89. 830 RETURN
  90. 840 REM ** LAND **
  91. 850 FOR I=1 TO 3
  92. 860 REM
  93. 870 NEXT I
  94. 880 R10=0:R2=0:R6=0:R7=0:K=0:L=0:FOR I=1 TO 3:R9(I)=0:R1(I)=0:R2(I)=0:NEXT I
  95. 890 FOR I=1 TO 3
  96. 900 R1(I)=INT(10*RND(1))+1
  97. 910 R1(I)=R1(I)*40:CIRCLE (500-R1(I),167),5,2
  98. 920 NEXT I
  99. 930 K=INT(3*RND(1))+1:IF K=3 THEN K=0
  100. 940 FOR I=1 TO K
  101. 950 R2(I)=INT(7*RND(1))+1
  102. 960 R2(I)=R2(I)*40:CIRCLE(100+R2(I),165),15,2,,,5
  103. 970 NEXT I
  104. 980 FOR I=1 TO 2
  105. 990 R3=INT(7*RND(1))+1:R4=INT(4*RND(1))+1
  106. 1000 CIRCLE(100+(R3*40),140+(R4*5)),2,2
  107. 1010 NEXT I
  108. 1020 R6=INT(5*RND(1))+1:IF R6<>1 THEN 1050
  109. 1030 R7=INT(10*RND(1))+1
  110. 1040 CIRCLE (100+(R7*40),150),3,2,,,1.5
  111. 1050 L=INT(3*RND(1))+1:IF L=3 THEN L=0
  112. 1060 FOR I=1 TO L
  113. 1070 R9(I)=INT(10*RND(1))+1
  114. 1080 R9(I)=R9(I)*40:CIRCLE(500-R9(I),165),8,2,,,.3
  115. 1090 NEXT I
  116. 1100 R10=INT(10*RND(1))+1:R10=R10*40:CIRCLE((500-R10),168),6,2,,,.8
  117. 1110 RETURN
  118. 1120 REM ** CRASH **
  119. 1130 C=2:SHIP=SHIP-1
  120. 1140 FOR I=1 TO 3
  121. 1150 IF I=2 THEN C=0
  122. 1160 PSET(500+X,150+Y),C :PSET(505+X,150+Y),C:PSET(495+X,150+Y),C
  123. 1170 PSET(500+X,155+Y),C :PSET(500+X,145+Y),C:PSET(495+X,155+Y),C
  124. 1180 PSET(495+X,145+Y),C :PSET(505+X,145+Y),C:PSET(505+X,155+Y),C
  125. 1190 PSET(490+X,140+Y),C :PSET(510+X,140+Y),C:PSET(510+X,160+Y),C
  126. 1200 PSET(490+X,160+Y),C :PSET(510+X,150+Y),C:PSET(490+X,150+Y),C
  127. 1210 FOR I1=1 TO 300:NEXT I1
  128. 1220 IF I=2 OR SN = 1 THEN 1250
  129. 1230 FOR I2=1 TO 3:SOUND 40+I2,.1:SOUND 70+I2,.15:SOUND 100+I2,.2:SOUND 120+I2,.3:NEXT I2
  130. 1240 FOR I2=1 TO 3 :SOUND 120+I2,.1:SOUND 100+I2,.15:SOUND 70+I2,.2:SOUND 60+I2,.3:SOUND 50+I2,.4:SOUND 40+I2,1:NEXT I2
  131. 1250 NEXT I
  132. 1260 IF SHIP = 0 THEN 1300
  133. 1270 LOCATE 13,21:PRINT"** GET READY FOR YOUR NEXT SHIP **"
  134. 1280 FOR I=1 TO 900:NEXT I
  135. 1290 GOTO 190
  136. 1300 REM ** BEST SCORE **
  137. 1310 CLS:LOCATE 3,24:PRINT" Y O U R    S C O R E : ";SCORE
  138. 1320 LOCATE 5,6:PRINT"* F - 1 6  I N F I L T R A T O R    H A L L   O F   F A M E *"
  139. 1330 OPEN "F-16.SCR" FOR INPUT AS #1
  140. 1340 FOR I = 1 TO 8
  141. 1350 INPUT#1,PERSON$(I),SCR(I)
  142. 1360 NEXT I
  143. 1370 CLOSE#1
  144. 1380 IF SCR(8) > SCORE THEN Y=1:GOTO 1470
  145. 1390 IF SCR(1) < SCORE THEN COUNTER=1:GOTO 1430
  146. 1400 FOR I=8 TO 1 STEP -1
  147. 1410 IF SCR(I) > SCORE THEN COUNTER=I+1:GOTO 1430
  148. 1420 NEXT I
  149. 1430 FOR I=8 TO COUNTER-1 STEP -1:SCR(I+1)=SCR(I):PERSON$(I+1)=PERSON$(I):NEXT I
  150. 1440 SCR(COUNTER)=SCORE
  151. 1450 LOCATE 21,8:PRINT"VERY GOOD, YOUR HAVE RECEIVED ONE OF THE TOP EIGHT SCORES"
  152. 1460 LOCATE 23,8:INPUT"PLEASE ENTER YOUR NAME : ",PERSON$(COUNTER)
  153. 1470 FOR I=1 TO 8
  154. 1480 IF SCR(I) = SCORE THEN LOCATE 7+I,13:PRINT"*"
  155. 1490 LOCATE 7+I,16:PRINT I;". ";PERSON$(I);" HAS A HIGH SCORE OF";SCR(I):NEXT I: IF Y=1 THEN 1550
  156. 1500 OPEN "F-16.SCR" FOR OUTPUT AS #1
  157. 1510 FOR I=1 TO 8
  158. 1520 WRITE#1,PERSON$(I),SCR(I)
  159. 1530 NEXT I
  160. 1540 CLOSE#1
  161. 1550 REM ** PLAY AGAIN ? **
  162. 1560 Y=0
  163. 1570 LOCATE 24,8:INPUT"WOULD YOU LIKE TO PLAY AGAIN? (<y>/n) : ",AG$
  164. 1580 IF AG$="n" OR AG$="N" THEN 2020
  165. 1590 GOTO 170
  166. 1600 IF ERL=1330 THEN RESUME 1370
  167. 1610 IF ERL=1350 THEN RESUME 1370
  168. 1630 REM ** INSTRUCTIONS **
  169. 1640 CLS:LOCATE 1,1:PRINT"*  F - 1 6   E A R L Y   D E P L O Y M E N T   A I R S T R I K E   F O R C E  *"
  170. 1650 LOCATE 24,19:PRINT"** PRESS <RETURN> TO START THE GAME **";
  171. 1660 LOCATE 1,1:PRINT:PRINT
  172. 1670 PRINT"  YOUR MISSION :  Your mission is to fly into hostile enemy airspace trying to "
  173. 1680 PRINT"                  knock out as many missile silos, control buildings, and ammo"
  174. 1690 PRINT"                  depots that you can. You will have to avoid things such as "
  175. 1700 PRINT"                  radio towers, explosive balloons(some are not armed), and a"
  176. 1710 PRINT"                  deadly particle beam above you in the air."
  177. 1720 PRINT
  178. 1730 PRINT"  YOUR PLANE   :  You will be flying an F-16 Infiltrator equiped with seven (7)"
  179. 1740 PRINT"                  air to ground missiles, and 300 units of fuel. The missiles"
  180. 1750 PRINT"                  may only be fired, with accuracy, directly above their target"
  181. 1760 PRINT"                  You will fly the plane by using the <A> key to move upward,"
  182. 1770 PRINT"                  the <Z> key to move downward, and the <,> key to move forward"
  183. 1780 PRINT"                  The <.> key is a thruster. It will advance you a great speed,"
  184. 1790 PRINT"                  allowing you to miss many obsticles, but it uses a large"
  185. 1800 PRINT"                  amount of fuel. The <SPACE BAR> will be used for launching"
  186. 1810 PRINT"                  air to ground missiles."
  187. 1820 PRINT
  188. 1830 PRINT"  OTHER        :  To be resupplied you must fly through, what looks like a big"
  189. 1840 PRINT"                  sideways floating oval. You must be careful not"
  190. 1850 PRINT"                  to get close to the ground or you will crash. "
  191. 1860 PRINT"                  You must destroy five ships to complete your task."
  192. 1880 INPUT"",DL$ ' IF INKEY$<>"" THEN 1885 ELSE 1880
  193. 1885 CLS:GOTO 165
  194. 1890 REM ** INTRO **
  195. 1900 CLS:LOCATE 1,1:PRINT"*  F - 1 6   E A R L Y   D E P L O Y M E N T   A I R S T R I K E   F O R C E  *"
  196. 1910 LOCATE 3,2:PRINT"Written by Edward H. Schoenharl II for Epoch Hardware and Software Company"
  197. 1920 LOCATE 4,22:PRINT"(C) 1984 , ALL RIGHTS RESERVED."
  198. 1930 LOCATE 6,10:PRINT"Any comments, suggestions, or controbutions may be sent to"
  199. 1940 LOCATE 7,2:PRINT"Epoch Hardware and Software Company, 25 Chatham Circle, Wellesley Ma. 02181"
  200. 1950 LOCATE 9,2:PRINT"(Modified by Tom Karlsson, to be accepted by the Rainbow GW-BASIC compiler)"
  201. 1960 SN = 1   '''''' sound off ''''''''
  202. 1970 LOCATE 12,10:INPUT"WOULD YOU LIKE INSTRUCTIONS (y/n) : ",HL$
  203. 1980 IF HL$="Y" OR HL$="y" THEN 1630
  204. 1990 IF HL$="N" OR HL$="n" THEN 2010 ELSE 1970
  205. 2010 GOTO 165
  206. 2020 CLS:LOCATE 10,27:PRINT"THANK YOU FOR PLAYING"
  207.