CLS FOR i = 1 TO 8 a$(i) = CHR$(i + 96) a(ASC(a$(i)) - 96) = i b$(i) = RIGHT$(STR$(i), 1) NEXT i tabla: LOCATE 2, 3: PRINT "Ι" FOR x1 = 4 TO 19 LOCATE 2, x1: PRINT "Ν": LOCATE 1, x1: PRINT a$(INT((x1 - 2) / 2)) NEXT x1 LOCATE 2, 20: PRINT "»" FOR x2 = 3 TO 11 LOCATE x2, 20: PRINT "Ί": LOCATE x2, 22: PRINT b$(11 - x2) NEXT x2 LOCATE 11, 20: PRINT "Ό" FOR x3 = 19 TO 4 STEP -1 LOCATE 11, x3: PRINT "Ν": LOCATE 12, x3: PRINT a$(INT((x3 - 2) / 2)) NEXT x3 LOCATE 11, 3: PRINT "Θ" FOR x4 = 10 TO 3 STEP -1 LOCATE x4, 3: PRINT "Ί": LOCATE x4, 1: PRINT b$(11 - x4) NEXT x4 FOR i = 1 TO 8: FOR j = 1 TO 8 IF (i + j) / 2 > INT((i + j) / 2) THEN LOCATE 11 - j, 2 * i + 2: PRINT "°°" NEXT j: NEXT i LOCATE 7, 10: PRINT "><" FOR i = 4 TO 12 STEP 4 LOCATE 4, i: PRINT "()" NEXT i LOCATE 3, 18: PRINT "()" jatszmalap: LOCATE 2, 25: PRINT "ΙΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΡΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΡΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝ»" FOR x = 3 TO 12 LOCATE x, 25: PRINT "Ί . ³ . ³ . Ί" NEXT x LOCATE 13, 25: PRINT "ΘΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΟΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΟΝΝΝΝΝΝΝΝΝΝΝΝΝΝΝΌ" FOR i = 1 TO 60 j = 17 * INT((i - 1) / 20) + 26 k = INT((i - 1) / 2) + 1 l = k + 2 - 10 * INT((k - 1) / 10) LOCATE l, j: PRINT RIGHT$(STR$(k), 2) NEXT i DIM lp$(57, 8): DIM l$(57): DIM c$(8, 8): DIM k(57): DIM kiv(57) c$(1, 7) = "()": c$(3, 7) = "()": c$(5, 7) = "()": c$(8, 8) = "()" c$(4, 4) = "><": d$(1) = "><": d$(3) = "()" nx = 4: ny = 4: max = 8 u(1) = -1: u(2) = 1: u(3) = -1: u(4) = 1 v(1) = 1: v(2) = 1: v(3) = -1: v(4) = -1 t(0) = -1: t(1) = 1 n = 1: k(1) = 0 OPEN "allas.dat" FOR INPUT AS #1 LEN = 570 tolt: i = 1 meg: INPUT #1, k$ IF k$ = " " THEN GOTO indul p$ = LEFT$(k$, 1): q$ = RIGHT$(k$, 1) k$ = MID$(k$, 2, 4) lp$(n, i) = k$ FOR j = 1 TO 4 f$ = MID$(k$, j, 1) IF VAL(f$) > 0 THEN d(j) = VAL(f$) ELSE d(j) = a(ASC(f$) - 96) NEXT j IF p$ = "*" THEN kiv(n) = i: l$(n) = k$ ELSE GOTO ugro c$(d(1), d(2)) = "" rol$ = " ": ra$ = d$((-1) ^ n + 2) brol = d(1): szrol = d(2): bre = d(3): szra = d(4) GOSUB kiir IF INT(n / 2) = n / 2 THEN c$(d(3), d(4)) = "()": GOTO ugro c$(d(3), d(4)) = "><": nx = d(3): ny = d(4) ugro: IF q$ = "*" THEN k(n) = i: n = n + 1: GOTO tolt i = i + 1: GOTO meg indul: BEEP CLOSE #1 lepes: van = 0 FOR j = 8 TO 1 STEP -1 FOR i = 1 TO 8 IF c$(i, j) = "()" THEN van = van + 1: vx(van) = i: vy(van) = j IF van = 4 THEN GOTO kilep NEXT: NEXT kilep: max = vy(1) k(n) = 0 IF INT(n / 2) < n / 2 THEN r = 1: GOTO nyullep vadaszlep: FOR i = 1 TO 4 FOR j = 0 TO 1 x = vx(i) + t(j): y = vy(i) - 1 IF x = 0 OR x = 9 OR y = 0 THEN GOTO masik IF c$(x, y) <> "" THEN GOTO masik k(n) = k(n) + 1: lp$(n, k(n)) = a$(vx(i)) + b$(vy(i)) + a$(x) + b$(y) masik: NEXT j hova: NEXT i kiv(n) = 1: GOTO ertekel nyullep: x = nx + u(r): y = ny + v(r) IF x = 0 OR x = 9 OR y = 0 THEN GOTO merre IF c$(x, y) <> "" THEN GOTO merre k(n) = k(n) + 1: lp$(n, k(n)) = a$(nx) + b$(ny) + a$(x) + b$(y) merre: IF r = 4 THEN kiv(n) = 1: GOTO ertekel r = r + 1: GOTO nyullep ertekel: IF INT(n / 2) < n / 2 THEN baj = 0: GOTO mibaj FOR i = 2 TO ny: FOR j = 1 TO 8 IF c$(j, i) = "()" AND i < ny THEN o = o + 1 IF o = 2 THEN o = 0: GOTO visszavesz NEXT j: NEXT i baj = 2 FOR h = 0 TO 1 x = nx + t(h): y = ny + 1 IF x <= 0 OR x >= 9 THEN baj = baj - 1: GOTO mas IF c$(x, y) = "()" THEN baj = baj - 1: GOTO mas FOR j = 1 TO 8 - y FOR i = x - j TO x + j IF i <= 0 OR i >= 9 THEN GOTO vizs IF c$(i, y + j) <> "" THEN baj = baj - 1: GOTO mas vizs: NEXT i NEXT j mas: NEXT h IF baj > 0 THEN GOTO visszavesz mibaj: IF kiv(n) = k(n) + 1 THEN GOTO visszavesz beiktat: l$(n) = lp$(n, kiv(n)) brol = a(ASC(MID$(l$(n), 1, 1)) - 96): szrol = VAL(MID$(l$(n), 2, 1)) bre = a(ASC(MID$(l$(n), 3, 1)) - 96): szra = VAL(MID$(l$(n), 4, 1)) c$(bre, szra) = d$((-1) ^ n + 2): c$(brol, szrol) = "" rol$ = " ": ra$ = c$(bre, szra) IF INT(n / 2) < n / 2 THEN nx = bre: ny = szra GOSUB kiir s$ = INKEY$: IF s$ <> "" THEN GOTO tarol n = n + 1: k(n) = 0: GOTO lepes visszavesz: IF n = 1 THEN PRINT "v‚ge!": SOUND 1000, 2: END IF k(n) = 0 THEN GOTO visszalep FOR i = 1 TO k(n) lp$(n, i) = "" NEXT i visszalep: n = n - 1 brol = a(ASC(MID$(l$(n), 3, 1)) - 96): szrol = VAL(MID$(l$(n), 4, 1)) bre = a(ASC(MID$(l$(n), 1, 1)) - 96): szra = VAL(MID$(l$(n), 2, 1)) c$(bre, szra) = d$((-1) ^ (n) + 2) c$(brol, szrol) = "" ra$ = c$(bre, szra): rol$ = " " IF INT(n / 2) < n / 2 THEN nx = bre: ny = szra IF INT(n / 2) = n / 2 AND szra > max THEN max = szra l$(n) = " " GOSUB kiir IF g = 1 THEN g = 0: GOTO bocs g = 1: GOTO visszavesz bocs: kiv(n) = kiv(n) + 1 GOTO ertekel kiir: LOCATE 11 - szrol, 2 * brol + 2: PRINT rol$ LOCATE 11 - szra, 2 * bre + 2: PRINT ra$ p = 17 * INT((n - 1) / 20) + 26 q = p + 3 + 3.5 * ((-1) ^ n + 1) r = INT((n - 1) / 2) + 1 s = r + 2 - 10 * INT((r - 1) / 10) IF l$(n) <> " " THEN x$ = LEFT$(l$(n), 2) + "-" + RIGHT$(l$(n), 2) ELSE x$ = l$(n) LOCATE s, q: PRINT x$ RETURN tarol: OPEN "allas.dat" FOR OUTPUT AS #2 LEN = 570 FOR m = 1 TO n FOR i = 1 TO k(m) v$ = " " + lp$(m, i) + " " IF i = kiv(m) THEN MID$(v$, 1, 1) = "*" IF i = k(m) THEN MID$(v$, LEN(v$), 1) = "*" IF v$ = " " THEN GOTO vege WRITE #2, v$ NEXT i NEXT m vege: WRITE #2, " " CLOSE #2 END