10 REM WSAND.ECB 15 REM ..... **ARTILLERY PRACTICE ** 20 REM ..... FOR 8K BASIC AND CRT 30 REM ..... BY H. DEOMONSTOY 1-6-77 40 REM ..... RUN ON SWTP6800 WITH 50 REM ..... CT-1024 CRT TERMINAL 60 REM ..... 10 K REQUIRED 70 DIM P$(120),Q$(12) 80 LET P$=" " 90 PRINT "&K&J&J": LET P$=P$+P$+P$ 95 PRINT TAB(15);"### W H I T E S A N D ###&J&J" 100 PRINT "THIS IS A TARGET PRACTICE GAME&J" 110 INPUT (1,0)"DO YOU NEED INSTRUCTIONS ? ---=>",Q$ 120 GOSUB 2200 130 IF F=0 THEN 490 140 REM .....===== INSTRUCTIONS PAGE 1 145 PRINT 150 PRINT "THE ELEVATION LOOKS LIKE THIS" 160 PRINT 170 PRINT " * *" 180 PRINT " * *" 190 PRINT " * *" 200 PRINT "YOU / +" 210 PRINT " ELEVATION TARGET" 220 PRINT 230 PRINT "AN ELEVATION FROM 0 TO 45 WILL" 240 PRINT "INCREASE THE DISTANCE, BUT" 250 PRINT "BEYOND 45 THE DISTANCE WILL GET" 260 PRINT "SHORTER UP TO 90, WHEN IT WILL" 270 PRINT "GO STRAIGHT UP AND BACK ON YOU" 280 GOSUB 2100 284 REM .....===== INSTRUCTIONS PAGE 2 285 PRINT 290 PRINT "ARTILLERY RANGE DIRECTION" 300 PRINT 310 PRINT " 90" 320 PRINT " :" 330 PRINT " :Y" 340 PRINT " :" 350 PRINT "180-X X 0" 360 PRINT "-----------YOU------------" 370 PRINT 380 PRINT "DIRECTION CAN BE FROM 0 TO 180" 390 PRINT "WITH 0 AT RIGHT, 180 AT LEFT," 400 PRINT "AND 90 STRAIGHT AHEAD." 405 PRINT "NOTE X IS MINUS FROM 90 TO 180" 410 GOSUB 2100 419 REM .....===== INSTRUCTIONS PAGE 3 420 PRINT 430 PRINT "YOU ARE TO FIRE AT A TARGET" 435 PRINT "AT THE X AND Y COORDINATES" 440 PRINT "LISTED. YOU WILL BE GIVEN THE" 445 PRINT "DISTANCE FROM TARGET AND THE" 450 PRINT "COORDINATES OF EACH OF 3 SHOTS" 460 PRINT "LISTED AFTER EVERYONE IS DONE" 465 PRINT 470 PRINT "LIST YOUR NAMES IN ORDER, WHEN ASKED.&J" 475 PRINT " G O O D L U C K !!&J&J" 489 REM .....===== GET LIST OF PLAYERS 490 INPUT (2,0)"HOW MANY PLAYERS ? (1 TO 12)---=>",P 495 IF P<0 OR P>12 THEN PRINT "&J *** 1 TO 12 ONLY ***&J": GOTO 490 500 LET Z=0 505 PRINT 510 FOR I=1 TO P 520 PRINT "PLAYER ";I," NAME: ---=>"; 525 LET I2=(I*10)-1: LET I1=I2-8 530 INPUT (12,0)Q$: LET P$(I1,I2)=Q$ 540 NEXT I 659 REM .....===== MEASURE TO .1 FEET 660 LET Z=1 670 FOR I=1 TO P 675 LET I2=(I*10)-1: LET I1=I2-8 679 REM .....===== CALCULATE TARGET 680 LET X=2600*RND(0)+500 690 LET Y=2600*RND(0)+500 700 IF RND(0)>.5 THEN LET X=-X 709 REM .....===== START PLAY-NEW PAGE 710 PRINT 715 PRINT P$(I1,I2);", your turn." 720 PRINT "TARGET AT X,Y ";X;", ";Y 730 FOR J=1 TO 3 735 PRINT "&J Shot #";J;" ---=>"; 740 INPUT B,C 749 REM .....===== KEEP SHOT ON THE RANGE 750 IF B<90 THEN IF B>0 THEN 760 755 GOTO 2000 760 IF C<180 THEN IF C>0 THEN 770 765 GOTO 2020 770 LET A=3.14159/180 780 LET D=ABS(9300*SIN(B*A)*COS(B*A)) 790 LET X1=D*COS(C*A) 800 LET Y1=D*SIN(C*A) 810 LET D1=SQR((X-X1)*(X-X1)+(Y-Y1)*(Y-Y1)) 819 REM .....===== KEEP BEST SHOT 820 IF J=1 THEN LET D(I)=D1 830 IF D(I)>D1 THEN LET D(I)=D1 840 PRINT D1;" FT. AWAY ";X1;", ";Y1 850 NEXT J 860 GOSUB 2100 870 NEXT I 889 REM .....===== NEW PAGE-FINAL RESULTS 890 PRINT 900 PRINT "PLAYER","BEST SHOT" 905 PRINT 910 FOR I=1 TO P 915 LET I2=(I*10)-1: LET I1=I2-8 920 PRINT P$(I1,I2),D(I);" feet" 930 IF I=1 THEN LET W=D(I) 940 IF W>D(I) THEN LET W=D(I) 950 NEXT I 960 FOR I=1 TO P 965 LET I2=(I*10)-1: LET I1=I2-8 970 IF W=D(I) THEN PRINT "*** WINNER IS *** ";P$(I1,I2) 975 NEXT I 980 PRINT "ANOTHER GAME ? (Y or N) ---=>"; 981 INPUT (1,0)Q$ 990 GOSUB 2200 1000 IF F=0 THEN 1800 1010 PRINT "SAME PLAYERS ? (Y or N) ---=>"; 1011 INPUT (1,0)Q$ 1020 GOSUB 2200 1030 IF F=0 THEN 490 1040 GOTO 660 1800 PRINT "HOPE YOU LIKE THE ARTILLERY" 1810 PRINT "RANGE. PLEASE COME AGAIN" 1819 REM .....===== GO TO FLOATING DECIMAL 1820 LET Z=0 1900 END 2000 PRINT "WRONG ELEVATION" 2010 GOTO 740 2020 PRINT "WRONG DIRECTION" 2030 GOTO 740 2100 PRINT 2110 INPUT (1,200)"HIT CR TO CONTINUE ---=>",Q$ 2115 PRINT "&K&J" 2120 RETURN 2200 IF Q$="N" THEN 2240 2210 IF Q$="O" THEN 2240 2220 LET F=1 2230 RETURN 2240 LET F=0 2250 RETURN 2260 END