Better code readability
authorSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 13 Aug 2025 15:03:26 +0000 (18:03 +0300)
committerSvjatoslav Agejenko <svjatoslav@svjatoslav.eu>
Wed, 13 Aug 2025 15:03:26 +0000 (18:03 +0300)
Games/Pomppu Paavo/Pomppu Paavo.bas

index b78261a..9cdc310 100755 (executable)
@@ -262,34 +262,6 @@ IF a1 < 2 THEN maailm = maailm - 1: LoadCurrentLevel: a1 = 279
 IF b1 > 170 THEN FOR a = 3000 TO 500 STEP -100: SOUND a, .3: NEXT a: HandlePlayerDeath\r
 GOTO 12\r
 \r
-SUB PlayHurtSound\r
-a = 1700\r
-b = 1900\r
-FOR c = 1 TO 50\r
-a = a + 3\r
-b = b - 5\r
-SOUND a, .2\r
-SOUND b, .2\r
-NEXT c\r
-END SUB\r
-\r
-SUB UpdateLoadingScreen\r
-LINE (0, 0)-(319, 150), 0, BF\r
-LOCATE 20, 10 + prog\r
-prog = prog + 1\r
-PRINT "."\r
-END SUB\r
-\r
-SUB HandlePlayerDeath\r
-IF maailm > 1 THEN maailm = maailm - 1\r
-\r
-LoadCurrentLevel\r
-a1 = 20\r
-b1 = 100\r
-lives = lives - 1\r
-UpdateHUD 0\r
-END SUB\r
-\r
 SUB GameOverSequence\r
 DIM diep(1 TO 2000)\r
 GET (0, 0)-(150, 20), diep\r
@@ -345,76 +317,13 @@ SYSTEM
 \r
 END SUB\r
 \r
-SUB inpur\r
-sj$ = ""\r
-WHILE sj$ = ""\r
-sj$ = INKEY$\r
-WEND\r
-END SUB\r
-\r
-SUB intro\r
-CLS\r
-wiew 2, 2, 10, 1, "win.i01"\r
-END SUB\r
-\r
-SUB LoadCurrentLevel\r
-IF maailm > 10 THEN\r
-CLS\r
-PRINT "Mission complete!"\r
-PRINT "Game over"\r
-END\r
-END IF\r
-\r
-FOR a = 1 TO 10\r
-text5(a + 1) = levelData(a, maailm)\r
-NEXT a\r
-\r
-FOR a = 1 TO 10\r
-FOR b = 1 TO 15\r
-IF ruum(b, a - 2) = "2" THEN MID$(levelData(a, maailm1), b) = " "\r
-NEXT b\r
-NEXT a\r
-maailm1 = maailm\r
-\r
-FOR a = -3 TO 20\r
-FOR b = -3 TO 20\r
-ruum(a, b) = ""\r
-ruum1(a, b) = ""\r
-NEXT b\r
-NEXT a\r
-\r
-FOR a = 1 TO 10\r
-mobY(a) = 1000\r
-kolled(a) = 1\r
-kollal(a) = 0\r
-NEXT a\r
-\r
-CLS\r
-PAINT (1, 1), levelSkyColor(maailm)\r
-GET (1, 2)-(20, 21), tuhi\r
-FOR a = 2 TO 10\r
-FOR b = 1 TO 15\r
-c$ = RIGHT$(LEFT$(text5(a), b), 1)\r
-IF c$ = "-" THEN PUT ((b - 1) * 20, (a - 2) * 20), pilv, OR\r
-IF c$ = "." THEN PUT ((b - 1) * 20, (a - 2) * 20), poosas, OR\r
-IF c$ = "+" THEN PUT ((b - 1) * 20, (a - 2) * 20), puu, OR\r
-IF c$ = "$" THEN PUT ((b - 1) * 20, (a - 2) * 20), munt, OR: ruum(b, a - 2) = "1"\r
-IF c$ = "m" THEN PUT ((b - 1) * 20, (a - 2) * 20), kast, PSET: ruum(b, a - 2) = "m"\r
-IF c$ = "o" THEN PUT ((b - 1) * 20, (a - 2) * 20), tellis, PSET: ruum(b, a - 2) = "m": ruum1(b, a - 2) = "o"\r
-IF c$ = " " THEN ruum(b, a) = " "\r
+SUB HandlePlayerDeath\r
+IF maailm > 1 THEN maailm = maailm - 1\r
 \r
-IF c$ = "1" THEN mobX(1) = (b - 1) * 20: mobY(1) = (a - 2) * 20: GET (mobX(1), mobY(1))-(mobX(1) + 20, mobY(1) + 20), koll(202, 1)\r
-IF c$ = "2" THEN mobX(2) = (b - 1) * 20: mobY(2) = (a - 2) * 20: GET (mobX(2), mobY(2))-(mobX(2) + 20, mobY(2) + 20), koll(202, 2)\r
-IF c$ = "3" THEN mobX(3) = (b - 1) * 20: mobY(3) = (a - 2) * 20: GET (mobX(3), mobY(3))-(mobX(3) + 20, mobY(3) + 20), koll(202, 3)\r
-IF c$ = "4" THEN mobX(4) = (b - 1) * 20: mobY(4) = (a - 2) * 20: GET (mobX(4), mobY(4))-(mobX(4) + 20, mobY(4) + 20), koll(202, 4)\r
-IF c$ = "5" THEN mobX(5) = (b - 1) * 20: mobY(5) = (a - 2) * 20: GET (mobX(5), mobY(5))-(mobX(5) + 20, mobY(5) + 20), koll(202, 5)\r
-IF c$ = "6" THEN mobX(6) = (b - 1) * 20: mobY(6) = (a - 2) * 20: GET (mobX(6), mobY(6))-(mobX(6) + 20, mobY(6) + 20), koll(202, 6)\r
-IF c$ = "7" THEN mobX(7) = (b - 1) * 20: mobY(7) = (a - 2) * 20: GET (mobX(7), mobY(7))-(mobX(7) + 20, mobY(7) + 20), koll(202, 7)\r
-IF c$ = "8" THEN mobX(8) = (b - 1) * 20: mobY(8) = (a - 2) * 20: GET (mobX(8), mobY(8))-(mobX(8) + 20, mobY(8) + 20), koll(202, 8)\r
-IF c$ = "9" THEN mobX(9) = (b - 1) * 20: mobY(9) = (a - 2) * 20: GET (mobX(9), mobY(9))-(mobX(9) + 20, mobY(9) + 20), koll(202, 9)\r
-IF c$ = "0" THEN mobX(10) = (b - 1) * 20: mobY(10) = (a - 2) * 20: GET (mobX(10), mobY(10))-(mobX(10) + 20, mobY(10) + 20), koll(202, 10)\r
-NEXT b\r
-NEXT a\r
+LoadCurrentLevel\r
+a1 = 20\r
+b1 = 100\r
+lives = lives - 1\r
 UpdateHUD 0\r
 END SUB\r
 \r
@@ -530,6 +439,18 @@ levelData(8, 10) = "m     .   1    "
 levelData(9, 10) = "mmmmmmmmmmm  mm"\r
 END SUB\r
 \r
+SUB inpur\r
+sj$ = ""\r
+WHILE sj$ = ""\r
+sj$ = INKEY$\r
+WEND\r
+END SUB\r
+\r
+SUB intro\r
+CLS\r
+wiew 2, 2, 10, 1, "win.i01"\r
+END SUB\r
+\r
 SUB load (a$)\r
 OPEN a$ FOR INPUT AS #2\r
 INPUT #2, pikkus\r
@@ -539,31 +460,90 @@ NEXT a
 CLOSE\r
 END SUB\r
 \r
-SUB UpdateHUD (zaz)\r
-IF lives < 0 THEN GameOverSequence\r
-PUT (0, 180), munt1, PSET\r
-rahaz(1) = rahaz(1) + zaz\r
-FOR b = 1 TO 3\r
-IF rahaz(1) > 9 THEN rahaz(1) = rahaz(1) - 10: rahaz(2) = rahaz(2) + 1\r
-IF rahaz(2) > 9 THEN rahaz(1) = 0: rahaz(2) = 0: lives = lives + 1\r
+SUB LoadCurrentLevel\r
+IF maailm > 10 THEN\r
+CLS\r
+PRINT "Mission complete!"\r
+PRINT "Game over"\r
+END\r
+END IF\r
+\r
+FOR a = 1 TO 10\r
+text5(a + 1) = levelData(a, maailm)\r
+NEXT a\r
+\r
+FOR a = 1 TO 10\r
+FOR b = 1 TO 15\r
+IF ruum(b, a - 2) = "2" THEN MID$(levelData(a, maailm1), b) = " "\r
 NEXT b\r
-LOCATE 1, 1\r
-r = 3\r
-FOR a = 1 TO 2\r
-r = r - 1\r
-PUT ((a * 11) + 10, 180), number(100, rahaz(r)), PSET\r
 NEXT a\r
-IF lives > 10 THEN lives = 10\r
-PUT (43, 180), number(100, 10), PSET\r
-PUT (53, 180), munt2, PSET\r
-PUT (73, 180), number(100, lives), PSET\r
+maailm1 = maailm\r
+\r
+FOR a = -3 TO 20\r
+FOR b = -3 TO 20\r
+ruum(a, b) = ""\r
+ruum1(a, b) = ""\r
+NEXT b\r
+NEXT a\r
+\r
+FOR a = 1 TO 10\r
+mobY(a) = 1000\r
+kolled(a) = 1\r
+kollal(a) = 0\r
+NEXT a\r
+\r
+CLS\r
+PAINT (1, 1), levelSkyColor(maailm)\r
+GET (1, 2)-(20, 21), tuhi\r
+FOR a = 2 TO 10\r
+FOR b = 1 TO 15\r
+c$ = RIGHT$(LEFT$(text5(a), b), 1)\r
+IF c$ = "-" THEN PUT ((b - 1) * 20, (a - 2) * 20), pilv, OR\r
+IF c$ = "." THEN PUT ((b - 1) * 20, (a - 2) * 20), poosas, OR\r
+IF c$ = "+" THEN PUT ((b - 1) * 20, (a - 2) * 20), puu, OR\r
+IF c$ = "$" THEN PUT ((b - 1) * 20, (a - 2) * 20), munt, OR: ruum(b, a - 2) = "1"\r
+IF c$ = "m" THEN PUT ((b - 1) * 20, (a - 2) * 20), kast, PSET: ruum(b, a - 2) = "m"\r
+IF c$ = "o" THEN PUT ((b - 1) * 20, (a - 2) * 20), tellis, PSET: ruum(b, a - 2) = "m": ruum1(b, a - 2) = "o"\r
+IF c$ = " " THEN ruum(b, a) = " "\r
+\r
+IF c$ = "1" THEN mobX(1) = (b - 1) * 20: mobY(1) = (a - 2) * 20: GET (mobX(1), mobY(1))-(mobX(1) + 20, mobY(1) + 20), koll(202, 1)\r
+IF c$ = "2" THEN mobX(2) = (b - 1) * 20: mobY(2) = (a - 2) * 20: GET (mobX(2), mobY(2))-(mobX(2) + 20, mobY(2) + 20), koll(202, 2)\r
+IF c$ = "3" THEN mobX(3) = (b - 1) * 20: mobY(3) = (a - 2) * 20: GET (mobX(3), mobY(3))-(mobX(3) + 20, mobY(3) + 20), koll(202, 3)\r
+IF c$ = "4" THEN mobX(4) = (b - 1) * 20: mobY(4) = (a - 2) * 20: GET (mobX(4), mobY(4))-(mobX(4) + 20, mobY(4) + 20), koll(202, 4)\r
+IF c$ = "5" THEN mobX(5) = (b - 1) * 20: mobY(5) = (a - 2) * 20: GET (mobX(5), mobY(5))-(mobX(5) + 20, mobY(5) + 20), koll(202, 5)\r
+IF c$ = "6" THEN mobX(6) = (b - 1) * 20: mobY(6) = (a - 2) * 20: GET (mobX(6), mobY(6))-(mobX(6) + 20, mobY(6) + 20), koll(202, 6)\r
+IF c$ = "7" THEN mobX(7) = (b - 1) * 20: mobY(7) = (a - 2) * 20: GET (mobX(7), mobY(7))-(mobX(7) + 20, mobY(7) + 20), koll(202, 7)\r
+IF c$ = "8" THEN mobX(8) = (b - 1) * 20: mobY(8) = (a - 2) * 20: GET (mobX(8), mobY(8))-(mobX(8) + 20, mobY(8) + 20), koll(202, 8)\r
+IF c$ = "9" THEN mobX(9) = (b - 1) * 20: mobY(9) = (a - 2) * 20: GET (mobX(9), mobY(9))-(mobX(9) + 20, mobY(9) + 20), koll(202, 9)\r
+IF c$ = "0" THEN mobX(10) = (b - 1) * 20: mobY(10) = (a - 2) * 20: GET (mobX(10), mobY(10))-(mobX(10) + 20, mobY(10) + 20), koll(202, 10)\r
+NEXT b\r
+NEXT a\r
+UpdateHUD 0\r
 END SUB\r
 \r
-SUB save (a$)\r
-OPEN a$ FOR OUTPUT AS #2\r
-PRINT #2, pikkus\r
+SUB PlayHurtSound\r
+a = 1700\r
+b = 1900\r
+FOR c = 1 TO 50\r
+a = a + 3\r
+b = b - 5\r
+SOUND a, .2\r
+SOUND b, .2\r
+NEXT c\r
+END SUB\r
+\r
+SUB RenderImageFromTextFile (a1, b1, c1, d1, a$)\r
+a1 = a1 * 8\r
+b1 = b1 * 8\r
+laius1 = c1 - a1\r
+pikkus1 = d1 - b1\r
+OPEN a$ + ".i01" FOR INPUT AS #1\r
+INPUT #1, pikkus\r
 FOR a = 1 TO pikkus\r
-PRINT #2, text$(a)\r
+LINE INPUT #1, z$\r
+FOR b = LEN(z$) TO 1 STEP -1\r
+LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1), b1 + ((a + 1) * d1)), ASC(LEFT$(RIGHT$(z$, b), 1)) - 40, BF\r
+NEXT b\r
 NEXT a\r
 CLOSE\r
 END SUB\r
@@ -583,31 +563,42 @@ NEXT a
 END SUB\r
 \r
 DEFINT A-Z\r
-SUB wiew (a1, b1, c1, d1, a$)\r
-laius1 = c1 - a1\r
-pikkus1 = d1 - b1\r
-OPEN a$ + ".i01" FOR INPUT AS #1\r
-INPUT #1, pikkus\r
-FOR a = 1 TO pikkus\r
-LINE INPUT #1, z$\r
-FOR b = 1 TO LEN(z$)\r
-LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1) - 1, b1 + ((a + 1) * d1)), ASC(RIGHT$(LEFT$(z$, b), 1)) - 40, BF\r
+SUB UpdateHUD (zaz)\r
+IF lives < 0 THEN GameOverSequence\r
+PUT (0, 180), munt1, PSET\r
+rahaz(1) = rahaz(1) + zaz\r
+FOR b = 1 TO 3\r
+IF rahaz(1) > 9 THEN rahaz(1) = rahaz(1) - 10: rahaz(2) = rahaz(2) + 1\r
+IF rahaz(2) > 9 THEN rahaz(1) = 0: rahaz(2) = 0: lives = lives + 1\r
 NEXT b\r
+LOCATE 1, 1\r
+r = 3\r
+FOR a = 1 TO 2\r
+r = r - 1\r
+PUT ((a * 11) + 10, 180), number(100, rahaz(r)), PSET\r
 NEXT a\r
-CLOSE\r
+IF lives > 10 THEN lives = 10\r
+PUT (43, 180), number(100, 10), PSET\r
+PUT (53, 180), munt2, PSET\r
+PUT (73, 180), number(100, lives), PSET\r
 END SUB\r
 \r
-SUB RenderImageFromTextFile (a1, b1, c1, d1, a$)\r
-a1 = a1 * 8\r
-b1 = b1 * 8\r
+SUB UpdateLoadingScreen\r
+LINE (0, 0)-(319, 150), 0, BF\r
+LOCATE 20, 10 + prog\r
+prog = prog + 1\r
+PRINT "."\r
+END SUB\r
+\r
+SUB wiew (a1, b1, c1, d1, a$)\r
 laius1 = c1 - a1\r
 pikkus1 = d1 - b1\r
 OPEN a$ + ".i01" FOR INPUT AS #1\r
 INPUT #1, pikkus\r
 FOR a = 1 TO pikkus\r
 LINE INPUT #1, z$\r
-FOR b = LEN(z$) TO 1 STEP -1\r
-LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1), b1 + ((a + 1) * d1)), ASC(LEFT$(RIGHT$(z$, b), 1)) - 40, BF\r
+FOR b = 1 TO LEN(z$)\r
+LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1) - 1, b1 + ((a + 1) * d1)), ASC(RIGHT$(LEFT$(z$, b), 1)) - 40, BF\r
 NEXT b\r
 NEXT a\r
 CLOSE\r