From 1d8e8822db890e112ba993b87302f21dbc56c8aa Mon Sep 17 00:00:00 2001 From: Joshua Bell Date: Sun, 23 Oct 2022 15:23:41 -0700 Subject: [PATCH] Add Artillery sample --- index.html | 1 + samples/sample.artillery.txt | 179 +++++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 samples/sample.artillery.txt diff --git a/index.html b/index.html index 71ea47f..1af56ee 100644 --- a/index.html +++ b/index.html @@ -85,6 +85,7 @@ By Joshua Bell + diff --git a/samples/sample.artillery.txt b/samples/sample.artillery.txt new file mode 100644 index 0000000..ee88f3f --- /dev/null +++ b/samples/sample.artillery.txt @@ -0,0 +1,179 @@ +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