Using AI to improve code readability
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 22 Sep 2024 22:43:58 +0000 (01:43 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Sun, 22 Sep 2024 22:43:58 +0000 (01:43 +0300)
Games/Worm/worm.bas

index 772293b..15cad7b 100755 (executable)
@@ -1,24 +1,24 @@
 ' Worm game\r
 ' by Svjatoslav Agejenko 2002\r
 \r
-DECLARE FUNCTION cnum$ (a%)\r
-DECLARE SUB putworm (a%)\r
-DECLARE SUB level (a%)\r
-DECLARE SUB showb ()\r
-DECLARE SUB sc2 (x%, y%)\r
-DECLARE SUB ai (a%)\r
-DECLARE SUB autop (a%)\r
-DECLARE SUB stat ()\r
-DECLARE SUB prc (a%)\r
-DECLARE SUB stuff ()\r
-DECLARE SUB dead (a%)\r
-DECLARE SUB add (a%)\r
-DECLARE SUB tkt ()\r
-DECLARE SUB subt (b%)\r
-DECLARE SUB show ()\r
-DECLARE SUB start ()\r
-DECLARE SUB init ()\r
-DECLARE SUB sc (x%, y%)\r
+DECLARE FUNCTION cnum$(a%)\r
+DECLARE SUB putworm(a%)\r
+DECLARE SUB level(a%)\r
+DECLARE SUB showb()\r
+DECLARE SUB sc2(x%, y%)\r
+DECLARE SUB ai(a%)\r
+DECLARE SUB autop(a%)\r
+DECLARE SUB stat()\r
+DECLARE SUB prc(a%)\r
+DECLARE SUB stuff()\r
+DECLARE SUB dead(a%)\r
+DECLARE SUB add(a%)\r
+DECLARE SUB tkt()\r
+DECLARE SUB subt(b%)\r
+DECLARE SUB show()\r
+DECLARE SUB start()\r
+DECLARE SUB init()\r
+DECLARE SUB sc(x%, y%)\r
 DEFINT A-Z\r
 \r
 DIM SHARED buf(0 TO 36, 0 TO 36)\r
@@ -46,7 +46,6 @@ lvl = 1
 wai = 0\r
 wai = 20\r
 \r
-\r
 auto(1) = 0\r
 auto(2) = 0\r
 auto(3) = 0\r
@@ -54,15 +53,14 @@ auto(4) = 0
 auto(5) = 0\r
 CLS\r
 \r
-INPUT "How mutch players 1 - 5:", ussm\r
-INPUT "How mutch of them is computers:", a\r
+INPUT "How many players (1 - 5):", ussm\r
+INPUT "How many of them are computers:", a\r
 FOR b = ussm TO ussm - a + 1 STEP -1\r
-auto(b) = 1\r
+    auto(b) = 1\r
 NEXT b\r
 \r
-INPUT "How mutch lives:", elum\r
-INPUT "Speed: (1-slow 3-ok 10-very fast)", spd\r
-\r
+INPUT "How many lives:", elum\r
+INPUT "Speed: (1-slow, 3-ok, 10-very fast)", spd\r
 \r
 start\r
 \r
@@ -71,354 +69,502 @@ level lvl
 tkt\r
 SOUND 0, 5 / spd\r
 IF mtm >= 15 THEN\r
-mtm = 1\r
-lvl = lvl + 1\r
-level lvl\r
+    mtm = 1\r
+    lvl = lvl + 1\r
+    level lvl\r
 END IF\r
 GOTO 1\r
 \r
-SUB ai (a)\r
+SUB ai(a%)\r
+    FOR y = 0 TO 36\r
+        FOR x = 0 TO 36\r
+            buf2(x, y) = 32000\r
+            IF buf(x, y) = 2 THEN buf2(x, y) = 0\r
+            IF buf(x, y) > 9 OR buf(x, y) = 1 THEN buf2(x, y) = -1\r
+        NEXT x\r
+    NEXT y\r
+\r
+    IF buf2(16, 16) = 32000 THEN buf2(16, 16) = 15000\r
+\r
+    6\r
+    b = 0\r
+    FOR y = 1 TO 35\r
+        FOR x = 1 TO 34\r
+            IF (buf2(x + 1, y) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN\r
+                buf2(x + 1, y) = buf2(x, y) + 1\r
+                b = 1\r
+            END IF\r
+        NEXT x\r
+\r
+        FOR x = 35 TO 2 STEP -1\r
+            IF (buf2(x - 1, y) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN\r
+                buf2(x - 1, y) = buf2(x, y) + 1\r
+                b = 1\r
+            END IF\r
+        NEXT x\r
+\r
+        IF (buf2(1, y) > buf2(35, y) + 1) AND (buf2(35, y) >= 0) THEN\r
+            buf2(1, y) = buf2(35, y) + 1\r
+            b = 1\r
+        END IF\r
+\r
+        IF (buf2(35, y) > buf2(1, y) + 1) AND (buf2(1, y) >= 0) THEN\r
+            buf2(35, y) = buf2(1, y) + 1\r
+            b = 1\r
+        END IF\r
+    NEXT y\r
+\r
+    FOR x = 1 TO 35\r
+        FOR y = 1 TO 34\r
+            IF (buf2(x, y + 1) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN\r
+                buf2(x, y + 1) = buf2(x, y) + 1\r
+                b = 1\r
+            END IF\r
+        NEXT y\r
+\r
+        FOR y = 35 TO 2 STEP -1\r
+            IF (buf2(x, y - 1) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN\r
+                buf2(x, y - 1) = buf2(x, y) + 1\r
+                b = 1\r
+            END IF\r
+        NEXT y\r
+\r
+        IF (buf2(x, 1) > buf2(x, 35) + 1) AND (buf2(x, 35) >= 0) THEN\r
+            buf2(x, 1) = buf2(x, 35) + 1\r
+            b = 1\r
+        END IF\r
+\r
+        IF (buf2(x, 35) > buf2(x, 1) + 1) AND (buf2(x, 1) >= 0) THEN\r
+            buf2(x, 35) = buf2(x, 1) + 1\r
+            b = 1\r
+        END IF\r
+    NEXT x\r
+\r
+    IF b = 1 THEN GOTO 6\r
+\r
+    tx = ux(a)\r
+    ty = uy(a)\r
+    'sc2 tx, ty\r
+\r
+    d = 0\r
+    7\r
+    b = 32001\r
+    tmpxp = 0\r
+    tmpyp = 0\r
+    IF (buf2(tx - 1, ty) < b) AND (buf2(tx - 1, ty) >= 0) THEN\r
+        b = buf2(tx - 1, ty)\r
+        tmpxp = -1\r
+        tmpyp = 0\r
+        c = 1\r
+    END IF\r
+\r
+    IF (buf2(tx, ty - 1) < b) AND (buf2(tx, ty - 1) >= 0) THEN\r
+        b = buf2(tx, ty - 1)\r
+        tmpxp = 0\r
+        tmpyp = -1\r
+        c = 2\r
+    END IF\r
+\r
+    IF (buf2(tx + 1, ty) < b) AND (buf2(tx + 1, ty) >= 0) THEN\r
+        b = buf2(tx + 1, ty)\r
+        tmpxp = 1\r
+        tmpyp = 0\r
+        c = 3\r
+    END IF\r
+\r
+    IF (buf2(tx, ty + 1) < b) AND (buf2(tx, ty + 1) >= 0) THEN\r
+        b = buf2(tx, ty + 1)\r
+        tmpxp = 0\r
+        tmpyp = 1\r
+        c = 4\r
+    END IF\r
+\r
+    IF b = 32001 THEN\r
+        'SOUND 3000, 1\r
+        tmpxp = -1\r
+        tmpyp = 0\r
+        c = 1\r
+        b = -1\r
+    END IF\r
+\r
+    buf2(tx, ty) = -1\r
+    d = d + 1\r
+    ussk(d, a) = c\r
+    tx = tx + tmpxp\r
+    ty = ty + tmpyp\r
+\r
+    IF tx = 1 THEN tx = 34\r
+    IF ty = 1 THEN ty = 34\r
+    IF tx = 35 THEN tx = 2\r
+    IF ty = 35 THEN ty = 2\r
+\r
+    e = buf2(tx, ty)\r
+    buf2(tx, ty) = -1\r
+\r
+    sc2 tx, ty\r
+\r
+    IF d > ail THEN GOTO 8\r
+\r
+    IF (e > 0) AND (b > -1) THEN GOTO 7\r
+\r
+    8\r
+    d = d + 1\r
+    ussk(d, a) = 5\r
+    usskp(a) = 1\r
+\r
+    showb\r
+END SUB\r
 \r
+SUB autop(a%)\r
+    c = 0\r
+\r
+    5\r
+    IF usskp(a) > 0 THEN\r
+        b = ussk(usskp(a), a)\r
+\r
+        IF b = 1 THEN\r
+            uxp(a) = -1\r
+            uyp(a) = 0\r
+        ELSEIF b = 2 THEN\r
+            uxp(a) = 0\r
+            uyp(a) = -1\r
+        ELSEIF b = 3 THEN\r
+            uxp(a) = 1\r
+            uyp(a) = 0\r
+        ELSEIF b = 4 THEN\r
+            uxp(a) = 0\r
+            uyp(a) = 1\r
+        ELSEIF b = 5 THEN\r
+            ai a\r
+            GOTO 5\r
+        END IF\r
+\r
+        usskp(a) = usskp(a) + 1\r
+    END IF\r
+\r
+    nx = ux(a) + uxp(a)\r
+    ny = uy(a) + uyp(a)\r
+\r
+    b = buf(INT(nx), INT(ny))\r
+\r
+    IF (b = 1 OR b > 9) AND (c = 0) THEN\r
+        ai a\r
+        c = 1\r
+        GOTO 5\r
+    END IF\r
+END SUB\r
 \r
-FOR y = 0 TO 36\r
-FOR x = 0 TO 36\r
-buf2(x, y) = 32000\r
-IF buf(x, y) = 2 THEN buf2(x, y) = 0\r
-IF buf(x, y) > 9 OR buf(x, y) = 1 THEN buf2(x, y) = -1\r
-NEXT x\r
-NEXT y\r
+FUNCTION cnum$(a%)\r
+    b$ = STR$(a%)\r
 \r
-IF buf2(16, 16) = 32000 THEN buf2(16, 16) = 15000\r
+    IF LEFT$(b$, 1) = " " THEN\r
+        b$ = RIGHT$(b$, LEN(b$) - 1)\r
+    END IF\r
 \r
+    cnum$ = b$\r
+END FUNCTION\r
 \r
-6\r
-b = 0\r
-FOR y = 1 TO 35\r
-FOR x = 1 TO 34\r
-IF (buf2(x + 1, y) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN buf2(x + 1, y) = buf2(x, y) + 1: b = 1\r
-NEXT x\r
-FOR x = 35 TO 2 STEP -1\r
-IF (buf2(x - 1, y) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN buf2(x - 1, y) = buf2(x, y) + 1: b = 1\r
-NEXT x\r
+SUB dead(a%)\r
+    elud(a) = elud(a) - 1\r
+    putworm a\r
+END SUB\r
 \r
-IF (buf2(1, y) > buf2(35, y) + 1) AND (buf2(35, y) >= 0) THEN buf2(1, y) = buf2(35, y) + 1: b = 1\r
-IF (buf2(35, y) > buf2(1, y) + 1) AND (buf2(1, y) >= 0) THEN buf2(35, y) = buf2(1, y) + 1: b = 1\r
-NEXT y\r
+SUB init()\r
+    level 1\r
+END SUB\r
 \r
-FOR x = 1 TO 35\r
-FOR y = 1 TO 34\r
-IF (buf2(x, y + 1) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN buf2(x, y + 1) = buf2(x, y) + 1: b = 1\r
-NEXT y\r
-FOR y = 35 TO 2 STEP -1\r
-IF (buf2(x, y - 1) > buf2(x, y) + 1) AND (buf2(x, y) >= 0) THEN buf2(x, y - 1) = buf2(x, y) + 1: b = 1\r
-NEXT y\r
+SUB level(a%)\r
+    LOCATE 5, 5\r
+    PRINT "G E T   R E A D Y"\r
 \r
+    LOCATE 7, 5\r
+    PRINT "L E V E L :"; a%\r
 \r
-IF (buf2(x, 1) > buf2(x, 35) + 1) AND (buf2(x, 35) >= 0) THEN buf2(x, 1) = buf2(x, 35) + 1: b = 1\r
-IF (buf2(x, 35) > buf2(x, 1) + 1) AND (buf2(x, 1) >= 0) THEN buf2(x, 35) = buf2(x, 1) + 1: b = 1\r
-NEXT x\r
+    FOR b = 1 TO wai\r
+        SOUND 0, 1\r
+    NEXT b\r
 \r
-IF b = 1 THEN GOTO 6\r
-\r
-tx = ux(a)\r
-ty = uy(a)\r
-'sc2 tx, ty\r
-\r
-d = 0\r
-7\r
-b = 32001\r
-tmpxp = 0\r
-tmpyp = 0\r
-IF (buf2(tx - 1, ty) < b) AND (buf2(tx - 1, ty) >= 0) THEN b = buf2(tx - 1, ty): tmpxp = -1: tmpyp = 0: c = 1\r
-IF (buf2(tx, ty - 1) < b) AND (buf2(tx, ty - 1) >= 0) THEN b = buf2(tx, ty - 1): tmpxp = 0: tmpyp = -1: c = 2\r
-IF (buf2(tx + 1, ty) < b) AND (buf2(tx + 1, ty) >= 0) THEN b = buf2(tx + 1, ty): tmpxp = 1: tmpyp = 0: c = 3\r
-IF (buf2(tx, ty + 1) < b) AND (buf2(tx, ty + 1) >= 0) THEN b = buf2(tx, ty + 1): tmpxp = 0: tmpyp = 1: c = 4\r
-\r
-IF b = 32001 THEN\r
-'SOUND 3000, 1\r
-tmpxp = -1\r
-tmpyp = 0\r
-c = 1\r
-b = -1\r
-END IF\r
+    CLS\r
 \r
-buf2(tx, ty) = -1\r
-d = d + 1\r
-ussk(d, a) = c\r
-tx = tx + tmpxp\r
-ty = ty + tmpyp\r
-IF tx = 1 THEN tx = 34\r
-IF ty = 1 THEN ty = 34\r
-IF tx = 35 THEN tx = 2\r
-IF ty = 35 THEN ty = 2\r
-e = buf2(tx, ty)\r
-buf2(tx, ty) = -1\r
+    FOR y = 0 TO 36\r
+        FOR x = 0 TO 36\r
+            buf(x, y) = 0\r
+        NEXT x\r
+    NEXT y\r
 \r
-sc2 tx, ty\r
-IF d > ail THEN GOTO 8\r
-IF (e > 0) AND (b > -1) THEN GOTO 7\r
-8\r
-d = d + 1\r
-ussk(d, a) = 5\r
-usskp(a) = 1\r
+    FOR x = 0 TO 36\r
+        buf(x, 0) = 1\r
+        buf(x, 36) = 1\r
+        buf(0, x) = 1\r
+        buf(36, x) = 1\r
+    NEXT x\r
 \r
-'DIM SHARED ussk(1 TO 2000, 1 TO 5)\r
-'DIM SHARED usskp(1 TO 5)\r
+    b$ = cnum(a%) + ".lvl"\r
 \r
+    OPEN b$ FOR INPUT AS #1\r
 \r
-showb\r
+    10\r
+    IF EOF(1) <> 0 THEN GOTO 11\r
 \r
-END SUB\r
+    LINE INPUT #1, c$\r
 \r
-SUB autop (a)\r
-c = 0\r
-5\r
-IF usskp(a) > 0 THEN\r
-b = ussk(usskp(a), a)\r
-IF b = 1 THEN uxp(a) = -1: uyp(a) = 0\r
-IF b = 2 THEN uxp(a) = 0: uyp(a) = -1\r
-IF b = 3 THEN uxp(a) = 1: uyp(a) = 0\r
-IF b = 4 THEN uxp(a) = 0: uyp(a) = 1\r
-IF b = 5 THEN ai a: GOTO 5\r
-usskp(a) = usskp(a) + 1\r
-END IF\r
+    IF LEFT$(c$, 1) = "/" THEN\r
+        d = d + 1\r
 \r
-nx = ux(a) + uxp(a)\r
-ny = uy(a) + uyp(a)\r
-b = buf(INT(nx), INT(ny))\r
-IF (b = 1 OR b > 9) AND (c = 0) THEN ai a: c = 1: GOTO 5\r
+        IF d > 35 THEN\r
+            GOTO 12\r
+        END IF\r
 \r
+        g = LEN(c$)\r
 \r
-END SUB\r
+        IF g > 36 THEN\r
+            g = 36\r
+        END IF\r
 \r
-FUNCTION cnum$ (a)\r
+        FOR e = 2 TO g\r
+            f$ = RIGHT$(LEFT$(c$, e), 1)\r
 \r
-b$ = STR$(a)\r
-IF LEFT$(b$, 1) = " " THEN b$ = RIGHT$(b$, LEN(b$) - 1)\r
-cnum$ = b$\r
+            IF f$ = "#" OR f$ = "m" THEN\r
+                buf(e - 1, d) = 1\r
+            ELSE\r
+                buf(e - 1, d) = 0\r
+            END IF\r
+        NEXT e\r
+    END IF\r
 \r
-END FUNCTION\r
+    12\r
+    GOTO 10\r
 \r
-SUB dead (a)\r
-elud(a) = elud(a) - 1\r
-putworm a\r
-END SUB\r
+    11\r
+    CLOSE #1\r
 \r
-SUB init\r
-level 1\r
-END SUB\r
+    stuff\r
+    show\r
 \r
-SUB level (a)\r
-LOCATE 5, 5\r
-PRINT "G E T   R E A D Y"\r
-LOCATE 7, 5\r
-PRINT "L E V E L :"; a\r
+    FOR b = 1 TO ussm\r
+        ussl(b) = 0\r
+        putworm b\r
+    NEXT b\r
 \r
-FOR b = 1 TO wai\r
-SOUND 0, 1\r
-NEXT b\r
-CLS\r
+    stat\r
+END SUB\r
 \r
+SUB prc(a%)\r
+    subt a\r
 \r
-FOR y = 0 TO 36\r
-FOR x = 0 TO 36\r
-buf(x, y) = 0\r
-NEXT x\r
-NEXT y\r
+    ussp(a) = ussp(a) + 1\r
 \r
-FOR x = 0 TO 36\r
-buf(x, 0) = 1\r
-buf(x, 36) = 1\r
-buf(0, x) = 1\r
-buf(36, x) = 1\r
-NEXT x\r
+    IF elud(a) = 0 THEN\r
+        GOTO 4\r
+    END IF\r
 \r
+    IF auto(a) = 1 THEN\r
+        autop a\r
+    END IF\r
 \r
+    ux(a) = ux(a) + uxp(a)\r
+    uy(a) = uy(a) + uyp(a)\r
 \r
-b$ = cnum(a) + ".lvl"\r
-OPEN b$ FOR INPUT AS #1\r
-d = 0\r
-10\r
-IF EOF(1) <> 0 THEN GOTO 11\r
-LINE INPUT #1, c$\r
-IF LEFT$(c$, 1) = "/" THEN\r
-d = d + 1\r
-IF d > 35 THEN GOTO 12\r
-g = LEN(c$)\r
-IF g > 36 THEN g = 36\r
-FOR e = 2 TO g\r
-f$ = RIGHT$(LEFT$(c$, e), 1)\r
-IF f$ = "#" OR f$ = "m" THEN buf(e - 1, d) = 1 ELSE buf(e - 1, d) = 0\r
-NEXT e\r
-END IF\r
-12\r
+    IF ux(a) = 35 THEN\r
+        ux(a) = 2\r
+    END IF\r
 \r
-GOTO 10\r
-11\r
+    IF uy(a) = 35 THEN\r
+        uy(a) = 2\r
+    END IF\r
 \r
-CLOSE #1\r
+    IF ux(a) = 1 THEN\r
+        ux(a) = 34\r
+    END IF\r
 \r
+    IF uy(a) = 1 THEN\r
+        uy(a) = 34\r
+    END IF\r
 \r
-stuff\r
-show\r
+    x = ux(a)\r
+    y = uy(a)\r
 \r
+    3\r
+    IF buf(x, y) = 2 THEN\r
+        buf(x, y) = 0\r
 \r
-FOR b = 1 TO ussm\r
-ussl(b) = 0\r
-putworm b\r
-NEXT b\r
-stat\r
-END SUB\r
+        sc x, y\r
 \r
-SUB prc (a)\r
+        stuff\r
 \r
-subt a\r
-ussp(a) = ussp(a) + 1\r
+        ussl(a) = ussl(a) + mtm\r
 \r
-IF elud(a) = 0 THEN GOTO 4\r
+        usss(a) = usss(a) + mtm\r
 \r
-IF auto(a) = 1 THEN autop a\r
+        FOR b = 1 TO ussm\r
+            IF (elud(b) > 0) AND (auto(b) = 1) THEN\r
+                ai b\r
+            END IF\r
+        NEXT b\r
 \r
+        stat\r
 \r
+        GOTO 3\r
+    END IF\r
 \r
-ux(a) = ux(a) + uxp(a)\r
-uy(a) = uy(a) + uyp(a)\r
-IF ux(a) = 35 THEN ux(a) = 2\r
-IF uy(a) = 35 THEN uy(a) = 2\r
-IF ux(a) = 1 THEN ux(a) = 34\r
-IF uy(a) = 1 THEN uy(a) = 34\r
+    IF buf(x, y) > 0 THEN\r
+        dead a\r
 \r
+        GOTO 4\r
+    END IF\r
 \r
-x = ux(a)\r
-y = uy(a)\r
+    IF a = 1 THEN\r
+        buf(x, y) = 10\r
+    ELSEIF a = 2 THEN\r
+        buf(x, y) = 11\r
+    ELSEIF a = 3 THEN\r
+        buf(x, y) = 12\r
+    ELSEIF a = 4 THEN\r
+        buf(x, y) = 13\r
+    ELSEIF a = 5 THEN\r
+        buf(x, y) = 14\r
+    END IF\r
 \r
-3\r
-IF buf(x, y) = 2 THEN\r
-buf(x, y) = 0\r
-sc x, y\r
-stuff\r
-ussl(a) = ussl(a) + mtm\r
-usss(a) = usss(a) + mtm\r
-FOR b = 1 TO ussm\r
-IF (elud(b) > 0) AND (auto(b) = 1) THEN ai b\r
-NEXT b\r
-stat\r
-GOTO 3\r
-END IF\r
+    sc x, y\r
 \r
-IF buf(x, y) > 0 THEN dead a: GOTO 4\r
-IF a = 1 THEN buf(x, y) = 10\r
-IF a = 2 THEN buf(x, y) = 11\r
-IF a = 3 THEN buf(x, y) = 12\r
-IF a = 4 THEN buf(x, y) = 13\r
-IF a = 5 THEN buf(x, y) = 14\r
-sc x, y\r
-IF ussp(a) > 2000 THEN ussp(a) = ussp(a) - 2000\r
-ussx(ussp(a), a) = x\r
-ussy(ussp(a), a) = y\r
+    IF ussp(a) > 2000 THEN\r
+        ussp(a) = ussp(a) - 2000\r
+    END IF\r
 \r
-4\r
+    ussx(ussp(a), a) = x\r
 \r
+    ussy(ussp(a), a) = y\r
+\r
+    4\r
 END SUB\r
 \r
-SUB putworm (a)\r
-b = ussl(a)\r
-FOR c = b TO 1 STEP -1\r
-ussl(a) = c\r
-subt a\r
-NEXT c\r
-\r
-9\r
-uy(a) = INT(RND * 30 + 2)\r
-ux(a) = INT(RND * 10 + 5)\r
-FOR b = ux(a) TO ux(a) + 10\r
-IF buf(b, uy(a)) <> 0 THEN GOTO 9\r
-NEXT b\r
+SUB putworm(a%)\r
+    b = ussl(a)\r
 \r
-uxp(a) = 1\r
-uyp(a) = 0\r
-ussl(a) = 3\r
-stat\r
+    FOR c = b TO 1 STEP -1\r
+        ussl(a) = c\r
 \r
-END SUB\r
+        subt a\r
+    NEXT c\r
+\r
+    9\r
+    uy(a) = INT(RND * 30 + 2)\r
+\r
+    ux(a) = INT(RND * 10 + 5)\r
 \r
-SUB sc (x, y)\r
-x1 = x * 5\r
-y1 = y * 5\r
-\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 0, BF\r
-\r
-SELECT CASE buf(x, y)\r
-CASE 0\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 1, BF\r
-CASE 1\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 7, BF\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 8, B\r
-CASE 2\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 14, BF\r
-CASE 10\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 10, BF\r
-PSET (x1, y1), 0\r
-PSET (x1 + 3, y1), 0\r
-PSET (x1, y1 + 3), 0\r
-PSET (x1 + 3, y1 + 3), 0\r
-\r
-CASE 11\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 12, BF\r
-PSET (x1, y1), 0\r
-PSET (x1 + 3, y1), 0\r
-PSET (x1, y1 + 3), 0\r
-PSET (x1 + 3, y1 + 3), 0\r
-\r
-CASE 12\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 13, BF\r
-PSET (x1, y1), 0\r
-PSET (x1 + 3, y1), 0\r
-PSET (x1, y1 + 3), 0\r
-PSET (x1 + 3, y1 + 3), 0\r
-\r
-CASE 13\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 15, BF\r
-PSET (x1, y1), 0\r
-PSET (x1 + 3, y1), 0\r
-PSET (x1, y1 + 3), 0\r
-PSET (x1 + 3, y1 + 3), 0\r
-\r
-CASE 14\r
-LINE (x1, y1)-(x1 + 3, y1 + 3), 9, BF\r
-PSET (x1, y1), 0\r
-PSET (x1 + 3, y1), 0\r
-PSET (x1, y1 + 3), 0\r
-PSET (x1 + 3, y1 + 3), 0\r
-\r
-\r
-END SELECT\r
+    FOR b = ux(a) TO ux(a) + 10\r
+        IF buf(b, uy(a)) <> 0 THEN\r
+            GOTO 9\r
+        END IF\r
+    NEXT b\r
 \r
+    uxp(a) = 1\r
+\r
+    uyp(a) = 0\r
+\r
+    ussl(a) = 3\r
+\r
+    stat\r
 END SUB\r
 \r
-SUB sc2 (x, y)\r
-'LOCATE 1, 1\r
-'PRINT x, y\r
-'x1 = x * 5 + 2\r
-'y1 = y * 5 + 2\r
-'PSET (x1, y1), 15\r
+SUB sc(x%, y%)\r
+    x1 = x% * 5\r
 \r
+    y1 = y% * 5\r
 \r
-'a$ = INPUT$(1)\r
+    LINE (x1, y1)-(x1 + 3, y1 + 3), 0, BF\r
+\r
+    SELECT CASE buf(x%, y%)\r
+        CASE 0\r
+            LINE (x1, y1)-(x1 + 3, y1 + 3), 1, BF\r
+\r
+        CASE 1\r
+            LINE (x1, y1)-(x1 + 3, y1 + 3), 7, BF\r
+\r
+            LINE (x1, y1)-(x1 + 3, y1 + 3), 8, B\r
+\r
+        CASE 2\r
+            LINE (x1, y1)-(x1 + 3, y1 + 3), 14, BF\r
+\r
+        CASE 10\r
+            LINE (x1, y1)-(x1 + 3, y1 + 3), 10, BF\r
+\r
+            PSET (x1, y1), 0\r
+\r
+            PSET (x1 + 3, y1), 0\r
+\r
+            PSET (x1, y1 + 3), 0\r
+\r
+            PSET (x1 + 3, y1 + 3), 0\r
+\r
+        CASE 11\r
+            LINE (x1, y1)-(x1 + 3, y1 + 3), 12, BF\r
+\r
+            PSET (x1, y1), 0\r
+\r
+            PSET (x1 + 3, y1), 0\r
+\r
+            PSET (x1, y1 + 3), 0\r
+\r
+            PSET (x1 + 3, y1 + 3), 0\r
+\r
+        CASE 12\r
+            LINE (x1, y1)-(x1 + 3, y1 + 3), 13, BF\r
+\r
+            PSET (x1, y1), 0\r
+\r
+            PSET (x1 + 3, y1), 0\r
+\r
+            PSET (x1, y1 + 3), 0\r
+\r
+            PSET (x1 + 3, y1 + 3), 0\r
+\r
+        CASE 13\r
+            LINE (x1, y1)-(x1 + 3, y1 + 3), 15, BF\r
+\r
+            PSET (x1, y1), 0\r
+\r
+            PSET (x1 + 3, y1), 0\r
+\r
+            PSET (x1, y1 + 3), 0\r
+\r
+            PSET (x1 + 3, y1 + 3), 0\r
+\r
+        CASE 14\r
+            LINE (x1, y1)-(x1 + 3, y1 + 3), 9, BF\r
+\r
+            PSET (x1, y1), 0\r
 \r
+            PSET (x1 + 3, y1), 0\r
+\r
+            PSET (x1, y1 + 3), 0\r
+\r
+            PSET (x1 + 3, y1 + 3), 0\r
+    END SELECT\r
 END SUB\r
 \r
-SUB show\r
-FOR y = 1 TO 35\r
-FOR x = 1 TO 35\r
-sc x, y\r
+SUB sc2(x%, y%)\r
+    ' LOCATE 1, 1\r
+    ' PRINT x%, y%\r
 \r
-NEXT x\r
-NEXT y\r
+    ' x1 = x% * 5 + 2\r
+\r
+    ' y1 = y% * 5 + 2\r
+\r
+    ' PSET (x1, y1), 15\r
+\r
+    ' a$ = INPUT$(1)\r
+END SUB\r
 \r
+SUB show()\r
+    FOR y = 1 TO 35\r
+        FOR x = 1 TO 35\r
+            sc x, y\r
+        NEXT x\r
+    NEXT y\r
 END SUB\r
 \r
-SUB showb\r
+SUB showb()\r
 GOTO 15\r
 FOR x = 1 TO 35\r
 FOR y = 1 TO 35\r
@@ -430,120 +576,209 @@ NEXT x
 'a$ = INPUT$(1)\r
 END SUB\r
 \r
-SUB start\r
-SCREEN 13\r
-RANDOMIZE TIMER\r
-\r
-uy(1) = 5\r
-uy(2) = 10\r
-uy(3) = 15\r
-uy(4) = 20\r
-uy(5) = 25\r
-\r
-\r
-FOR a = 1 TO ussm\r
-ux(a) = 15\r
-uxp(a) = 1\r
-uyp(a) = 0\r
-ussp(a) = 0\r
-ussl(a) = 3\r
-elud(a) = elum\r
-usss(a) = 0\r
-usskp(a) = 1\r
-ussk(1, a) = 5\r
-NEXT a\r
-mtm = 0\r
+SUB start()\r
+    SCREEN 13\r
+\r
+    RANDOMIZE TIMER\r
+\r
+    uy(1) = 5\r
+\r
+    uy(2) = 10\r
+\r
+    uy(3) = 15\r
+\r
+    uy(4) = 20\r
+\r
+    uy(5) = 25\r
+\r
+    FOR a = 1 TO ussm\r
+        ux(a) = 15\r
+\r
+        uxp(a) = 1\r
+\r
+        uyp(a) = 0\r
+\r
+        ussp(a) = 0\r
+\r
+        ussl(a) = 3\r
+\r
+        elud(a) = elum\r
+\r
+        usss(a) = 0\r
+\r
+        usskp(a) = 1\r
+\r
+        ussk(1, a) = 5\r
+    NEXT a\r
+\r
+    mtm = 0\r
 END SUB\r
 \r
-SUB stat\r
-LOCATE 1, 25\r
-PRINT mtm\r
+SUB stat()\r
+    LOCATE 1, 25\r
+\r
+    PRINT mtm\r
+\r
+    FOR a = 1 TO 5\r
+        COLOR 15\r
+\r
+        LOCATE 2 + a, 24\r
+\r
+        PRINT RIGHT$(STR$(a), 1)\r
+\r
+        COLOR 10\r
+\r
+        LOCATE 2 + a, 26\r
+\r
+        IF auto(a) = 1 THEN\r
+            PRINT "*"\r
+        ELSE\r
+            PRINT "-"\r
+        END IF\r
+\r
+        COLOR 12\r
+\r
+        LOCATE 2 + a, 27\r
+\r
+        b$ = STR$(usss(a))\r
 \r
+        PRINT RIGHT$(b$, LEN(b$) - 1)\r
 \r
-FOR a = 1 TO 5\r
-COLOR 15\r
-LOCATE 2 + a, 24\r
-PRINT RIGHT$(STR$(a), 1)\r
+        COLOR 13\r
 \r
-COLOR 10\r
-LOCATE 2 + a, 26\r
-IF auto(a) = 1 THEN PRINT "*" ELSE PRINT "-"\r
+        LOCATE 2 + a, 30\r
 \r
-COLOR 12\r
-LOCATE 2 + a, 27\r
-b$ = STR$(usss(a))\r
-PRINT RIGHT$(b$, LEN(b$) - 1)\r
+        b$ = STR$(elud(a))\r
 \r
-COLOR 13\r
-LOCATE 2 + a, 30\r
-b$ = STR$(elud(a))\r
-PRINT RIGHT$(b$, LEN(b$) - 1)\r
-NEXT a\r
+        PRINT RIGHT$(b$, LEN(b$) - 1)\r
+    NEXT a\r
 \r
-COLOR 10\r
-LOCATE 8, 26\r
-PRINT "Auto"\r
+    COLOR 10\r
 \r
-COLOR 12\r
-LOCATE 2, 27\r
-PRINT "Score"\r
+    LOCATE 8, 26\r
 \r
-COLOR 13\r
-LOCATE 8, 30\r
-PRINT "Lives"\r
+    PRINT "Auto"\r
 \r
-LOCATE 1, 30\r
-PRINT "Level:"; lvl\r
+    COLOR 12\r
 \r
+    LOCATE 2, 27\r
 \r
+    PRINT "Score"\r
+\r
+    COLOR 13\r
+\r
+    LOCATE 8, 30\r
+\r
+    PRINT "Lives"\r
+\r
+    LOCATE 1, 30\r
+\r
+    PRINT "Level:"; lvl\r
 END SUB\r
 \r
-SUB stuff\r
-2\r
-x = INT(RND * 33 + 2)\r
-y = INT(RND * 33 + 2)\r
-IF buf(x, y) = 0 THEN\r
-buf(x, y) = 2\r
-sc x, y\r
-ELSE\r
-GOTO 2\r
-END IF\r
-mtm = mtm + 1\r
-stat\r
+SUB stuff()\r
+    2\r
+    x = INT(RND * 33 + 2)\r
+\r
+    y = INT(RND * 33 + 2)\r
+\r
+    IF buf(x, y) = 0 THEN\r
+        buf(x, y) = 2\r
+\r
+        sc x, y\r
+    ELSE\r
+        GOTO 2\r
+    END IF\r
+\r
+    mtm = mtm + 1\r
+\r
+    stat\r
 END SUB\r
 \r
-SUB subt (b)\r
-a = ussp(b) - ussl(b)\r
-IF a < 1 THEN a = a + 2000\r
-IF ussx(a, b) > 0 THEN\r
+SUB subt(b%)\r
+    a = ussp(b) - ussl(b)\r
 \r
-buf(ussx(a, b), ussy(a, b)) = 0\r
-sc ussx(a, b), ussy(a, b)\r
-ussx(a, b) = 0\r
-END IF\r
+    IF a < 1 THEN\r
+        a = a + 2000\r
+    END IF\r
+\r
+    IF ussx(a, b) > 0 THEN\r
+        buf(ussx(a, b), ussy(a, b)) = 0\r
+\r
+        sc ussx(a, b), ussy(a, b)\r
+\r
+        ussx(a, b) = 0\r
+    END IF\r
 END SUB\r
 \r
-SUB tkt\r
-a$ = INKEY$\r
-IF a$ = CHR$(27) THEN SYSTEM\r
-IF (a$ = CHR$(0) + "M") AND (uxp(1) <> -1) THEN uxp(1) = 1: uyp(1) = 0\r
-IF (a$ = CHR$(0) + "K") AND (uxp(1) <> 1) THEN uxp(1) = -1: uyp(1) = 0\r
-IF (a$ = CHR$(0) + "P") AND (uyp(1) <> -1) THEN uxp(1) = 0: uyp(1) = 1\r
-IF (a$ = CHR$(0) + "H") AND (uyp(1) <> 1) THEN uxp(1) = 0: uyp(1) = -1\r
-\r
-IF (a$ = "d") AND (uxp(2) <> -1) THEN uxp(2) = 1: uyp(2) = 0\r
-IF (a$ = "a") AND (uxp(2) <> 1) THEN uxp(2) = -1: uyp(2) = 0\r
-IF (a$ = "s") AND (uyp(2) <> -1) THEN uxp(2) = 0: uyp(2) = 1\r
-IF (a$ = "w") AND (uyp(2) <> 1) THEN uxp(2) = 0: uyp(2) = -1\r
-\r
-b = VAL(a$)\r
-IF b > 0 THEN\r
-IF auto(b) = 1 THEN auto(b) = 0 ELSE auto(b) = 1\r
-stat\r
-END IF\r
+SUB tkt()\r
+    a$ = INKEY$\r
+\r
+    IF a$ = CHR$(27) THEN\r
+        SYSTEM\r
+    END IF\r
+\r
+    IF (a$ = CHR$(0) + "M") AND (uxp(1) <> -1) THEN\r
+        uxp(1) = 1\r
+\r
+        uyp(1) = 0\r
+    END IF\r
+\r
+    IF (a$ = CHR$(0) + "K") AND (uxp(1) <> 1) THEN\r
+        uxp(1) = -1\r
+\r
+        uyp(1) = 0\r
+    END IF\r
+\r
+    IF (a$ = CHR$(0) + "P") AND (uyp(1) <> -1) THEN\r
+        uxp(1) = 0\r
+\r
+        uyp(1) = 1\r
+    END IF\r
+\r
+    IF (a$ = CHR$(0) + "H") AND (uyp(1) <> 1) THEN\r
+        uxp(1) = 0\r
+\r
+        uyp(1) = -1\r
+    END IF\r
+\r
+    IF (a$ = "d") AND (uxp(2) <> -1) THEN\r
+        uxp(2) = 1\r
+\r
+        uyp(2) = 0\r
+    END IF\r
+\r
+    IF (a$ = "a") AND (uxp(2) <> 1) THEN\r
+        uxp(2) = -1\r
+\r
+        uyp(2) = 0\r
+    END IF\r
+\r
+    IF (a$ = "s") AND (uyp(2) <> -1) THEN\r
+        uxp(2) = 0\r
+\r
+        uyp(2) = 1\r
+    END IF\r
+\r
+    IF (a$ = "w") AND (uyp(2) <> 1) THEN\r
+        uxp(2) = 0\r
+\r
+        uyp(2) = -1\r
+    END IF\r
+\r
+    b = VAL(a$)\r
+\r
+    IF b > 0 THEN\r
+        IF auto(b) = 1 THEN\r
+            auto(b) = 0\r
+        ELSE\r
+            auto(b) = 1\r
+        END IF\r
 \r
-FOR a = 1 TO ussm\r
-prc a\r
-NEXT a\r
+        stat\r
+    END IF\r
 \r
+    FOR a = 1 TO ussm\r
+        prc a\r
+    NEXT a\r
 END SUB\r