10 REM             * * * *  A M O B A  * * * *
20      CLS
30                LOCATE 20, 1: PRINT "Mozgs:NumLock+helyr"
40                LOCATE 21, 1: PRINT "Ezeket lphetem:szkz"
50                LOCATE 22, 1: PRINT "Lpsvlogats vge: *"
60                LOCATE 23, 1: PRINT "Befulladtam: x"
70                LOCATE 1, 1: PRINT "Vrre megy?(i)"
80         z$ = INKEY$: IF z$ = "" THEN 80
90         IF z$ = "i" OR z$ = "I" THEN jat = 1
100         LOCATE 1, 1: PRINT "           "
110 REM
120 DIM c$(15, 15)
130 DIM a$(15)
140 DIM b$(15)
150 DIM a(15)
160 DIM k(100)
170 DIM r(100)
180 DIM u$(100)
190 DIM f1(15, 15)
200 DIM f2(15, 15)
210 DIM el$(100, 20)
220     n = 1: k(1) = 1: r(1) = 1
230     c(1) = -1: c(4) = -1: c(7) = -1: c(3) = 1: c(6) = 1: c(9) = 1
240     d(1) = -1: d(2) = -1: d(3) = -1: d(7) = 1: d(8) = 1: d(9) = 1
250     d = 50: E = 1
260     c0$(0) = "": c0$(1) = ""
270     most$ = "><": majd$ = "()"
280     x = 8: y = 8
290     FOR i = 1 TO 15: FOR j = 1 TO 15
300       t = 2 * ((i + j) / 2 - INT((i + j) / 2))
310       c$(i, j) = c0$(t)
320     NEXT: NEXT
330 REM
340            LOCATE 1, 45: PRINT "      ><        ()"
350            FOR t = 1 TO 22
360             LOCATE t + 1, 42 - LEN(STR$(t)): PRINT t; ".                       "
370            NEXT t
380            LOCATE 21, 28: PRINT "ͻ"
390            LOCATE 22, 28: PRINT "     "
400            LOCATE 23, 28: PRINT "ͼ"
410 REM
420       FOR i = 97 TO 111
430        a$(i - 96) = CHR$(i): a(ASC(a$(i - 96)) - 96) = i - 96
440       NEXT i
450       FOR i = 1 TO 15
460        b$(i) = STR$(i)
470       NEXT i
480 REM
490           LOCATE 2, 4: PRINT ""
500           FOR x1 = 5 TO 34
510            LOCATE 2, x1: PRINT "": LOCATE 1, x1: PRINT a$(INT(x1 - 4) / 2)
520           NEXT x1
530           LOCATE 2, 35: PRINT ""
540           FOR x2 = 3 TO 17
550            LOCATE x2, 35: PRINT "": LOCATE x2, 36: PRINT b$(18 - x2)
560           NEXT x2
570           LOCATE 18, 35: PRINT ""
580           FOR x3 = 34 TO 5 STEP -1
590            LOCATE 18, x3: PRINT "": LOCATE 19, x3: PRINT a$(INT((x3 - 4) / 2 + .5))
600           NEXT x3
610           LOCATE 18, 4: PRINT ""
620           FOR x4 = 17 TO 3 STEP -1
630            LOCATE x4, 4: PRINT "": LOCATE x4, 1: PRINT b$(18 - x4)
640           NEXT x4
650                     FOR i = 1 TO 15: FOR j = 1 TO 15
660                      LOCATE 18 - j, i * 2 + 3: PRINT c$(i, j)
670                     NEXT: NEXT
680 REM
690             k$ = c$(x, y)
700 REM ********************** lps **************************
710     LOCATE 18 - y, x * 2 + 3: PRINT k$
720          FOR h = 1 TO 20
730              f$ = INKEY$: f = VAL(f$)
740               IF f = 0 THEN 810
750                   LOCATE 18 - y, 3 + 2 * x: PRINT c$(x, y)
760                   x = x + c(f): y = y + d(f)
770                               IF x = 16 THEN x = 1
780                               IF x = 0 THEN x = 15
790                               IF y = 16 THEN y = 1
800                               IF y = 0 THEN y = 15
810          IF f$ <> " " THEN 840
820              IF f1(x, y) = 1 OR f2(x, y) = 1 THEN BEEP: GOTO 860
830              el$(n, k(n)) = a$(x) + STR$(y): f1(x, y) = 1: k(n) = k(n) + 1: GOTO 860
840              IF f$ = "*" AND k(n) > 1 THEN u$(n) = el$(n, 1): LOCATE 18 - y, x * 2 + 3: PRINT c$(x, y): r(n) = 1: GOTO 910
850              IF f$ = "x" OR f$ = "X" THEN LOCATE 18 - y, x * 2 + 3: PRINT c$(x, y): GOTO 1080
860          NEXT h
870        LOCATE 22, 30: PRINT a$(x); RIGHT$(STR$(y), 2)
880     IF k$ = "" THEN k$ = c$(x, y): GOTO 700
890   k$ = "": GOTO 700
900 REM
910 REM ******************** beiktats ****************************
920    FOR h = 1 TO k(n) - 1
930          u = a(ASC(LEFT$(el$(n, h), 1)) - 96): v = VAL(RIGHT$(el$(n, h), 2))
940           f1(u, v) = 0
950    NEXT h
960 REM
970          x = a(ASC(LEFT$(u$(n), 1)) - 96): y = VAL(RIGHT$(u$(n), 2))
980           c$(x, y) = most$: f2(x, y) = 1
990           LOCATE 18 - y, x * 2 + 3: PRINT most$
1000 REM
1010           IF most$ = "><" THEN d = 50: E = E + 1
1020           IF most$ = "()" THEN d = 60
1030           LOCATE E, d: PRINT u$(n)
1040      x$ = most$: most$ = majd$: majd$ = x$
1050      n = n + 1: k(n) = 1: r(n) = 1
1060   GOTO 690
1070 REM
1080 REM **********************  visszalps *************************
1090   IF n = 1 AND jat = 0 THEN LOCATE 23, 50: PRINT "Elemzs vge!": END
1100 IF jat = 0 THEN n = n - 1: GOTO 1210
1110  IF n = 1 AND c = 0 THEN LOCATE 23, 50: PRINT ">< elbukta!": END
1120   IF n = 2 AND c = 0 AND r(2) = k(2) - 1 THEN LOCATE 23, 50: PRINT "() elbukta!": END
1130   IF n = 2 AND c = 1 AND r(1) = k(1) - 1 THEN LOCATE 23, 50: PRINT ">< elbukta!": END
1140 n = n - 1
1150        IF c = 1 THEN 1210
1160           FOR O = 1 TO k(n) - 1
1170            el$(n, O) = ""
1180           NEXT O
1190         k(n) = 1: r(n) = 1
1200 REM
1210     X0 = a(ASC(LEFT$(u$(n), 1)) - 96): Y0 = VAL(RIGHT$(u$(n), 2))
1220      f2(X0, Y0) = 0
1230       k = 2 * ((X0 + Y0) / 2 - INT((X0 + Y0) / 2))
1240        c$(X0, Y0) = c0$(k)
1250         LOCATE 18 - Y0, 3 + 2 * X0: PRINT c0$(k)
1260        u$(n) = ""
1270             IF most$ = "><" THEN d = 60
1280             IF most$ = "()" THEN d = 50
1290                 LOCATE E, d: PRINT "     "
1300       x$ = most$: most$ = majd$: majd$ = x$
1310       IF most$ = "><" THEN E = E - 1
1320      IF c = 1 THEN c = 0: GOTO 1340
1330        IF jat = 1 THEN c = 1: GOTO 1080
1340    IF r(n) < k(n) - 1 THEN r(n) = r(n) + 1: u$(n) = el$(n, r(n)): GOTO 910
1350 IF r(n) = k(n) - 1 THEN 1080

