5 REM ARTILLERY #01
10  TEXT : HOME : SPEED= 255: NORMAL
15  HOME : VTAB (10): INPUT "INSTRUCTIONS?";A9$
16  IF  LEFT$ (A9$,1) = "N" THEN 19
17  HOME : GOTO 20
19  HOME : TEXT : GOTO 150
20  PRINT  TAB( 15): PRINT : PRINT : PRINT "ARTILLERY": PRINT : PRINT : PRINT : PRINT
21  PRINT "   ARTILLERY IS A SIMULATION OF AN"
30  PRINT "ARTILLERY DUEL BETWEEN TWO SETS OF GUNS"
40  PRINT "ON EITHER SIDE OF A MOUNTAIN. BY USING"
50  PRINT "THE ANGLE OF THE GUN AND THE MILLEMETER"
60  PRINT "SIZE,YOU WILL BE ABLE TO DESTROY YOUR"
70  PRINT "OPPONANT. EACH OF YOU IN TURN WILL TAKE"
80  PRINT "A SHOT AT YOUR OPPONANT WHILE TAKING"
90  PRINT "INTO ACCOUNT THE WIND SPEED. YOU WILL"
100  PRINT "ENTER THE DEGREE MEASURE(BETWEEN"
110  PRINT "20 AND 100 DEGREES).THIS WILL BE
120  PRINT "FOLLOWED BY THE MILLIMETER SIZE(45 TO"
130  PRINT "150 MM)"
131  PRINT
132  PRINT "      -HIT RETURN TO CONTINUE-"
140  GET LOST$
150  HGR
160  HCOLOR= 6
170 G(1) =  RND (1) * 117 + 8
180 G(2) =  RND (1) * 117 + 125
190  IF G(2) - G(1) < 140 THEN 170
200 W1 =  INT ( RND (1) * 41)
210 W2 =  INT ( RND (1) + .5) - 1
220  IF W2 < 0 THEN 240
230 W2 = 1
240  HPLOT G(2) + 8,149 TO G(2),145
250 X = 1
260  HPLOT G(X) - 8,149 TO G(X),145
270  HPLOT G(2) + 8,150 TO G(2),146
280  HPLOT G(X) - 8,150 TO G(X),146
290  HPLOT G(2) + 4,145 TO G(2) - 3,137
300  HPLOT G(X) - 4,145 TO G(X) + 3,137
310  HPLOT G(2) + 5,144 TO G(2) - 7,136
320  HPLOT G(X) - 5,144 TO G(X) + 7,136
330  HPLOT G(2) + 2,135 TO G(2) - 2,150
340  HPLOT G(X) - 2,135 TO G(X) + 2,150
350 P1 = W2
360  GOSUB 1440
370  GOSUB 1630
380  FOR X8 = 1 TO 20
390 P2 = 0
400 P1 = P1 * ( - 1)
410  GOSUB 1290
420  PRINT : PRINT : PRINT : GOSUB 1580
430  PRINT "ENTER DEGREE (20-100) & MM SIZE (45-150) TO DESTROY THE OPPOSING CANNON"
440  INPUT A1,V1
441  IF A1 > 100 OR A1 < 20 THEN 445
442  IF V1 > 150 OR V1 < 45 THEN 445
443  GOTO 450
445  PRINT "": INVERSE : PRINT "ILLEGAL QUANTITY-TRY AGAIN": NORMAL : GOTO 430
450 A1 = A1 * 3.1415926 / 180
460 X1 =  COS (A1) * V1
470 Y1 =  SIN (A1) * V1
480 T1 = Y1 / 16
490 T2 = T1 / 24
500 W3 = W1 * T2 * P1
510 W5 = 0
520  FOR Y8 = 0 TO T1 STEP T2
530 W5 = W5 + W3
540 X = X1 * Y8
550 X = X + (W5 * W2)
560 X =  INT (X + .5)
570 Y = Y1 * Y8 - 16 * Y8 ^ 2
580 Y =  INT (Y + .5)
590  IF Y < 9 THEN 750
600  IF P1 < 0 THEN 680
610 G4 = G(1) + X
620  IF G4 < 1 OR G4 > 254 THEN 670
630  IF Y > 149 THEN 670
640  HCOLOR= 5
650  HPLOT X2,Y2 TO G4,150 - Y
660 X2 = G4:Y2 = 150 - Y
670  GOTO 750
680 G4 = G(2) - X
690  IF G4 < 0 OR G4 > 254 THEN 750
700  IF Y > 149 THEN 750
710  HCOLOR= 3
720  HPLOT X2,Y2 TO G4,150 - Y
730 X2 = G4:Y2 = 150 - Y
740  IF Y8 = 0 THEN 770
750  GOSUB 1060
760  IF P2 = 5 THEN 800
770  NEXT Y8
780 Y6 = 150
790  GOSUB 1160
800  IF G4 > G(1) + 5 OR G4 < G(1) - 5 THEN 850
810  PRINT : PRINT : PRINT
820  PRINT "GOOD WORK! RIGHT GUN SURVIVES."
830 T3 = T3 + 1
840  GOTO 930
850  IF G4 > G(2) + 5 OR G4 < G(2) - 5 THEN 900
860  PRINT : PRINT : PRINT
870  PRINT "NICE SHOOTING! LEFT GUN SURVIVES."
880 T4 = T4 + 1
890  GOTO 930
900 P2 = 0
910 G4 = 0
920  NEXT X8
930  PRINT : PRINT "DO YOU WANT TO PLAY AGAIN";
940  INPUT A$
950  IF A$ = "Y" THEN 150
951  IF A$ = "YES" THEN 150
960  HGR
970  TEXT
980  HOME
990  PRINT "SCORE"
1000  PRINT "-----"
1010  PRINT "LEFT ";T4
1020  PRINT "RIGHT ";T3
1045 D9$ = "CHR$(13)": PRINT D$
1050  END
1060 Y6 = 150
1070 G8 = Y7 + 2 * G3
1080 Y7 = G(1) + G2
1090  IF Y > G3 THEN 1280
1100  IF G4 < Y7 + Y THEN 1280
1110  IF G4 > G8 - Y THEN 1280
1120 P2 = 5
1130 P2 = 5
1140 Y6 = 150 - Y
1150 Y6 = 150 - Y
1160  FOR Z = 1 TO 5
1170  IF G4 < 0 OR G4 > 253 THEN 1240
1180  HPLOT G4,Y6 - Z
1190  HPLOT G4 + Z,Y6 - Z
1200  HPLOT G4 - Z,Y6 - Z
1210  HPLOT G4 + Z,Y6 - 1
1220  HPLOT G4 - Z,Y6 - 1
1230 X5 =  PEEK ( - 16336)
1240  NEXT Z
1250 Y = 0
1260 X = 0
1270  GOSUB 1630
1280  RETURN
1290  IF P1 < 0 THEN 1360
1300  HPLOT 1,152 TO 4,152
1310  HPLOT 1,153 TO 4,153
1320  HPLOT 1,154 TO 4,154
1330  HPLOT 1,155 TO 4,155
1340  IF P1 < 0 THEN 1420
1350  HCOLOR= 0
1360  HPLOT 250,152 TO 254,152
1370  HPLOT 250,153 TO 254,153
1380  HPLOT 250,154 TO 254,154
1390  HPLOT 250,155 TO 254,155
1400  HCOLOR= 0
1410  IF P1 < 0 THEN 1300
1420  HCOLOR= 2
1430  RETURN
1440 G1 = (G(2) - G(1)) / 2
1450 G2 =  RND (1) * (G1 - 1) + 1
1460 G3 =  RND (1) * G1 / 2 + 10
1470  IF G3 < 30 THEN 1460
1480  IF G(2) - (G(1) + G2) > 2 * G3 THEN 1510
1490 G3 = G3 - 1
1500  GOTO 1480
1510  FOR M1 = 1 TO 252
1520  HCOLOR= 1
1530  HPLOT M1,150
1540  NEXT M1
1550  HPLOT G(1) + G2,150 TO G(1) + G2 + G3,150 - G3
1560  HPLOT G(1) + G2 + 2 * G3,150 TO G(1) + G2 + G3,150 - G3
1570  RETURN
1580  IF W2 < 0 THEN 1610
1590  PRINT "THE WIND IS TO THE RIGHT AT ";W1
1600  GOTO 1620
1610  PRINT "THE WIND IS TO THE LEFT AT ";W1
1620  RETURN
1630  IF P1 < 0 THEN 1660
1640 X2 = G(2):Y2 = 150
1650  GOTO 1670
1660 X2 = G(1):Y2 = 150
1670  RETURN
