home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / cpmug / cpmug003.ark / CANNONS.BAS < prev    next >
Encoding:
BASIC Source File  |  1984-04-29  |  5.2 KB  |  175 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 "        ************* ********** ********"
  57.     PRINT "          ****** B    A    N    G *********"
  58.     PRINT "       *     ***************************      *"
  59.     PRINT "          *      *   *****************   ** ***"
  60.     PRINT "      *       ***************** *    * * * *"
  61.     PRINT "                 ********       ****"
  62.     PRINT "                    ***             **"
  63.     PRINT "                    **"
  64.     PRINT
  65.     PRINT
  66.      PRINT TAB(15);ROUNDS.FIRED;" ROUNDS EXPENDED!"
  67.     IF ROUNDS.FIRED>20 THEN \
  68.         ROUNDS.FIRED=20
  69.     ON ROUNDS.FIRED GOSUB 1000,1100,1200,1300,1400,1400,1600, \
  70.                   1700,1800,1900,2000,2100,2200,2300, \
  71.                   2400,2500,2600,2700,2800,2900
  72.     PRINT
  73.     PRINT
  74. 565    REM------WANT ANOTHER TRY?------------------------------
  75.     PRINT TAB(10);"WOULD YOU LIKE TO TRY AGAIN, COMMANDER ";NAME$;
  76.     INPUT ANS$
  77.     IF LEFT$(ANS$,1)="Y" THEN \
  78.         GOTO 640
  79.     IF LEFT$(ANS$,1)<>"N" THEN \
  80.         PRINT TAB(10);"I DON'T UNDERSTAND YOU, COMMANDER" :\
  81.         GOTO 565
  82.     PRINT:PRINT
  83.     PRINT TAB(15);"THIS IS FIRE CONTROL . . ."
  84.     PRINT TAB(15);"         SIGNING OFF"
  85.     PRINT
  86.     STOP
  87.  
  88. 640  PRINT
  89.     PRINT TAB(10);"THE TARGET IS IN SIGHT!"
  90.      LET W2=1
  91.      PRINT
  92.      GOTO 200
  93. 680    REM
  94.     PRINT TAB(10);"DISTANCE TO TARGET IS ";INT(TGT.DIST);"YARDS."
  95. 690  PRINT
  96.      PRINT "ELEVATION:";
  97.      INPUT ELEVATION
  98.      IF ELEVATION = 90 THEN GOTO 820
  99.      IF ELEVATION<1 THEN GOTO 250
  100.      LET ROUNDS.FIRED = ROUNDS.FIRED + 1
  101.      LET B2=2*ELEVATION/57.3
  102.      LET SHOT.DIST=46500*SIN(B2)
  103.      LET MISS.DIST=INT(TGT.DIST-SHOT.DIST)
  104.      IF ABS(MISS.DIST)<100 THEN 400
  105.      IF MISS.DIST>100 THEN 340
  106.      IF MISS.DIST<-100 THEN 290
  107. 820  PRINT
  108.      PRINT "---------------> BANG!!  YOU BLEW YOURSELF UP!!  DING-A-LING!!"
  109.      PRINT
  110.      GOTO 565
  111.  
  112. 1000    REM-----ONE SHOT!
  113.     PRINT TAB(10);"       WOW!!"
  114.     PRINT
  115.     PRINT TAB(10);"THAT WAS GREAT! IT ONLY TOOK YOU ONE SHOT!"
  116.     PRINT
  117.     RETURN
  118. 1100    REM-----TWO SHOTS
  119.     PRINT TAB(10);"VERY FINE GUNNERY, COMMANDER ";NAME$
  120.     RETURN
  121. 1200    REM-----3
  122.     PRINT TAB(10);"YOU MAY GET A PROMOTION FOR THIS, ";NAME$;", SIR"
  123.     RETURN
  124. 1300    REM-----4
  125.     PRINT TAB(10);"WELL DONE"
  126.     RETURN
  127. 1400    REM-----5
  128.     PRINT TAB(10);"GOOD JOB, WE NEED MORE OFFICERS LIKE YOU"
  129.     RETURN
  130. 1500    REM-----6
  131.     PRINT TAB(10);"THAT WAS A SATISFACTORY PERFORMANCE"
  132.     RETURN
  133. 1600    REM-----7
  134.     PRINT TAB(10);"THAT WAS OK"
  135.     RETURN
  136. 1700    REM-----8
  137.     PRINT TAB(10);"I THINK THAT WITH SOME PRACTICE, YOU COULD DO OK"
  138.     RETURN
  139. 1800    REM-----9
  140.     PRINT TAB(10);"YOU WERE A LITTLE WASTEFUL OF AMMO, ";NAME$
  141.     RETURN
  142. 1900    REM-----10
  143.     PRINT TAB(10);"I DON'T THINK THAT YOU WERE EVEN TRYING"
  144.     RETURN
  145. 2000    REM-----11
  146.     PRINT TAB(10);"BETTER LUCK NEXT TIME"
  147.     RETURN
  148. 2100    REM-----12
  149.     PRINT TAB(10);"YOU'RE A PRETTY LOUSY SHOT, ";NAME$
  150.     RETURN
  151. 2200    REM-----13
  152.     PRINT TAB(10);"NOT BAD FOR A FOUR YEAR OLD"
  153.     RETURN
  154. 2300    REM-----14
  155.     PRINT TAB(10);"MAYBE YOU SHOULD STAY INSIDE WITH THE COOK"
  156.     RETURN
  157. 2400    REM-----15
  158.     PRINT TAB(10);"THAT WAS AWFUL"
  159.     RETURN
  160. 2500    REM-----16
  161.     PRINT TAB(10);"C'MON, GIVE SOMEONE ELSE A CHANCE!"
  162.     RETURN
  163. 2600    REM-----17
  164.     PRINT TAB(10);"TAKE COVER! RUN FOR YOUR LIFE!"
  165.     RETURN
  166. 2700    REM-----18
  167.     PRINT TAB(10);"I THINK YOU BLEW UP HEADQUARTERS"
  168.     RETURN
  169. 2800    REM-----19
  170.     PRINT TAB(10);"YOU GET THE GUNNERY BOOBY PRIZE"
  171.     RETURN
  172. 2900    REM-----20
  173.     PRINT TAB(10);"YOU ARE THE WORST SHOT I EVER SAW!!"
  174.     RETURN
  175.