9 LET K=0 10 PRINT"TENTO PROGRAM HRAJE DAMU.POCITAC MA KAMENY X," 20 PRINT"VY MATE KAMENY 0.POCITAC HRAJE PRVY.POZN.:POLE" 30 PRINT"SE ZADAVAJI VE TVARU (X,Y).POLE 1,1 JE DOLE VLEVO!" 40 PRINT"NENI PRIPUSTNY DVOJSKOK,JINAK VAS KAMEN ZMIZI!" 50 PRINT"(TOTEZ PLATI PRO TROJSKOK)." 60 PRINT"CEKEJTE NA ZAHAJENI POCITACEM!" 70 LET G=-1 80 DIM R(50) 90 LET L=-1 100 DIM S(10,10) 110 DATA 1,0,1,0,0,0,-1,0,0,1,0,0,0,-1,0,-1,15 120 FOR X=1 TO 8 130 FOR Y=1 TO 8 140 READ J 150 IF J=15 THEN 180 160 LET S(X,Y)=J 170 GO TO 200 180 RESTORE 190 READ S(X,Y) 200 NEXT Y 210 NEXT X 220 REM 230 LET L=-1*L 240 FOR X=1 TO 8 250 FOR Y=1 TO 8 260 IF S(X,Y)=0 THEN 350 270 IF G GT 0 THEN 300 280 IF S(X,Y) GT 0 THEN 350 290 GO TO 310 300 IF S(X,Y) LT 0 THEN 350 310 IF ABS(S(X,Y)) NE 1 THEN 330 320 GOSUB 430 330 IF ABS(S(X,Y)) NE 2 THEN 350 340 GOSUB 650 350 IF X NE 8 THEN 380 360 IF L=1 THEN 380 370 RETURN 380 NEXT Y 390 NEXT X 400 PRINT 410 GOSUB 1140 420 GOTO 230 430 FOR A=-1 TO 1 STEP 2 440 LET U=X+A 450 LET V=Y+G 460 IF U LT 1 THEN 630 470 IF U GT 8 THEN 630 480 IF V LT 1 THEN 630 490 IF V GT 8 THEN 630 500 IF S(U,V) NE 0 THEN 530 510 GOSUB 910 520 GOTO 630 530 IF S(U,V)=G THEN 630 540 IF S(U,V)=2*G THEN 630 550 LET U=U+A 560 LET V=V+G 570 IF U LT 1 THEN 630 580 IF U GT 8 THEN 630 590 IF V LT 1 THEN 630 600 IF V GT 8 THEN 630 610 IF S(U,V) NE 0 THEN 630 620 GOSUB 910 630 NEXT A 640 RETURN 650 REM *** POHYB DAMY 660 FOR A=-1 TO 1 STEP 2 670 FOR B=-1 TO 1 STEP 2 680 LET U=X+A 690 LET V=Y+B 700 IF U LT 1 THEN 870 710 IF U GT 8 THEN 870 720 IF V LT 1 THEN 870 730 IF V GT 8 THEN 870 740 IF S(U,V) NE 0 THEN 770 750 GOSUB 910 760 GOTO 870 770 IF S(U,V)=G THEN 870 780 IF S(U,V)=2*G THEN 870 790 LET U=U+A 800 LET V=V+B 810 IF U LT 1 THEN 870 820 IF U GT 8 THEN 870 830 IF V LT 1 THEN 870 840 IF V GT 8 THEN 870 850 IF S(U,V) NE THEN 870 860 GOSUB 910 870 NEXT B 880 NEXT A 890 RETURN 900 GOTO 1420 910 REM 920 LET P=P+1 930 IF P=K THEN 1230 940 IF U NE (4.5+(3.5*6)) THEN 960 950 LET Q=Q+2 960 IF X NE (4.5-(3.5*6)) THEN 980 970 LET Q=Q-2 980 REM 990 IF U NE 1 THEN 1010 1000 LET Q=Q+1 1010 IF U NE 8 THEN 1030 1020 LET Q=Q+1 1030 FOR C=-1 TO 1 STEP 2 1040 IF S(U+C,U+G) LT 1 THEN 1080 1050 LET Q=Q-1 1060 IF S(U-C,U-G) NE 0 THEN 1080 1070 LET Q=Q-1 1080 REM *** TO BYLA SEKCE VYHODNOCOVANI 1090 REM 1100 NEXTC 1110 LET R(P)=Q 1120 LET Q=0 1130 RETURN 1140 IF P=0 THEN 1880 1150 FOR J=10 TO -10 STEP 1 1160 FOR F=1 TO P 1170 IF R(F)=J THEN 1200 1180 NEXT F 1190 NEXT J 1200 LET K=F+P 1210 GOSUB 230 1220 RETURN 1230 PRINT" HRAJI Z ("X;Y") NA ("U;V") 1240 LET F=0 1250 LET P=0 1260 LET K=0 1270 IF V NE (4.5+(3.5*6)) THEN 1300 1280 LET S(U,V)=2*6 1290 GOTO 1310 1300 LET S(U,V)=S(X,Y) 1310 LET S(X,Y)=0 1320 IF ABS((X-U) NE 2 THEN 1340 1330 LET S((X+U)/2,(Y+V)/2)=0 1340 PRINT"SACHOVNICI?" 1350 INPUT D 1360 IF D NE 1 THEN 1390 1370 GOSUB 1410 1380 RETURN 1390 GOSUB 1580 1400 RETURN 1410 PRINT 1420 FOR Y=8 TO 1 STEP -1 1430 FOR X=1 TO 8 1440 LET I=2*X 1450 IF S(X,Y) NE 0 THEN 1470 1460 PRINT TAB(I)"."; 1470 IF S(X,Y) NE 1 THEN 1490 1480 PRINT TAB(I)"0"; 1490 IF S(X,Y) NE -1 THEN 1510 1500 PRINT TAB(I)"X"; 1510 IF S(X,Y) NE -2 THEN 1530 1520 PRINT TAB(I)"X";TAB(I)"*"; 1530 IF S(X,Y) NE 2 THEN 1550 1540 PRINT TAB(I)"Q";TAB(I)"*"; 1550 NEXT X 1560 PRINT 1570 NEXT Y 1580 PRINT 1590 PRINT"ODKUD?"; 1600 INPUT E,H 1610 LET X=E 1620 LET Y=H 1630 IF S(X,Y) NE 0 THEN 1670 1640 PRINT"POHYB NA MISTE ZAKAZAN!" 1650 PRINT 1660 GOTO 1590 1670 PRINT"KAM?"; 1680 INPUT A,B 1690 LET X=A 1700 LET Y=V 1710 IF S(X,Y)=0 THEN 1750 1720 PRINT"TOTO POLE JE OBSAZENO." 1730 PRINT 1740 GOTO 1670 1750 LET S(A,B)=S(E,H) 1760 LET S(A,B)=S(E,H) 1770 LET S(E,H)=0 1780 T=(4.5-(3.5*6)) 1790 IF ABS(E-A( NE 2 THEN 1810 1800 LET S((E+A)/2,(H+B)/2)=0 1810 IF S(A,B)=-2*6 1830 FOR X=8 TO 8 1840 FOR Y=8 TO 8 1850 RETURN 1860 NEXT Y 1870 NEXT X 1880 PRINT" VYTECNE, VYHRAL JSTE!" 1890 PRINT 1900 PRINT 1910 PRINT" - VZDAVAM TO!" 1920 END