10 CLEAR15 W=WINDOW (0,0,10,6)20 CLS30 INPUT "vuoi giocare contro di me (s/n) ";A$35 IF A$="s" THEN INPUT "mi dai degli angoli (0-4) ";AN36 IF AN<0 OR AN>4 THEN 3540 IF A$="s" OR A$="S" THEN A%=150 CLS60 SCALE -95,416,0,25570 KX=3980 KY=3190 B$="#"100 A1=9110 A2=33120 B1=7130 B2=26140 C1=19150 C2=23160 D1=15170 D2=18180 FOR J=0 TO 8190 FOR K=0 TO 3200 IF K=3 THEN 220210 LINE (0,J*KY+K)-(312,J*KY+K)220 LINE (J*KX+K,0)-(J*KX+K,250)230 NEXT K240 NEXT J250 GOTO 430260 X0=X*KX+A1270 X1=X*KX+A2280 Y0=Y*KY+B1290 Y1=Y*KY+B2300 RETURN310 GOSUB 260320 P(X,Y)=1330 LINE (X0,Y0)-(X1,Y1),,BF340 RETURN350 GOSUB 260360 P(X,Y)=2370 LINE (X0,Y0)-(X1,Y1),0,BF380 LINE (X0,Y0)-(X1,Y1),,B390 LINE (X0+1,Y0+1)-(X1-1,Y1-1),,B400 LINE (X0,Y0)-(X1,Y1)410 LINE (X0,Y1)-(X1,Y0)420 RETURN430 X=3440 Y=3450 GOSUB 310460 X=4470 Y=3480 GOSUB 350490 X=4500 Y=4510 GOSUB 310520 X=3530 Y=4540 GOSUB 350542 FOR X=0 TO 7 STEP 7543 FOR Y=0 TO 7 STEP 7544 IF AN=0 THEN 550545 GOSUB 350546 AN=AN-1547 NEXT Y548 NEXT X550 X=-2560 Y=5570 GOSUB 260580 GOSUB 330590 X=9600 GOSUB 260610 GOSUB 370620 T=-1630 GOTO 1880640 IF LEN(INKEY$)>0 THEN 640645 VY=Y650 VX=X660 Y=5670 X=-2680 IF T<0 THEN X=9690 GOSUB 260700 LINE (X0,Y0)-(X1,Y1),0,BF710 X=VX720 Y=VY730 GOSUB 260740 LINE (X0,Y0)-(X1,Y1),0,BF750 LINE (X0+10,Y0)-(X0+14,Y1),,BF760 LINE (X0,Y0+8)-(X1,Y0+11),,BF770 B$="#"780 FOR J=1 TO 80790 A$=INKEY$800 IF LEN(A$)=0 THEN 830810 B$=A$820 GOTO 840830 NEXT J840 IF LEN(INKEY$)>0 THEN 840850 IF X<0 OR X>8 THEN 920860 ON P(X,Y) GOTO 890,910870 LINE (X0,Y0)-(X1,Y1),0,BF880 GOTO 920890 GOSUB 310900 GOTO 920910 GOSUB 350920 VX=X930 VY=Y940 IF T<0 THEN 1000950 X=-2960 Y=5970 GOSUB 260980 GOSUB 330990 GOTO 10401000 X=91010 Y=51020 GOSUB 2601030 GOSUB 3701040 X=VX1050 Y=VY1060 FOR J=0 TO 501070 A$=INKEY$1080 IF LEN(A$)>0 THEN B$=A$1090 IF B$=A$ THEN 11101100 NEXT J1110 IF B$="8" OR B$="2" THEN 11601120 IF B$="4" OR B$="6" THEN 12201130 IF B$=" " THEN 13101135 IF A%=1 THEN 6401140 IF B$="c" AND TP+TM=4 THEN 13201150 GOTO 6401160 DX=01170 DY=11180 IF B$="2" THEN DY=-11190 IF Y+DY<0 OR Y+DY>7 THEN 6401200 IF X>8 OR X<0 THEN 6401210 GOTO 12801220 DY=01230 DX=11240 IF B$="4" THEN DX=-11250 IF X=-2 AND DX=+1 THEN X=-11260 IF X=9 AND DX=-1 THEN X=81270 IF X+DX>7.5 OR X+DX<-.5 THEN 6401280 X=X+DX1290 Y=Y+DY1300 GOTO 6401310 IF X<0 OR X>7 THEN 6401315 ON P(X,Y) GOTO 640,6401320 RETURN1330 TP=01340 TM=01350 Z=01360 VX=X1370 VY=Y1380 B%=01390 FOR X=0 TO 71400 FOR Y=0 TO 71410 ON P(X,Y) GOTO 1450,14701420 IF Z>0 THEN 14801430 GOSUB 17201440 GOTO 14801450 TP=TP+11460 GOTO 14801470 TM=TM+11480 NEXT Y1490 NEXT X1500 X=VX1510 Y=VY1520 CURSOR (1,14)01530 PRINT TP;1535 IF T<0 THEN 15601540 CURSOR (1,16)01550 PRINT " ";1555 GOTO 15801560 CURSOR (70,16)01570 PRINT " ";1580 CURSOR (70,14)01590 PRINT TM;1600 IF TP+TM=64 THEN 23601602 IF T<0 THEN F2=01603 IF T>0 THEN F1=01605 IF TP=0 OR TM=0 THEN 23601606 F0=01610 IF Z>0 THEN 16601614 IF T<0 THEN F2=11615 IF T>0 THEN F1=11620 J=11630 IF T<0 THEN J=551640 CURSOR (J,12),01650 PRINT "bloccato";1655 IF F1=1 AND F2=1 THEN 23601657 F0=11660 RETURN1670 GOSUB 6401680 IF B$="c" THEN 18801690 B%=11700 GOSUB 17201710 GOTO 18301720 Z=01730 ON P(X,Y) GOTO 1820,18201740 FOR J=-1 TO 11760 IF J+X<0 OR J+X>7 THEN 18101770 FOR J1=-1 TO 11780 IF J1+Y<0 OR J1+Y>7 THEN 18001790 ON P(J+X,J1+Y) GOSUB 1940,20201800 NEXT J11810 NEXT J1820 RETURN1830 IF Z=0 THEN 16701840 IF T<0 THEN 18701850 GOSUB 3101860 GOTO 18801870 GOSUB 3501880 Y=51890 X=-21900 T=-T1910 IF T<0 THEN X=91915 GOSUB 13301916 IF F0=1 THEN 18801920 IF T<0 AND A%=1 THEN 30001930 GOTO 16701940 IF T<0 THEN 19601950 RETURN1960 GOSUB 20401970 IF Z1<>0 AND B%=1 THEN 19901980 RETURN1990 GOSUB 20502010 RETURN2020 IF T>0 THEN 19602030 RETURN2040 Z1=02050 FOR M=1 TO 82060 J2=J*M+X2070 J3=J1*M+Y2080 IF J2<0 OR J2>7 THEN 23502090 IF J3<0 OR J3>7 THEN 23502100 ON P(J2,J3) GOTO 2120,22302110 RETURN2120 IF T>0 THEN 23302130 IF Z1=0 THEN 22102140 VX=X2150 VY=Y2160 X=J22170 Y=J32180 GOSUB 3502190 X=VX2200 Y=VY2210 NEXT M2220 RETURN2230 IF T<0 THEN 23302240 IF Z1=0 THEN 22102250 VX=X2260 VY=Y2270 X=J22280 Y=J32290 GOSUB 3102300 X=VX2310 Y=VY2320 GOTO 22102330 Z1=12340 Z=12350 RETURN2360 IF INKEY$="/" THEN 102370 GOTO 23603000 B%=03010 FOR X=0 TO 7 STEP 73020 FOR Y=0 TO 7 STEP 73030 Z=03040 IF P(X,Y)=0 THEN GOSUB 17203050 IF Z>0 THEN 50003060 NEXT Y3070 NEXT X3075 GOTO 60003080 IF P%=1 THEN 32503090 P%=13100 FOR X=2 TO 53110 FOR Y=2 TO 53120 IF P(X,Y)=0 THEN 32003130 NEXT Y3140 NEXT X3150 GOTO 35003200 P%=03210 GOSUB 17203220 IF Z=0 THEN 31303230 GOTO 50003250 FOR J6=0 TO 7 STEP 73260 FOR J7=0 TO 7 STEP 73280 IF P(J6,J7)=2 THEN 33303290 NEXT J73300 NEXT J63310 GOTO 35003330 FOR X=J6-1 TO J6+13340 IF X<0 OR X>7 THEN 34003350 FOR Y=J7-1 TO J7+13360 IF Y<0 OR Y>7 THEN 33903370 IF P(X,Y)=0 THEN GOSUB 17203380 IF Z>0 THEN 50003390 NEXT Y3400 NEXT X3500 FOR X=2 TO 53510 FOR Y=1 TO 6 STEP 53520 GOSUB 40003530 IF Z>0 THEN 50003540 NEXT Y3550 NEXT X3560 FOR X=2 TO 53570 FOR Y=0 TO 7 STEP 73580 GOSUB 40003590 IF Z>0 THEN 50003595 NEXT Y3596 NEXT X3597 IF WW=1 THEN 36003598 WW=13599 GOTO 61703600 GOTO 71003609 FOR X=0 TO 73610 FOR Y=0 TO 73620 IF P(X,Y)=0 THEN GOSUB 17203630 IF Z>0 THEN 50003640 NEXT Y3650 NEXT X3660 GOTO 15204000 SX=X4010 SY=Y4020 IF P(X,Y)=0 THEN GOSUB 17204030 IF Z>0 THEN 41104040 X=SY4050 Y=SX4060 IF P(X,Y)=0 THEN GOSUB 17204070 IF Z>0 THEN 41104080 X=SX4090 Y=SY4110 RETURN5000 IF LEN(INKEY$)>0 THEN 50005010 GOSUB 2605020 LINE (X0+10,Y0)-(X0+14,Y1),,BF5030 LINE (X0,Y0+8)-(X1,Y0+11),,BF5040 IF INKEY$><" " THEN 50405050 B%=15060 GOSUB 17205070 GOTO 18406000 FOR J6=0 TO 7 STEP 76010 FOR J7=0 TO 7 STEP 76020 IF P(J6,J7)=2 THEN 60606030 NEXT J76040 NEXT J66050 GOTO 61706060 DY=06070 DX=16080 IF J6=7 THEN DX=-16090 GOSUB 63006100 IF Z>0 THEN 50006110 DX=06120 DY=16130 IF J7=7 THEN DY=-16140 GOSUB 63006150 IF Z>0 THEN 50006160 GOTO 60306170 FOR J6=0 TO 7 STEP 76180 D%=16190 IF J6=7 THEN D%=-16200 DX=D%6210 DY=06220 GOSUB 65006230 IF Z>0 THEN 50006240 DX=06250 DY=D%6260 GOSUB 65006270 IF Z>0 THEN 50006280 NEXT J66290 GOTO 30806300 X=J66310 Y=J76320 V%=06330 X=X+DX6340 Y=Y+DY6350 IF X>7 OR X<0 THEN 63906360 IF Y<0 OR Y>7 THEN 63906370 ON P(X,Y) GOTO 6400,64206380 GOSUB 17206390 RETURN6400 V%=16410 GOTO 63306420 IF V%=1 THEN 63906430 GOTO 63306500 X=J66510 Y=J66520 V%=16530 IF P(X,Y)=0 THEN V%=06540 X=X+DX6550 Y=Y+DY6560 IF V%=0 THEN V%=P(X,Y)6570 FOR J7=2-WW TO 5+WW6580 X=X+DX6590 Y=Y+DY6600 IF P(X,Y)>0 THEN 68006610 GOSUB 17206620 IF Z=0 THEN 67706630 J8=X6640 J9=Y6650 M%=06660 J8=J8+DX6670 J9=J9+DY6680 IF J8<0 OR J8>7 THEN 67306690 IF J9<0 OR J9>7 THEN 67306700 IF P(J8,J9)=0 THEN 67406710 M%=P(J8,J9)6720 GOTO 66606730 M%=16740 IF M%=1 AND V%=1 THEN 67606750 IF M%=1 OR V%=1 THEN 67706760 GOTO 70006770 Z=06780 V%=06790 GOTO 68106800 IF V%=0 THEN V%=P(X,Y)6810 NEXT J76820 RETURN7000 IF J7<3 OR J7>4 THEN 70207010 RETURN7020 QX=67030 QY=67040 IF X<3 THEN QX=17050 IF Y<3 THEN QY=17060 IF P(QX,QY)=1 THEN 67707070 RETURN7100 FOR X=1 TO 6 STEP 57110 FOR Y=1 TO 6 STEP 57115 Z=157120 IF P(X,Y)=0 THEN GOSUB 17207130 IF Z>0 THEN 73007140 DX=17150 DY=17160 IF X=6 THEN DX=-17170 IF Y=6 THEN DY=-17180 IF P(X-DX,Y-DY)=2 THEN 50007190 IF P(X-DX,Y-DY)=1 THEN 73007200 M%=07210 V%=07220 J6=X7230 J7=Y7240 J6=J6+DX7250 J7=J7+DX7260 IF J6<0 OR J6>7 THEN 74007270 IF J7<0 OR J7>7 THEN 74007280 ON P(J6,J7) GOTO 7450,75007290 GOTO 75507300 NEXT Y7310 NEXT X7320 Z=07330 GOTO 36097400 IF M%=1 THEN 73007410 GOTO 50007450 IF M%=2 THEN 73007460 M%=17470 GOTO 72407500 M%=27510 GOTO 72407550 IF M%=0 OR M%=2 THEN 50007560 GOTO 7300