home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / INFO / BASIC / EBASIC.ZIP / CANNONS.BAS < prev    next >
Encoding:
BASIC Source File  |  1987-01-11  |  5.3 KB  |  197 lines

  1.     REM----------------------------------------------------
  2.     REM        C  A  N  N  O  N  S
  3.     REM----------------------------------------------------
  4.  
  5.     REM            JUNE 15, 1977
  6.  
  7.     PRINT TAB(10);"C  A  N  N  O  N  S"
  8.     PRINT TAB(10);"-------------------"
  9.     PRINT:PRINT:PRINT
  10.     PRINT TAB(10);"ENTER YOUR NAME, COMMANDER ";
  11.     INPUT NAME$
  12.      PRINT 
  13.     RANDOMIZE
  14.     PRINT TAB(5);"YOU GET TO FIRE AN ARTILLERY PIECE AT A"
  15.     PRINT TAB(5);"DISTANT TARGET.  YOU MAY USE AS MANY SHOTS"
  16.     PRINT TAB(5);"AS YOU NEED BUT THE FEWER SHOTS, THE BETTER"
  17.     PRINT TAB(5);"YOUR SCORE."
  18.     PRINT TAB(5);"   YOU MUST GIVE THE COMPUTER THE ANGLE AT"
  19.     PRINT TAB(5);"WHICH TO AIM THE CANNON SO THAT THE PROJECTILE"
  20.     PRINT TAB(5);"WILL STRIKE THE TARGET.  THE ANGLE IS ENTERED"
  21.     PRINT TAB(5);"IN DEGREES AND MAY BE A DECIMAL FRACTION."
  22.     PRINT TAB(5);"IF THE PROJECTILE STRIKES WITHIN 100 YARDS OF"
  23.     PRINT TAB(5);"THE TARGET IT IS CONSIDERED A HIT"
  24.     PRINT TAB(5);"THE MAXIMUM RANGE IS 46,500 YARDS"
  25.     PRINT
  26.     PRINT TAB(5);"       G O O D      L U C K !"
  27.     PRINT:PRINT
  28.      LET W2=0
  29. 200  LET TGT.DIST=43000-30000*RND
  30.      LET ROUNDS.FIRED=0
  31.      PRINT
  32.      IF W2 = 0 THEN GOTO 640
  33.      GOTO 680
  34. 250  PRINT "MINIMUM ELEVATION IS 1 DEGREE."
  35.      GOTO 690
  36.      PRINT "MAXIMUM ELEVATION IS 89 DEGREES."
  37.      GOTO 690
  38. 290  IF B>45 THEN GOTO 320
  39.      PRINT "OVER TARGET BY ";ABS(MISS.DIST);"YARDS - LOWER YOUR ELEVATION."
  40.      GOTO 690
  41. 320  PRINT "OVER TARGET BY ";ABS(MISS.DIST);"YARDS - RAISE YOUR ELEVATION."
  42.      GOTO 690
  43. 340  IF B>45 THEN GOTO 370
  44.      PRINT "SHORT OF TARGET BY ";ABS(MISS.DIST);"YARDS - RAISE YOUR ELEVATION."
  45.      GOTO 690
  46. 370  PRINT "SHORT OF TARGET BY ";ABS(MISS.DIST);"YARDS - LOWER YOUR ELEVATION."
  47.      GOTO 690
  48. 400    REM-------A    H I T !!------------------------------
  49.     PRINT
  50.     PRINT CHR$(7)
  51.     PRINT
  52.     PRINT "                  ***           ***"
  53.     PRINT "         *     ***** *  **** * **"
  54.     PRINT "            **********   ******        *"
  55.     PRINT "        ********* ********* ********* *    *"
  56.     PRINT "        ************* ******* RETURN
  57. 4070 S$=G$
  58. 4075 RETURN
  59. 4080 S$=H$
  60. 4085 RETURN
  61. 4090 S$=I$
  62. 4095 RETURN
  63. 4100 S$=J$
  64. 4105 RETURN
  65. 4500 FOR N=1 TO P
  66. 4510 W=0
  67. 4520 FOR J=1 TO 10
  68. 4530 W=W+T(J)*M(N,J+1)
  69. 4540 NEXT J
  70. 4550 X(N)=W+M(N,1)
  71. 4560 NEXT N
  72. 4570 RETURN
  73. 9000 END
  74. 0 NEXT J
  75. 3230 GOTO 3180
  76. 3240 RETURN
  77. 3250 REM
  78. 4000 ON N GOTO 4010,4020,4030,4040,4050,4060,4070,4080,4090,4100
  79. 4010 S$=A$
  80. 4015 RETURN
  81. 4020 S$=B$
  82. 4025 RETURN
  83. 4030 S$=C$
  84. 4035 RETURN
  85. 4040 S$=D$
  86. 4045 RETURN
  87. 4050 S$=E$
  88. 4055 RETURN
  89. 4060 S$=F$
  90. 4065,1100,1200,1300,1400,1400,1600, \
  91.                   1700,1800,1900,2000,2100,2200,2300, \
  92.                   2400,2500,2600,2700,2800,2900
  93.     PRINT
  94.     PRINT
  95. 565    REM------WANT ANOTHER TRY?------------------------------
  96.     PRINT TAB(10);"WOULD YOU LIKE TO TRY AGAIN, COMMANDER ";NAME$;
  97.     INPUT ANS$
  98.     IF LEFT$(ANS$,1)="Y" THEN \
  99.         GOTO 640
  100.     IF LEFT$(ANS$,1)<>"N" THEN \
  101.         PRINT TAB(10);"I DON'T UNDERSTAND YOU, COMMANDER" :\
  102.         GOTO 565
  103.     PRINT:PRINT
  104.     PRINT TAB(15);"THIS IS FIRE CONTROL . . ."
  105.     PRINT TAB(15);"         SIGNING N 2910
  106. 2890 PRINT "ONLY MONEY ENOUGH FOR ";INT(M(N,1)/T(J));"SHARES"
  107. 2900 GOTO 2860
  108. 2910 M(N,J+1)=M(N,J+1)+R
  109. 2920 M(N,1)=M(N,1)-R*T(J)
  110. 2930 PRINT "YOU NOW HAVE $";M(N,1)
  111. 2940 GOTO 2760
  112. 2950 NEXT N
  113. 2960 GOTO 1560
  114. 2970 ~EM
  115. 2980 REM
  116. 2990 REM   CLOSING OUT AT END OF GAME - PRINT FINAL TOTALS
  117. 3000 REM
  118. 3010 PRINT
  119. 3020 PRINT
  120. 3030 PRINT "*** FINAL TOTALS ARE:"
  121. 3040 PRINT
  122. 3050 PRINT "PLAYER          TOTAL"
  123. 3060 FOR N=1 TO P
  124. 3070 FOR J=1 TO 10
  125. 3080 M(N,1)=M(N,1)+T(J)*M(N,J+1)
  126. 3090 NEXT J
  127. 3100 PR     IF MISS.DIST>100 THEN 340
  128.      IF MISS.DIST<-100 THEN 290
  129. 820  PRINT
  130.      PRINT "---------------> BANG!!  YOU BLEW YOURSELF UP!!  DING-A-LING!!"
  131.      PRINT
  132.      GOTO 565
  133.  
  134. 1000    REM-----ONE SHOT!
  135.     PRINT TAB(10);"       WOW!!"
  136.     PRINT
  137.     PRINT TAB(10);"THAT WAS GREAT! IT ONLY TOOK YOU ONE SHOT!"
  138.     PRINT
  139.     RETURN
  140. 1100    REM-----TWO SHOTS
  141.     PRINT TAB(10);"VERY FINE GUNNERY, COMMANDER ";NAME$
  142.     RETURN
  143. 1200    REM-----3
  144.     PRINT TAB(10);"YOU MAY GET A PROMOTION FOR THIS, ";NAME$;", SIR"
  145.     RETURN
  146. 1300    REM-----4
  147.     PRINT TAB(10);"WELL DONE"
  148.     RETURN
  149. 1400    REM-----5
  150.     PRINT TAB(10);"GOOD JOB, WE NEED MORE OFFICERS LIKE YOU"
  151.     RETURN
  152. 1500    REM-----6
  153.     PRINT TAB(10);"THAT WAS A SATISFACTORY PERFORMANCE"
  154.     RETURN
  155. 1600    REM-----7
  156.     PRINT TAB(10);"THAT WAS OK"
  157.     RETURN
  158. 1700    REM-----8
  159.     PRINT TAB(10);"I THINK THAT WITH SOME PRACTICE, YOU COULD DO OK"
  160.     RETURN
  161. 1800    REM-----9
  162.     PRINT TAB(10);"YOU WERE A LITTLE WASTEFUL OF AMMO, ";NAME$
  163.     RETURN
  164. 1900    REM-----10
  165.     PRINT TAB(10);"I DON'T THINK THAT YOU WERE EVEN TRYING"
  166.     RETURN
  167. 2000    REM-----11
  168.     PRINT TAB(10);"BETTER LUCK NEXT TIME"
  169.     RETURN
  170. 2100    REM-----12
  171.     PRINT TAB(10);"YOU'RE A PRETTY LOUSY SHOT, ";NAME$
  172.     RETURN
  173. 2200    REM-----13
  174.     PRINT TAB(10);"NOT BAD FOR A FOUR YEAR OLD"
  175.     RETURN
  176. 2300    REM-----14
  177.     PRINT TAB(10);"MAYBE YOU SHOULD STAY INSIDE WITH THE COOK"
  178.     RETURN
  179. 2400    REM-----15
  180.     PRINT TAB(10);"THAT WAS AWFUL"
  181.     RETURN
  182. 2500    REM-----16
  183.     PRINT TAB(10);"C'MON, GIVE SOMEONE ELSE A CHANCE!"
  184.     RETURN
  185. 2600    REM-----17
  186.     PRINT TAB(10);"TAKE COVER! RUN FOR YOUR LIFE!"
  187.     RETURN
  188. 2700    REM-----18
  189.     PRINT TAB(10);"I THINK YOU BLEW UP HEADQUARTERS"
  190.     RETURN
  191. 2800    REM-----19
  192.     PRINT TAB(10);"YOU GET THE GUNNERY BOOBY PRIZE"
  193.     RETURN
  194. 2900    REM-----20
  195.     PRINT TAB(10);"YOU ARE THE WORST SHOT I EVER SAW!!"
  196.     RETURN
  197.