10 _TURBO ON 20 DEFINT A-Z:COLOR 15,11,0 30 SCREEN 5:CLS:COLOR=(1,1,0,0):COLOR=(2,1,0,0) 40 COLOR=(8,7,6,4):COLOR=(9,7,5,1):COLOR=(11,5,3,0) 50 LINE(2,2)-(253,209),1,BF 60 SPRITE$(1)=CHR$(224)+CHR$(160)+CHR$(224) 70 SPRITE$(2)=CHR$(96)+CHR$(240)+CHR$(240)+CHR$(96) 80 F=1:XX=124:YX=1:X1=8:Y1=7:X2=116:Y2=115:M1=1:M2=2:S=1 90 PUT SPRITE 1,(XX-1,YX-2),8,1:GOTO 250 100 IF STRIG(0) GOTO 770 110 K=STICK(0):IF (K AND 1)=0 GOTO 250 120 ON S GOTO 130,180 130 IF K=3 THEN IF POINT(XX+1,YX)=F THEN S=2:A1=XX+1:B1=YX:GOTO 180 ELSE IF XX<254 THEN XX=XX+1:GOTO 90 ELSE 250 140 IF K=7 THEN IF POINT(XX-1,YX)=F THEN S=2:A1=XX-1:B1=YX:GOTO 190 ELSE IF XX>1 THEN XX=XX-1:GOTO 90 ELSE 250 150 IF K=1 THEN IF POINT(XX,YX-1)=F THEN S=2:A1=XX:B1=YX-1:GOTO 200 ELSE IF YX>1 THEN YX=YX-1:GOTO 90 ELSE 250 160 IF K=5 THEN IF POINT(XX,YX+1)=F THEN S=2:A1=XX:B1=YX+1:GOTO 210 ELSE IF YX<210 THEN YX=YX+1:GOTO 90 ELSE 250 170 PUT SPRITE 1,(XX-1,YX-2),8,1:PSET(XX,YX),9: GOTO 250 180 IF K=3 THEN XX=XX+1:IF POINT(XX,YX)=9 THEN 740 ELSE IF POINT(XX,YX)=11 THEN S=1:A2=XX-1:B2=YX:GOTO 610 ELSE 170 190 IF K=7 THEN XX=XX-1:IF POINT(XX,YX)=9 THEN 740 ELSE IF POINT(XX,YX)=11 THEN S=1:A2=XX+1:B2=YX:GOTO 610 ELSE 170 200 IF K=1 THEN YX=YX-1:IF POINT(XX,YX)=9 THEN 740 ELSE IF POINT(XX,YX)=11 THEN S=1:B2=YX+1:A2=XX:GOTO 610 ELSE 170 210 IF K=5 THEN YX=YX+1:IF POINT(XX,YX)=9 THEN 740 ELSE IF POINT(XX,YX)=11 THEN S=1:B2=YX:A2=XX:GOTO 610 ELSE 170 220 PUT SPRITE 2,(X1,Y1),7,2:ON M1 GOTO 280,320,360,400 230 PUT SPRITE 2,(X1,Y1),7,2 240 IF (VDP(-2)AND 64)=0 GOTO 240 ELSE 440 250 ON M1 GOTO 260,300,340,380 260 IF POINT(X1+5,Y1+5)=9 THEN 740 270 IF POINT(X1+5,Y1+5)=11 THEN 220 ELSE X1=X1+1:Y1=Y1+1:GOTO 230 280 IF POINT(X1+5,Y1)=11 THEN M1=4 ELSE M1=2 290 GOTO 440 300 IF POINT(X1+5,Y1-1)=9 THEN 740 310 IF POINT(X1+5,Y1-1)=11 THEN 220 ELSE X1=X1+1:Y1=Y1-1:GOTO 230 320 IF POINT(X1+5,Y1+1)=11 THEN M1=3 ELSE M1=1 330 GOTO 440 340 IF POINT(X1-1,Y1-1)=9 THEN 740 350 IF POINT(X1-1,Y1-1)=11 THEN 220 ELSE X1=X1-1:Y1=Y1-1:GOTO 230 360 IF POINT(X1-1,Y1+1)=11 THEN M1=2 ELSE M1=4 370 GOTO 440 380 IF POINT(X1-1,Y1+5)=9 THEN 740 390 IF POINT(X1-1,Y1+5)=11 THEN 220 ELSE X1=X1-1:Y1=Y1+1:GOTO 230 400 IF POINT(X1-1,Y1)=11 THEN M1=1 ELSE M1=3 410 GOTO 440 420 PUT SPRITE 3,(X2,Y2),7,2:ON M2 GOTO 470,510,550,590 430 PUT SPRITE 3,(X2,Y2),7,2:GOTO 100 440 ON M2 GOTO 450,490,530,570 450 IF POINT(X2+5,Y2+5)=9 THEN 740 460 IF POINT(X2+5,Y2+5)=11 THEN 420 ELSE X2=X2+1:Y2=Y2+1:GOTO 430 470 IF POINT(X2+5,Y2)=11 THEN M2=4 ELSE M2=2 480 GOTO 100 490 IF POINT(X2+5,Y2-1)=9 THEN 740 500 IF POINT(X2+5,Y2-1)=11 THEN 420ELSE X2=X2+1:Y2=Y2-1:GOTO 430 510 IF POINT(X2+5,Y2+1)=11 THEN M2=3 ELSE M2=1 520 GOTO 100 530 IF POINT(X2-1,Y2-1)=9 THEN 740 540 IF POINT(X2-1,Y2-1)=11 THEN 420ELSE X2=X2-1:Y2=Y2-1:GOTO 430 550 IF POINT(X2-1,Y2+1)=11 THEN M2=2 ELSE M2=4 560 GOTO 100 570 IF POINT(X2-1,Y2+5)=9 THEN 740 580 IF POINT(X2-1,Y2+5)=11 THEN 420 ELSE X2=X2-1:Y2=Y2+1:GOTO 430 590 IF POINT(X2-1,Y2)=11 THEN M2=1 ELSE M2=3 600 GOTO 100 610 PUT SPRITE 1,(XX-1,YX-2),8,1:A=A2:B=B2 620 PSET(A,B),9:PAINT(A,B),11,F 630 PAINT(X1,Y1),(F XOR 3),11:IF (POINT(X2,Y2)=F) THEN PAINT(X2,Y2),(F XOR 3),11 640 IF POINT(A1+4,B1)=F THEN PAINT(A1+4,B1),11:GOTO 720 650 IF POINT(A1-4,B1)=F THEN PAINT(A1-4,B1),11:GOTO 720 660 IF POINT(A1,B1+4)=F THEN PAINT(A1,B1+4),11:GOTO 720 670 IF POINT(A1,B1-4)=F THEN PAINT(A1,B1-4),11:GOTO 720 680 IF POINT(A2+4,B2)=F THEN PAINT(A2+4,B2),11:GOTO 720 690 IF POINT(A2-4,B2)=F THEN PAINT(A2-4,B2),11:GOTO 720 700 IF POINT(A2,B2+4)=F THEN PAINT(A2,B2+4),11:GOTO 720 710 IF POINT(A2,B2-4)=F THEN PAINT(A2,B2-4),11:GOTO 720 720 F=F XOR 3 730 GOTO 250 740 FOR I=0 TO 150 750 FOR K=7 TO 0 STEP-1:COLOR=(11,K,0,0):NEXT K,I 760 GOTO 30 770 COLOR15,0,0:END