0 GRAPHICS 8:SCORE=0:KOMPUTER=0 1 Z=0.05 2 TRAJECTORY=1 3 PX1=INT(RND(0)*100)+1:PY1=INT(RND(0)*140)+10:PX2=300-INT(RND(0)*100)+1:PY2=INT(RND(0)*140)+10 10 REM ATARI TANKS GAME 11 REM PROGRAMMED BY MATEUSZ PAWLOSKI 13 COLOR 1 18 GRAPHICS 8:GOSUB 500:? "SPEED":INPUT V:? "ANGLE":INPUT A 19 A=((180-A)*3.14159)/180 20 FOR T=Z TO 30 STEP Z 21 X=V*T*COS(A) 22 Y=-(V*T*SIN(A)-((9.8*T*T)/2)) 28 IF (X+PX2+5)<0 THEN GOTO 101 29 IF (Y+PY2-2)>160 THEN GOTO 101 30 IF X+PX2+5<0 OR X+PX2+5>319 THEN GOTO 100 31 IF Y+PY2-2<0 OR Y+PY2-2>159 THEN GOTO 100 90 PLOT X+PX2+5,PY2+Y-2 94 GOSUB 700 100 NEXT T 101 GOTO 900 500 REM DRAW TANKS 501 PLOT PX1,PY1:DRAWTO PX1+10,PY1 502 PLOT PX1-1,PY1+1:DRAWTO PX1+11,PY1+1 503 PLOT PX1,PY1+2:DRAWTO PX1+10,PY1+2 504 PLOT PX1+3,PY1-1:DRAWTO PX1+7,PY1-1 505 PLOT PX1+4,PY1-2:DRAWTO PX1+6,PY1-2 506 PLOT PX2,PY2:DRAWTO PX2+10,PY2 507 PLOT PX2-1,PY2+1:DRAWTO PX2+11,PY2+1 508 PLOT PX2,PY2+2:DRAWTO PX2+10,PY2+2 509 PLOT PX2+3,PY2-1:DRAWTO PX2+7,PY2-1 510 PLOT PX2+4,PY2-2:DRAWTO PX2+6,PY2-2 511 PLOT PX1+7,PY1-3 512 PLOT PX1+8,PY1-4 513 PLOT PX2+3,PY2-3 514 PLOT PX2+2,PY2-4 515 FOR P=0 TO KOMPUTER 516 IF P>0 THEN PLOT 10+P*4,2:DRAWTO 10+P*4,7 517 NEXT P 520 FOR P=0 TO SCORE 521 IF P>0 THEN PLOT 280+P*4,2:DRAWTO 280+P*4,7 522 NEXT P 600 RETURN 700 REM COLLISION CHECK 701 IF (X+PX2)>PX1 AND (X+PX2)<(PX1+10) AND (Y+PY2)>(PY1-5) AND (Y+PY2)<(PY1+5) THEN SCORE=SCORE+1:GOTO 1 800 RETURN 900 GRAPHICS 8:GOSUB 500:V=30:A2=0:GOSUB 2000 901 A=A2 902 FOR T=Z TO 30 STEP Z 903 X=V*T*COS(A) 904 Y=-(V*T*SIN(A)-((9.8*T*T)/2)) 905 IF (X+PX1+5)<0 THEN GOTO 912 906 IF (Y+PY1-2)>160 THEN GOTO 912 907 IF X+PX1+5<0 OR X+PX1+5>319 THEN GOTO 911 908 IF Y+PY1-2<0 OR Y+PY1-2>159 THEN GOTO 911 909 PLOT X+PX1+5,PY1+Y-2 910 GOSUB 1000 911 NEXT T 912 GOTO 18 1000 REM COLLISION CHECK 1001 IF (X+PX1)>PX2 AND (X+PX1)<(PX2+10) AND (Y+PY1)>(PY2-5) AND (Y+PY1)<(PY2+5) THEN KOMPUTER=KOMPUTER+1:GOTO 1 1002 RETURN 2000 REM CALCULATE ANGLE AND VELOCITY 2001 V=30 2002 DELTA=(PY1-PY2) 2003 DIST=(PX2-PX1) 2010 C1=((V*V*V*V)-9.8*((9.8*DIST*DIST)+(2*DELTA*V*V))) 2020 IF C1<0 THEN V=V+1:GOTO 2002 2030 C2=((V*V)+SQR(C1))/(9.8*DIST) 2040 A2=ATN(C2) 2100 RETURN