10 REM 20 REM ******** * * * f r a n c i a s a k k * * * ******** 30 CLS 50 DIM KIV(50) 60 DIM K(50) 70 DIM P1$(86): DIM Q1$(86) 80 DIM P2$(86): DIM Q2$(86) 90 DIM U$(50) 100 DIM UT$(50, 10) 110 DIM FOGL(8, 8) 120 DIM C$(10, 10) 130 N = 1 140 KIV(1) = 1 150 LEP$ = "(v)": ALD$ = "(s)" 160 DATA -1,1,0,1,1,1,-1,0,1,0,-1,-1,0,-1,1,-1 170 DATA -2,1,-2,-1,2,1,2,-1,-1,2,1,2,-1,-2,1,-2 180 DATA B,H,F,V,K,F,H,B 190 Y$(1) = "*": Y$(2) = "F": Y$(3) = "H": Y$(4) = "B": Y$(5) = "V": Y$(6) = "K" 200 C0$(0) = " ": C0$(1) = "" 210 Q1$(42) = "/\": P1$(42) = " /\ " 220 Q1$(70) = "/+\": P1$(70) = " /\ " 230 Q1$(72) = "/\ ": P1$(72) = "/۳ " 240 Q1$(66) = " ": P1$(66) = "ڿ_ڿ" 250 Q1$(86) = "": P1$(86) = "/\/\" 260 Q1$(75) = "\/": P1$(75) = "/\/\" 270 Q2$(42) = "/\": P2$(42) = " /\ " 280 Q2$(70) = "/+\": P2$(70) = " /\ " 290 Q2$(72) = "/\ ": P2$(72) = "/ " 300 Q2$(66) = " ": P2$(66) = "ڿ_ڿ" 310 Q2$(86) = "߱": P2$(86) = "/\/\" 320 Q2$(75) = "\/": P2$(75) = "/\/\" 330 FOR S = 1 TO 8 340 A$(S) = CHR$(S + 96) 350 B$(S) = RIGHT$(STR$(S), 1) 360 Z(S) = S 370 NEXT S 380 FOR I = 1 TO 23 390 LOCATE I, 1: PRINT RIGHT$(STR$(I), 2); "." 400 NEXT I 410 LOCATE 2, 24: PRINT "" 420 FOR X1 = 25 TO 65 430 LOCATE 2, X1: PRINT "": LOCATE 1, 5 * INT(X1 / 5) + 2: PRINT A$(INT((X1 - 20) / 5)) 440 NEXT X1 450 LOCATE 2, 66: PRINT "" 460 FOR X2 = 3 TO 18 470 LOCATE X2, 66: PRINT "": LOCATE X2, 68: PRINT B$(INT((18 - X2) / 2) + 1) 480 NEXT X2 490 LOCATE 19, 66: PRINT "" 500 FOR X3 = 65 TO 25 STEP -1 510 LOCATE 19, X3: PRINT "": LOCATE 20, 5 * INT(X3 / 5) + 2: PRINT A$(INT((X3 - 20) / 5)) 520 NEXT X3 530 LOCATE 19, 24: PRINT "" 540 FOR X4 = 18 TO 3 STEP -1 550 LOCATE X4, 24: PRINT "": LOCATE X4, 22: PRINT B$(INT((18 - X4) / 2) + 1) 560 NEXT X4 570 FOR I = 1 TO 8: FOR J = 1 TO 8 580 BRE = I: SZRA = J: BROL = I: SZROL = J 590 GOSUB 2710 600 NEXT J: NEXT I 610 REM 620 REM ************* a kezdlls bevitele ******************* 630 LOCATE 22, 40: PRINT "Szabvnytbla? (i)" 640 A$ = INKEY$: IF A$ = "" THEN 640 650 LOCATE 22, 40: PRINT " " 660 IF A$ <> "i" AND A$ <> "I" THEN 830 670 E = 1: F = 2: SZIN$ = "(v)" 680 RESTORE 180 690 BROL = 10: SZROL = 4 700 SZRA = E 710 FOR I = 1 TO 8 720 READ Z$ 730 C$(I, E) = SZIN$ + Z$ 740 BRE = I: GOSUB 2710 750 NEXT I 760 SZRA = F 770 FOR I = 1 TO 8 780 C$(I, F) = SZIN$ + "*" 790 BRE = I: GOSUB 2710 800 NEXT I 810 IF B = 7 THEN B = 0: GOTO 1070 820 SZIN$ = "(s)": E = 8: F = 7: B = 7: GOTO 680 830 IF SZIN$ = "(s)" THEN LOCATE 22, 40: PRINT "Stt? ": SOUND 2000, .3: GOTO 850 840 LOCATE 22, 40: PRINT "Vilgos?": SZIN$ = "(v)" 850 FOR B = 1 TO 8 860 FOR A = 1 TO 8 870 IF FOGL(A, B) = 1 THEN 1020 880 LOCATE 23, 50: PRINT A$(A); B$(B); "?" 890 LOCATE 21, 30: PRINT " " 900 T$ = INKEY$: IF T$ = "" THEN 900 910 IF T$ = CHR$(13) THEN 1030 920 IF T$ = " " THEN 1020 930 FOR I = 1 TO 6 940 IF T$ = Y$(I) THEN 970 950 NEXT I 960 SOUND 2000, .3: LOCATE 21, 30: PRINT "rossz bb!": GOTO 900 970 LOCATE 21, 30: PRINT " " 980 FOGL(A, B) = 1 990 C$(A, B) = SZIN$ + T$ 1000 BROL = 10: SZROL = 4 1010 BRE = A: SZRA = B: GOSUB 2710 1020 NEXT A 1030 NEXT B 1040 IF SZIN$ = "(s)" THEN 1070 1050 SZIN$ = "(s)": GOTO 830 1060 REM 1070 LOCATE 23, 50: PRINT " " 1080 LOCATE 22, 40: PRINT " " 1090 REM ****** gyalogtvltozsok ********** 1100 RESTORE 180 1110 BROL = 10: SZROL = 4: SZRA = 8 1120 FOR I = 1 TO 8 1130 READ TIS$ 1140 IF C$(I, 8) = "(v)*" THEN C$(I, 8) = "(v)" + TIS$ ELSE 1160 1150 BRE = I: GOSUB 2710 1160 NEXT I 1170 RESTORE 180 1180 BROL = 10: SZROL = 4: SZRA = 1 1190 FOR J = 1 TO 8 1200 READ TIS$ 1210 IF C$(J, 1) = "(s)*" THEN C$(J, 1) = "(s)" + TIS$ ELSE 1230 1220 BRE = J: GOSUB 2710 1230 NEXT J 1240 REM **************** van-e tsi lehetsg? **************** 1250 K(N) = 1 1260 FOR A = 1 TO 8 1270 FOR B = 1 TO 8 1280 IF MID$(C$(A, B), 1, 3) = ALD$ THEN 1360 1290 F$ = RIGHT$(C$(A, B), 1) 1300 IF F$ = "*" THEN GOSUB 1410 1310 IF F$ = "H" THEN GOSUB 1540 1320 IF F$ = "F" THEN GOSUB 1630 1330 IF F$ = "B" THEN GOSUB 1810 1340 IF F$ = "V" THEN GOSUB 1980 1350 IF F$ = "K" THEN GOSUB 2020 1360 NEXT B 1370 NEXT A 1380 GOTO 2110 1390 LOCATE 22, 30: PRINT "A(z)"; N; ".llsban elsikkasztok nhny tst.": GOTO 2110 1400 REM *********** gyalog ************** 1410 REM **** vilgos gyalog **** 1420 IF LEP$ = "(s)" THEN 1480 1430 IF MID$(C$(A + 1, B + 1), 1, 3) = "(s)" THEN UT$(N, K(N)) = A$(A) + B$(B) + ":" + A$(A + 1) + B$(B + 1): K(N) = K(N) + 1 1440 IF K(N) = 11 THEN 1390 1450 IF MID$(C$(A - 1, B + 1), 1, 3) = "(s)" THEN UT$(N, K(N)) = A$(A) + B$(B) + ":" + A$(A - 1) + B$(B + 1): K(N) = K(N) + 1 1460 IF K(N) = 11 THEN 1390 1470 RETURN 1480 REM **** stt gyalog ****** 1490 IF MID$(C$(A + 1, B - 1), 1, 3) = "(v)" THEN UT$(N, K(N)) = A$(A) + B$(B) + ":" + A$(A + 1) + B$(B - 1): K(N) = K(N) + 1 1500 IF K(N) = 11 THEN 1390 1510 IF MID$(C$(A - 1, B - 1), 1, 3) = "(v)" THEN UT$(N, K(N)) = A$(A) + B$(B) + ":" + A$(A - 1) + B$(B - 1): K(N) = K(N) + 1 1520 IF K(N) = 11 THEN 1390 1530 RETURN 1540 REM *********** huszr ************** 1550 RESTORE 170 1560 FOR S = 1 TO 8 1570 READ X, Y 1580 IF A + X < 1 OR A + X > 8 OR B + Y < 1 OR B + Y > 8 THEN 1610 1590 IF MID$(C$(A + X, B + Y), 1, 3) = ALD$ THEN UT$(N, K(N)) = A$(A) + B$(B) + ":" + A$(A + X) + B$(B + Y): K(N) = K(N) + 1 1600 IF K(N) = 11 THEN 1390 1610 NEXT S 1620 RETURN 1630 REM *********** fut (vagy vezr) ************** 1640 IR$ = "jf" 1650 FOR S = 1 TO 7 1660 IF IR$ = "jf" THEN VA = A + S: VB = B + S 1670 IF IR$ = "bf" THEN VA = A - S: VB = B + S 1680 IF IR$ = "bl" THEN VA = A - S: VB = B - S 1690 IF IR$ = "jl" THEN VA = A + S: VB = B - S 1700 IF VA > 8 OR VA < 1 OR VB > 8 OR VB < 1 THEN 1770 1710 VIZS$ = MID$(C$(VA, VB), 1, 3) 1720 IF VIZS$ = LEP$ THEN 1770 1730 IF VIZS$ = ALD$ THEN UT$(N, K(N)) = A$(A) + B$(B) + ":" + A$(VA) + B$(VB): K(N) = K(N) + 1: GOTO 1760 1740 NEXT S 1750 GOTO 1800 1760 IF K(N) = 11 THEN 1390 1770 IF IR$ = "jf" THEN IR$ = "bf": GOTO 1650 1780 IF IR$ = "bf" THEN IR$ = "bl": GOTO 1650 1790 IF IR$ = "bl" THEN IR$ = "jl": GOTO 1650 1800 RETURN 1810 REM *********** bstya (vagy vezr) ************** 1820 IR$ = "f" 1830 FOR I = 1 TO 7 1840 IF IR$ = "f" THEN VA = A: VB = B + I 1850 IF IR$ = "l" THEN VA = A: VB = B - I 1860 IF IR$ = "b" THEN VA = A - I: VB = B 1870 IF IR$ = "j" THEN VA = A + I: VB = B 1880 IF VA > 8 OR VA < 1 OR VB > 8 OR VB < 1 THEN 1940 1890 VIZS$ = MID$(C$(VA, VB), 1, 3) 1900 IF VIZS$ = LEP$ THEN 1940 1910 IF VIZS$ = ALD$ THEN UT$(N, K(N)) = A$(A) + B$(B) + ":" + A$(VA) + B$(VB): K(N) = K(N) + 1: GOTO 1930 1920 NEXT I 1930 IF K(N) = 11 THEN 1390 1940 IF IR$ = "f" THEN IR$ = "l": GOTO 1830 1950 IF IR$ = "l" THEN IR$ = "b": GOTO 1830 1960 IF IR$ = "b" THEN IR$ = "j": GOTO 1830 1970 RETURN 1980 REM *********** vezr ************** 1990 GOSUB 1630 2000 GOSUB 1810 2010 RETURN 2020 REM *********** kirly ************** 2030 RESTORE 2040 FOR I = 1 TO 8 2050 READ X, Y 2060 IF A + X > 8 OR A + X < 1 OR B + Y > 8 OR B + Y < 1 THEN 2090 2070 IF ALD$ = MID$(C$(A + X, B + Y), 1, 3) THEN UT$(N, K(N)) = A$(A) + B$(B) + ":" + A$(A + X) + B$(B + Y): K(N) = K(N) + 1 2080 IF K(N) = 11 THEN 1390 2090 NEXT I 2100 RETURN 2110 REM ************* emberi rtkelfggvny ************ 2120 LOCATE 21, 40: PRINT LEP$; "lp... Na,mi lesz mr?" 2130 B$ = INKEY$ 2140 IF B$ = "" THEN 2130 2150 LOCATE 21, 40: PRINT " " 2160 LOCATE 22, 30: PRINT " " 2170 IF B$ = "+" THEN J = 2: GOTO 2910 2180 IF B$ = "-" THEN 2910 2190 IF K(N) > 1 THEN 2560 2200 REM ************** lpst kr be *********************** 2210 LOCATE 21, 30: PRINT LEP$; " van soron. Mit lp? (csere:)" 2220 CSE = 0: WC = 0 2230 IF WC = 3 THEN LOCATE 21, 40: PRINT "Csere,rd be a kt mezt! " 2240 D$ = INKEY$ 2250 IF D$ = "" THEN 2240 2260 LOCATE 21, 30: PRINT " " 2270 IF WC = 3 THEN 2290 2280 IF D$ = "x" OR D$ = "X" THEN CSE = 5: WC = 3: GOTO 2230 2290 P = ASC(D$) 2300 IF P > 104 OR P < 96 THEN LOCATE 22, 40: PRINT "Rossz bet!": SOUND 2000, .3: GOTO 2240 2310 E = Z(ASC(D$) - 96) 2320 LOCATE 22, 40: PRINT " " 2330 E$ = INKEY$ 2340 IF E$ = "" THEN 2330 2350 FOR G = 1 TO 8 2360 IF E$ = RIGHT$(STR$(G), 1) THEN 2390 2370 NEXT G 2380 LOCATE 23, 40: PRINT "Rossz szm!": SOUND 2000, .3: GOTO 2330 2390 LOCATE 23, 40: PRINT " " 2400 IF LEP = 1 THEN 2430 2410 BROL = E: SZROL = VAL(E$) 2420 LEP = 1: LOCATE 21, 40: PRINT "Hov?": GOTO 2240 2430 LOCATE 21, 40: PRINT " " 2440 BRE = E: SZRA = VAL(E$) 2450 IF MID$(C$(BROL, SZROL), 1, 3) <> LEP$ THEN LOCATE 22, 30: PRINT "Sajt bbbal lpj!": LEP = 0: GOTO 2210 2460 LOCATE 22, 30: PRINT " " 2470 IF CSE = 5 THEN V$ = CHR$(18) ELSE V$ = "-" 2480 J$ = A$(BROL) + RIGHT$(STR$(SZROL), 1) + V$ + A$(BRE) + RIGHT$(STR$(SZRA), 1) 2490 LOCATE 22, 30: PRINT "A lps: "; J$; " " 2500 LOCATE 23, 40: PRINT "Javtasz(i)?" 2510 G$ = INKEY$: IF G$ = "" THEN 2510 2520 LOCATE 22, 30: PRINT " " 2530 LOCATE 23, 40: PRINT " " 2540 IF G$ = "i" OR G$ = "I" THEN LEP = 0: GOTO 2210 2550 LEP = 0 2560 REM ****** a lps (ts) beiktatsa ****** 2570 REM 2580 IF K(N) > 1 THEN J$ = UT$(N, KIV(N)) 2590 BROL = Z(ASC(MID$(J$, 1, 1)) - 96): SZROL = VAL(MID$(J$, 2, 1)) 2600 BRE = Z(ASC(MID$(J$, 4, 1)) - 96): SZRA = VAL(MID$(J$, 5, 1)) 2610 K$ = RIGHT$(C$(BROL, SZROL), 1) + J$ 2620 U$(N) = C$(BROL, SZROL) + J$ + C$(BRE, SZRA) 2630 C$(BRE, SZRA) = LEFT$(U$(N), 4): C$(BROL, SZROL) = " " 2640 U = INT(N / 2 - .4) + 1 2650 V = (INT(N / 2)) * 16 - N * 8 + 13 2660 IF N < 47 THEN LOCATE U, V: PRINT K$ 2670 IF MID$(U$(N), 7, 1) = CHR$(18) THEN C$(BROL, SZROL) = RIGHT$(U$(N), 4): CSE = 0: M = 4 2680 S$ = ALD$: ALD$ = LEP$: LEP$ = S$: S$ = "" 2690 GOSUB 2710 2700 N = N + 1: K(N) = 1: KIV(N) = 1: GOTO 1070 2710 REM ********************** egyszeri kirs ******************** 2720 H = 2 * ((BROL + SZROL) / 2 - INT((BROL + SZROL) / 2)) 2730 G = 2 * ((BRE + SZRA) / 2 - INT((BRE + SZRA) / 2)) 2740 ROL1$ = C0$(H): ROL2$ = C0$(H) 2750 RA1$ = C0$(G): RA2$ = C0$(G) 2760 G$ = MID$(C$(BRE, SZRA), 4, 1) 2770 Z$ = MID$(C$(BRE, SZRA), 2, 1) 2780 IF Z$ = "v" THEN RA1$ = P1$(ASC(G$)): RA2$ = Q1$(ASC(G$)) 2790 IF Z$ = "s" THEN RA1$ = P2$(ASC(G$)): RA2$ = Q2$(ASC(G$)) 2800 IF M = 0 THEN 2860 2810 M = 0 2820 H$ = MID$(C$(BROL, SZROL), 4, 1) 2830 Y$ = MID$(C$(BROL, SZROL), 2, 1) 2840 IF Y$ = "v" THEN ROL1$ = P1$(ASC(H$)): ROL2$ = Q1$(ASC(H$)) 2850 IF Y$ = "s" THEN ROL1$ = P2$(ASC(H$)): ROL2$ = Q2$(ASC(H$)) 2860 LOCATE -2 * SZROL + 19, BROL * 5 + 20: PRINT ROL1$ 2870 LOCATE -2 * SZROL + 20, BROL * 5 + 20: PRINT ROL2$ 2880 LOCATE -2 * SZRA + 19, BRE * 5 + 20: PRINT RA1$ 2890 LOCATE -2 * SZRA + 20, BRE * 5 + 20: PRINT RA2$ 2900 RETURN 2910 REM ************** visszalps ********************** 2920 IF N > 1 THEN 2950 2930 IF J = 2 THEN LOCATE 22, 60: PRINT "(s) elbukta!": END 2940 LOCATE 22, 60: PRINT "(v) elbukta!": END 2950 FOR I = 1 TO K(N) - 1 2960 UT$(N, I) = "" 2970 NEXT I 2980 N = N - 1 2990 BROL = Z(ASC(MID$(U$(N), 8, 1)) - 96): SZROL = VAL(MID$(U$(N), 9, 1)) 3000 BRE = Z(ASC(MID$(U$(N), 5, 1)) - 96): SZRA = VAL(MID$(U$(N), 6, 1)) 3010 I$ = MID$(U$(N), 7, 1) 3020 IF I$ = CHR$(18) OR I$ = ":" THEN M = 4 3030 C$(BROL, SZROL) = " " 3040 IF M = 4 THEN C$(BROL, SZROL) = RIGHT$(U$(N), 4) 3050 C$(BRE, SZRA) = LEFT$(U$(N), 4) 3060 GOSUB 2710 3070 U$(N) = "" 3080 U = INT(N / 2 - .4) + 1 3090 V = (INT(N / 2)) * 16 - N * 8 + 13 3100 IF N <= 46 THEN LOCATE U, V: PRINT " " 3110 S$ = ALD$: ALD$ = LEP$: LEP$ = S$ 3120 IF J = 2 THEN J = 0: GOTO 3140 3130 J = 2: GOTO 2910 3140 IF KIV(N) = K(N) - 1 THEN 2910 3150 IF K(N) > 1 THEN KIV(N) = KIV(N) + 1: GOTO 2560 3160 GOTO 2110