home *** CD-ROM | disk | FTP | other *** search
- REM----------------------------------------------------
- REM C A N N O N S
- REM----------------------------------------------------
-
- REM JUNE 15, 1977
-
- PRINT TAB(10);"C A N N O N S"
- PRINT TAB(10);"-------------------"
- PRINT:PRINT:PRINT
- PRINT TAB(10);"ENTER YOUR NAME, COMMANDER ";
- INPUT NAME$
- PRINT
- RANDOMIZE
- PRINT TAB(5);"YOU GET TO FIRE AN ARTILLERY PIECE AT A"
- PRINT TAB(5);"DISTANT TARGET. YOU MAY USE AS MANY SHOTS"
- PRINT TAB(5);"AS YOU NEED BUT THE FEWER SHOTS, THE BETTER"
- PRINT TAB(5);"YOUR SCORE."
- PRINT TAB(5);" YOU MUST GIVE THE COMPUTER THE ANGLE AT"
- PRINT TAB(5);"WHICH TO AIM THE CANNON SO THAT THE PROJECTILE"
- PRINT TAB(5);"WILL STRIKE THE TARGET. THE ANGLE IS ENTERED"
- PRINT TAB(5);"IN DEGREES AND MAY BE A DECIMAL FRACTION."
- PRINT TAB(5);"IF THE PROJECTILE STRIKES WITHIN 100 YARDS OF"
- PRINT TAB(5);"THE TARGET IT IS CONSIDERED A HIT"
- PRINT TAB(5);"THE MAXIMUM RANGE IS 46,500 YARDS"
- PRINT
- PRINT TAB(5);" G O O D L U C K !"
- PRINT:PRINT
- LET W2=0
- 200 LET TGT.DIST=43000-30000*RND
- LET ROUNDS.FIRED=0
- PRINT
- IF W2 = 0 THEN GOTO 640
- GOTO 680
- 250 PRINT "MINIMUM ELEVATION IS 1 DEGREE."
- GOTO 690
- PRINT "MAXIMUM ELEVATION IS 89 DEGREES."
- GOTO 690
- 290 IF B>45 THEN GOTO 320
- PRINT "OVER TARGET BY ";ABS(MISS.DIST);"YARDS - LOWER YOUR ELEVATION."
- GOTO 690
- 320 PRINT "OVER TARGET BY ";ABS(MISS.DIST);"YARDS - RAISE YOUR ELEVATION."
- GOTO 690
- 340 IF B>45 THEN GOTO 370
- PRINT "SHORT OF TARGET BY ";ABS(MISS.DIST);"YARDS - RAISE YOUR ELEVATION."
- GOTO 690
- 370 PRINT "SHORT OF TARGET BY ";ABS(MISS.DIST);"YARDS - LOWER YOUR ELEVATION."
- GOTO 690
- 400 REM-------A H I T !!------------------------------
- PRINT
- PRINT CHR$(7)
- PRINT
- PRINT " *** ***"
- PRINT " * ***** * **** * **"
- PRINT " ********** ****** *"
- PRINT " ********* ********* ********* * *"
- PRINT " ************* ********** ********"
- PRINT " ****** B A N G *********"
- PRINT " * *************************** *"
- PRINT " * * ***************** ** ***"
- PRINT " * ***************** * * * * *"
- PRINT " ******** ****"
- PRINT " *** **"
- PRINT " **"
- PRINT
- PRINT
- PRINT TAB(15);ROUNDS.FIRED;" ROUNDS EXPENDED!"
- IF ROUNDS.FIRED>20 THEN \
- ROUNDS.FIRED=20
- ON ROUNDS.FIRED GOSUB 1000,1100,1200,1300,1400,1400,1600, \
- 1700,1800,1900,2000,2100,2200,2300, \
- 2400,2500,2600,2700,2800,2900
- PRINT
- PRINT
- 565 REM------WANT ANOTHER TRY?------------------------------
- PRINT TAB(10);"WOULD YOU LIKE TO TRY AGAIN, COMMANDER ";NAME$;
- INPUT ANS$
- IF LEFT$(ANS$,1)="Y" THEN \
- GOTO 640
- IF LEFT$(ANS$,1)<>"N" THEN \
- PRINT TAB(10);"I DON'T UNDERSTAND YOU, COMMANDER" :\
- GOTO 565
- PRINT:PRINT
- PRINT TAB(15);"THIS IS FIRE CONTROL . . ."
- PRINT TAB(15);" SIGNING OFF"
- PRINT
- STOP
-
- 640 PRINT
- PRINT TAB(10);"THE TARGET IS IN SIGHT!"
- LET W2=1
- PRINT
- GOTO 200
- 680 REM
- PRINT TAB(10);"DISTANCE TO TARGET IS ";INT(TGT.DIST);"YARDS."
- 690 PRINT
- PRINT "ELEVATION:";
- INPUT ELEVATION
- IF ELEVATION = 90 THEN GOTO 820
- IF ELEVATION<1 THEN GOTO 250
- LET ROUNDS.FIRED = ROUNDS.FIRED + 1
- LET B2=2*ELEVATION/57.3
- LET SHOT.DIST=46500*SIN(B2)
- LET MISS.DIST=INT(TGT.DIST-SHOT.DIST)
- IF ABS(MISS.DIST)<100 THEN 400
- IF MISS.DIST>100 THEN 340
- IF MISS.DIST<-100 THEN 290
- 820 PRINT
- PRINT "---------------> BANG!! YOU BLEW YOURSELF UP!! DING-A-LING!!"
- PRINT
- GOTO 565
-
- 1000 REM-----ONE SHOT!
- PRINT TAB(10);" WOW!!"
- PRINT
- PRINT TAB(10);"THAT WAS GREAT! IT ONLY TOOK YOU ONE SHOT!"
- PRINT
- RETURN
- 1100 REM-----TWO SHOTS
- PRINT TAB(10);"VERY FINE GUNNERY, COMMANDER ";NAME$
- RETURN
- 1200 REM-----3
- PRINT TAB(10);"YOU MAY GET A PROMOTION FOR THIS, ";NAME$;", SIR"
- RETURN
- 1300 REM-----4
- PRINT TAB(10);"WELL DONE"
- RETURN
- 1400 REM-----5
- PRINT TAB(10);"GOOD JOB, WE NEED MORE OFFICERS LIKE YOU"
- RETURN
- 1500 REM-----6
- PRINT TAB(10);"THAT WAS A SATISFACTORY PERFORMANCE"
- RETURN
- 1600 REM-----7
- PRINT TAB(10);"THAT WAS OK"
- RETURN
- 1700 REM-----8
- PRINT TAB(10);"I THINK THAT WITH SOME PRACTICE, YOU COULD DO OK"
- RETURN
- 1800 REM-----9
- PRINT TAB(10);"YOU WERE A LITTLE WASTEFUL OF AMMO, ";NAME$
- RETURN
- 1900 REM-----10
- PRINT TAB(10);"I DON'T THINK THAT YOU WERE EVEN TRYING"
- RETURN
- 2000 REM-----11
- PRINT TAB(10);"BETTER LUCK NEXT TIME"
- RETURN
- 2100 REM-----12
- PRINT TAB(10);"YOU'RE A PRETTY LOUSY SHOT, ";NAME$
- RETURN
- 2200 REM-----13
- PRINT TAB(10);"NOT BAD FOR A FOUR YEAR OLD"
- RETURN
- 2300 REM-----14
- PRINT TAB(10);"MAYBE YOU SHOULD STAY INSIDE WITH THE COOK"
- RETURN
- 2400 REM-----15
- PRINT TAB(10);"THAT WAS AWFUL"
- RETURN
- 2500 REM-----16
- PRINT TAB(10);"C'MON, GIVE SOMEONE ELSE A CHANCE!"
- RETURN
- 2600 REM-----17
- PRINT TAB(10);"TAKE COVER! RUN FOR YOUR LIFE!"
- RETURN
- 2700 REM-----18
- PRINT TAB(10);"I THINK YOU BLEW UP HEADQUARTERS"
- RETURN
- 2800 REM-----19
- PRINT TAB(10);"YOU GET THE GUNNERY BOOBY PRIZE"
- RETURN
- 2900 REM-----20
- PRINT TAB(10);"YOU ARE THE WORST SHOT I EVER SAW!!"
- RETURN
-