10 REM TANX.
20 REM à PAUL STANLEY 25 REM PAN BOOKS 1984 30 MODE 1:BORDER 0:INK 0,0:INK 1,24:INK 2,20:INK 3,6:CLS 40 GOSUB 1080 50 GOSUB 800 60 WINDOW #0,5,36,1,25:PAPER #0,0:PEN #0,1:CLS #0 70 GOSUB 1030 80 C=0:GOSUB 870 90 IF RND>0.5 THEN C=C+1:GOSUB 420 100 GOSUB 170:IF FL=1 THEN FL=0:GOTO 670 110 C=C+1 120 IF C=8 THEN CLS:GOTO 80 130 GOSUB 420:IF FL=1 THEN FL=0: GOTO 710 140 C=C+1 150 IF C=12 THEN CLS:GOTO 80 160 GOTO 100 170 LOCATE 13,22:PRINT"PLAYER 1":LOCATE 1,24:PRINT CHR$(20);:LOCATE 1,24:INPUT"ENTER ELEVATION (0 TO 90)";AA$:IF AA$="" THEN 170 180 IF ASC(AA$)<48 OR ASC (AA$)>57 THEN 170 ELSE A=VAL(AA$) 190 IF A>90 OR A<0 THEN 170 200 PEN 2:LOCATE 1,24:PRINT CHR$(20);:LOCATE 1,24:PRINT"ENTER VELOCITY (2 TO 10) ";:PEN 1:INPUT VV$:IF VV$="" THEN 200 210 IF ASC(VV$)<49 OR ASC (VV$)>57 THEN 200 ELSE V=VAL(VV$) 220 IF V<2 OR V>10 THEN 200 230 S1=F1:O1=F1 240 MX=274+10*V 250 E=A/12 260 FOR XX=1 TO 10:SOUND 1,2000,(XX+1),(10-XX),3,0,1:NEXT 270 FOR G=80 TO 575 STEP V 280 IF S1>0 THEN IF S1<399 THEN IF G>82 THEN IF TEST(G,S1)=1 OR TEST(G,S1)=2 THEN K=G:SOUND 1,120,5:SOUND 1,180,5:GOTO 340 290 IF S1>0 THEN IF S1<399 THEN PLOT G,S1,3 300 IF E>0 THEN S1=S1-E*(G<MX)+E*(G>=MX) 310 IF G<MX THEN E=E-E/40 ELSE E=E+E/30 320 NEXT G 330 K=575 340 S1=24.5-S1/16:IF(INT(S1)=Q2 AND K>560) THEN FL=1:RETURN 350 E=A/12:FOR G=80 TO 575 STEP V 360 IF G=K THEN RETURN 370 IF O1>0 THEN IF O1<399 THEN PLOT G,O1,0 380 IF E>0 THEN O1=O1-E*(G<MX)+E*(G>=MX) 390 IF G<MX THEN E=E-E/40 ELSE E=E+E/30 400 NEXT G 410 RETURN 420 LOCATE 13,22:PRINT"PLAYER 2":LOCATE 1,24:PRINT CHR$(20);:LOCATE 1,24:INPUT"ENTER ELEVATION (0 TO 90)";AA$:IF AA$="" THEN 420 430 IF ASC(AA$)<48 OR ASC (AA$)>57 THEN 420 ELSE A=VAL(AA$) 440 IF A>90 OR A<0 THEN 420 450 PEN 2:LOCATE 1,24:PRINT CHR$(20);:LOCATE 1,24:PRINT"ENTER VELOCITY (2 TO 10) ";:PEN 1:INPUT VV$:IF VV$="" THEN 450 460 IF ASC(VV$)<49 OR ASC (VV$)>57 THEN 450 ELSE V=VAL(VV$) 470 IF V<2 OR V>10 THEN 450 480 S1=F2:O1=F2 490 MX=376-10*V 500 E=A/12 510 FOR XX=1 TO 10:SOUND 1,1500,(XX+1),(10-XX),3,0,1:NEXT 520 FOR G=560 TO 64 STEP -V 530 IF S1>0 THEN IF S1<399 THEN IF G<544 THEN IF TEST(G,S1)=1 OR TEST(G,S1)=2 THEN K=G:SOUND 1,120,5:SOUND 1,90,4:GOTO 590 540 IF S1>0 THEN IF S1<399 THEN PLOT G,S1,3 550 IF E>0 THEN S1=S1-E*(G>MX)+E*(G<=MX) 560 IF G>MX THEN E=E-E/40 ELSE E=E+E/30 570 NEXT G 580 K=0 590 S1=24.5-S1/16:IF(INT(S1)=Q1 AND K<80) THEN FL = 1:RETURN 600 E=A/12:FOR G=560 TO 64 STEP -V 610 IF G=K THEN RETURN 620 IF O1>0 THEN IF O1<399 THEN PLOT G,O1,0 630 IF E>0 THEN O1=O1-E*(G>MX)+E*(G<=MX) 640 IF G>MX THEN E=E-E/40 ELSE E=E+E/30 650 NEXT G 660 RETURN 670 LOCATE 32,Q2+1:PRINT" " 680 FOR F=1 TO 50:SOUND 1,(F+60),3:NEXT F 690 SC1=SC1+1 700 GOTO 750 710 LOCATE 1,Q1+1:PRINT" " 720 FOR F=1 TO 100:SOUND 1,(F+30),3:NEXT 730 SC2=SC2+1 740 GOTO 750 750 CLS:LOCATE 6,11:PRINT"PLAYER 1 HAS ";SC1;" POINTS":LOCATE 6,14:PRINT"PLAYER 2 HAS ";SC2;" POINTS" 760 LOCATE 3,19:PRINT"PRESS ANY KEY TO PLAY AGAIN" 770 IF INKEY$<>"" THEN 770 780 IF INKEY$="" THEN 780 ELSE CLS:GOTO 80 790 FOR XX=1 TO 600:NEXT:CLS:GOTO 80 800 Q1=0:Q2=10:E=21:V=31 810 PRINT" TANX " 820 PEN 3:LOCATE 1,6:PRINT"The two players take it in turn to enterthe angle and velocity at which theywant to fire and hit their opponent.":PEN 1 830 PEN 2:PRINT:PRINT"The shells must be fired over the hills,but if you are lucky your shell may be able to go through a hill (particulary at high speed.)":PEN 1 840 PEN 3:PRINT:PRINT"To stand the best chance of hitting youropponent, try to use the smallest angle of elevation.":PEN 1 850 PEN 2:LOCATE 1,24:PRINT" PRESS ANY KEY TO START ":PEN 1 860 IF INKEY$="" THEN 860 ELSE CLS:RETURN 870 Q=18-RND*13 880 FOR F=2 TO 29 890 FOR G=21 TO Q STEP -1 900 LOCATE F+1,G+1:PRINT CHR$(233);:IF F=29 THEN PRINT CHR$(233);CHR$(233); 910 IF F=2 THEN LOCATE F-1,G+1:PRINT CHR$(233);CHR$(233); 920 NEXT G 930 Q=Q+RND*4-RND*4 940 IF Q<3 THEN Q=4+RND*2 950 IF Q>20 THEN Q=20 960 NEXT F 970 FOR F=1 TO 21 980 LOCATE 1,F+1:CALL 360:XX=PEEK(367):IF XX<>32 THEN LOCATE 1,F:PEN 2:PRINT CHR$(231);:PEN 1:F1=(25-F)*16+16:Q1=F-1:GOTO 1000 990 NEXT 1000 FOR F=1 TO 21:LOCATE 32,F+1:CALL 360:XX=PEEK(367):IF XX<>32 THEN LOCATE 32,F:PEN 2:PRINT CHR$(232);:PEN 1:F2=(25-F)*16+16:Q2=F-1:RETURN 1010 NEXT 1020 RETURN 1030 SYMBOL AFTER 230 1040 SYMBOL 231,0,1,2,60,56,255,255,127 1050 SYMBOL 232,0,128,64,60,28,255,255,127 1060 SYMBOL 233,170,85,170,85,170,85,170,85 1070 RETURN 1080 RESTORE 1090:FOR X=360 TO 366:READ A:POKE X,A:NEXT:RESTORE :RETURN 1090 DATA 205,96,187,50,111,1,201 1100 INPUT X$:PRINT ASC(X$);:GOTO 1100 |