Compucolor.org – Virtual Media

Listing of file='6P6.BAS;01' on disk='vmedia/color_graphics_2_suits-sector.ccvf'

5 REM  PROGRAM 6.6
6 REM  AN ARTILLERY GAME
10 PLOT 15,30,16,29,22,12,27,24:REM  SET UP
20 PRINT TAB( 27)"ARTILLERY"
28
29 REM  SET UP THE CONSTANTS
30 GOSUB 1000
38
39 REM  SET UP THE DISPLAY
40 GOSUB 2000
48
49 REM  GET ANGLE FOR EACH SHOT
50 GOSUB 3000
58
59 REM  PLOT PROJECTILE PATH
60 GOSUB 4000
68
69 REM  CHECK TO SEE IF TARGET WAS HIT
70 SC= 28672+ 128* TY+ TX+ TX:REM  SCREEN RAM LOCATION FOR TARGET
80 IF PEEK (SC)= 114THEN 50:REM  IT'S STILL THERE
88
89 REM  PLAYER HAS HIT TARGET
90 PRINT :PRINT "GOOD SHOT!":PRINT
100 INPUT "CARE TO PLAY AGAIN ? ";A$
110 A$= LEFT$ (A$,1)
120 IF A$= "Y"OR A$= "O"THEN RUN :REM  ALLOW ANSWER OF "OK"
130 IF A$< > "N"THEN 100
140 END
997
998 REM  ***** SUBROUTINE TO SET UP CONSTANTS *****
999
1000 G= - 32:REM  GRAVITY
1010 T= .1:REM  TIME INCREMENT
1020 M= 15:REM  MUZZLE VELOCITY (YOU MIGHT WANT TO CHANGE THIS)
1027
1028 REM  GET RANDOM X CO-ORDINATE BETWEEN
1029 REM  3 AND 25 FOR THE PILL BOX
1030 PX= INT (22* RND (1))+ 3
1038
1039 REM  Y CO-ORIDINATE OF PILL BOX IS ALWAYS 30
1040 PY= 30
1047
1048 REM  GET RANDOM X CO-ORDINATE BETWEEN
1049 REM  40 AND 55 FOR TARGET
1050 TX= INT (15* RND (1))+ 40
1058
1059 REM  TARGET Y CO-ORDINATE IS ALWAYS 30
1060 TY= 30
1070 RETURN
1996
1997 REM  ***** SUBROUTINE TO PRINT THE DISPLAY *****
1998
1999 REM   GROUND
2000 PLOT 6,16:REM  BACKGROUND TO GREEN
2010 PLOT 3,0,31,11
2018
2019 REM  PILL BOX
2020 PLOT 6,8:REM  BACKGROUND TO RED
2030 PLOT 3,PX,PY,32:REM  PRINT A SPACE IN RED FOR THE PILL BOX
2039 REM  TARGET
2040 PLOT 6,6:REM  CYAN ON BLACK
2050 PLOT 3,TX,TY,114:REM  USE ROOK FOR THE TARGET
2060 RETURN
2997
2998 REM  ***** SUBROUTINE TO GET ANGLE *****
2999
3000 PLOT 6,2
3010 PLOT 3,0,1,11:REM  ERASE ANY PREVIOUS INPUT
3020 INPUT "ANGLE? ";A$
3029 REM  IF A<0 THEN ABORT AND START AGAIN
3030 A= VAL (A$):IF A< 0THEN RUN
3039 REM  TRANSLATE INTO RADIANS
3040 A= A* 3.1415926/ 180
3049 REM  CALCULATE INITIAL X AND Y VELOCITIES OF PROJECTILE
3050 VX= M* COS (A)
3060 VY= M* SIN (A)
3070 RETURN
3994
3995 REM  ***** SUBROUTINE TO PLOT PATH OF PROJECTILE *****
3996
3997 REM  FIRST SET UP INITIAL X CO-ORDINATE. LET'S
3998 REM  HAVE IT BEGIN JUST ABOVE THE UPPER RIGHT
3999 REM  OF THE PILL BOX
4000 X0= 2* PX+ 1
4008
4009 REM  INITIAL Y CO-ORIDINATE IS ALWAYS 8
4010 Y0= 8
4019
4020 PLOT 6,7,2:REM  COLOR=WHITE;ENTER GENERAL PLOT MODE
4030 PLOT X0,Y0:REM  PLOT PROJECTILE
4038
4039 REM  CALCULATE NEW X CO-ORDINATE
4040 X1= X0+ VX* T
4048
4049 REM  CHECK FOR OUT OF BOUNDS
4050 IF X1< 0OR X1> 127THEN 4200
4058
4059 REM  CALCULATE NEW Y VELOCITY
4060 VY= VY+ .5* G* T* T
4068
4069 REM  CALCULATE NEW Y CO-ORDINATE
4070 Y1= Y0+ VY* T
4078
4079 REM  CHECK FOR TOO HIGH
4080 IF Y1> 127THEN 4200
4088
4089 REM  CHECK FOR HITTING THE GROUND
4090 IF Y1< 4THEN 4200
4095 PLOT X0,Y0:REM  ERASE PROJECTILE AT LAST LOCATION
4098
4099 REM  LET THE NEW CO-ORDINATES NOW BE THE OLD ONES
4100 X0= X1:Y0= Y1
4108
4109 REM  BACK FOR NEXT PLOT & NEXT COMPUTATIONS
4110 GOTO 4030
4198
4199 REM  END OF PLOT
4200 PLOT 255:REM  EXIT PLOT MODE
4210 RETURN