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 " ************* ******* RETURN
- 4070 S$=G$
- 4075 RETURN
- 4080 S$=H$
- 4085 RETURN
- 4090 S$=I$
- 4095 RETURN
- 4100 S$=J$
- 4105 RETURN
- 4500 FOR N=1 TO P
- 4510 W=0
- 4520 FOR J=1 TO 10
- 4530 W=W+T(J)*M(N,J+1)
- 4540 NEXT J
- 4550 X(N)=W+M(N,1)
- 4560 NEXT N
- 4570 RETURN
- 9000 END
- 0 NEXT J
- 3230 GOTO 3180
- 3240 RETURN
- 3250 REM
- 4000 ON N GOTO 4010,4020,4030,4040,4050,4060,4070,4080,4090,4100
- 4010 S$=A$
- 4015 RETURN
- 4020 S$=B$
- 4025 RETURN
- 4030 S$=C$
- 4035 RETURN
- 4040 S$=D$
- 4045 RETURN
- 4050 S$=E$
- 4055 RETURN
- 4060 S$=F$
- 4065,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 N 2910
- 2890 PRINT "ONLY MONEY ENOUGH FOR ";INT(M(N,1)/T(J));"SHARES"
- 2900 GOTO 2860
- 2910 M(N,J+1)=M(N,J+1)+R
- 2920 M(N,1)=M(N,1)-R*T(J)
- 2930 PRINT "YOU NOW HAVE $";M(N,1)
- 2940 GOTO 2760
- 2950 NEXT N
- 2960 GOTO 1560
- 2970 ~EM
- 2980 REM
- 2990 REM CLOSING OUT AT END OF GAME - PRINT FINAL TOTALS
- 3000 REM
- 3010 PRINT
- 3020 PRINT
- 3030 PRINT "*** FINAL TOTALS ARE:"
- 3040 PRINT
- 3050 PRINT "PLAYER TOTAL"
- 3060 FOR N=1 TO P
- 3070 FOR J=1 TO 10
- 3080 M(N,1)=M(N,1)+T(J)*M(N,J+1)
- 3090 NEXT J
- 3100 PR 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