From fecaded5a7f2b644545b0f4d4b8b6a5f58298b88 Mon Sep 17 00:00:00 2001 From: Svjatoslav Agejenko Date: Wed, 13 Aug 2025 18:03:26 +0300 Subject: [PATCH] Better code readability --- Games/Pomppu Paavo/Pomppu Paavo.bas | 255 ++++++++++++++-------------- 1 file changed, 123 insertions(+), 132 deletions(-) diff --git a/Games/Pomppu Paavo/Pomppu Paavo.bas b/Games/Pomppu Paavo/Pomppu Paavo.bas index b78261a..9cdc310 100755 --- a/Games/Pomppu Paavo/Pomppu Paavo.bas +++ b/Games/Pomppu Paavo/Pomppu Paavo.bas @@ -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 GOTO 12 -SUB PlayHurtSound -a = 1700 -b = 1900 -FOR c = 1 TO 50 -a = a + 3 -b = b - 5 -SOUND a, .2 -SOUND b, .2 -NEXT c -END SUB - -SUB UpdateLoadingScreen -LINE (0, 0)-(319, 150), 0, BF -LOCATE 20, 10 + prog -prog = prog + 1 -PRINT "." -END SUB - -SUB HandlePlayerDeath -IF maailm > 1 THEN maailm = maailm - 1 - -LoadCurrentLevel -a1 = 20 -b1 = 100 -lives = lives - 1 -UpdateHUD 0 -END SUB - SUB GameOverSequence DIM diep(1 TO 2000) GET (0, 0)-(150, 20), diep @@ -345,76 +317,13 @@ SYSTEM END SUB -SUB inpur -sj$ = "" -WHILE sj$ = "" -sj$ = INKEY$ -WEND -END SUB - -SUB intro -CLS -wiew 2, 2, 10, 1, "win.i01" -END SUB - -SUB LoadCurrentLevel -IF maailm > 10 THEN -CLS -PRINT "Mission complete!" -PRINT "Game over" -END -END IF - -FOR a = 1 TO 10 -text5(a + 1) = levelData(a, maailm) -NEXT a - -FOR a = 1 TO 10 -FOR b = 1 TO 15 -IF ruum(b, a - 2) = "2" THEN MID$(levelData(a, maailm1), b) = " " -NEXT b -NEXT a -maailm1 = maailm - -FOR a = -3 TO 20 -FOR b = -3 TO 20 -ruum(a, b) = "" -ruum1(a, b) = "" -NEXT b -NEXT a - -FOR a = 1 TO 10 -mobY(a) = 1000 -kolled(a) = 1 -kollal(a) = 0 -NEXT a - -CLS -PAINT (1, 1), levelSkyColor(maailm) -GET (1, 2)-(20, 21), tuhi -FOR a = 2 TO 10 -FOR b = 1 TO 15 -c$ = RIGHT$(LEFT$(text5(a), b), 1) -IF c$ = "-" THEN PUT ((b - 1) * 20, (a - 2) * 20), pilv, OR -IF c$ = "." THEN PUT ((b - 1) * 20, (a - 2) * 20), poosas, OR -IF c$ = "+" THEN PUT ((b - 1) * 20, (a - 2) * 20), puu, OR -IF c$ = "$" THEN PUT ((b - 1) * 20, (a - 2) * 20), munt, OR: ruum(b, a - 2) = "1" -IF c$ = "m" THEN PUT ((b - 1) * 20, (a - 2) * 20), kast, PSET: ruum(b, a - 2) = "m" -IF c$ = "o" THEN PUT ((b - 1) * 20, (a - 2) * 20), tellis, PSET: ruum(b, a - 2) = "m": ruum1(b, a - 2) = "o" -IF c$ = " " THEN ruum(b, a) = " " +SUB HandlePlayerDeath +IF maailm > 1 THEN maailm = maailm - 1 -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) -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) -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) -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) -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) -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) -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) -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) -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) -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) -NEXT b -NEXT a +LoadCurrentLevel +a1 = 20 +b1 = 100 +lives = lives - 1 UpdateHUD 0 END SUB @@ -530,6 +439,18 @@ levelData(8, 10) = "m . 1 " levelData(9, 10) = "mmmmmmmmmmm mm" END SUB +SUB inpur +sj$ = "" +WHILE sj$ = "" +sj$ = INKEY$ +WEND +END SUB + +SUB intro +CLS +wiew 2, 2, 10, 1, "win.i01" +END SUB + SUB load (a$) OPEN a$ FOR INPUT AS #2 INPUT #2, pikkus @@ -539,31 +460,90 @@ NEXT a CLOSE END SUB -SUB UpdateHUD (zaz) -IF lives < 0 THEN GameOverSequence -PUT (0, 180), munt1, PSET -rahaz(1) = rahaz(1) + zaz -FOR b = 1 TO 3 -IF rahaz(1) > 9 THEN rahaz(1) = rahaz(1) - 10: rahaz(2) = rahaz(2) + 1 -IF rahaz(2) > 9 THEN rahaz(1) = 0: rahaz(2) = 0: lives = lives + 1 +SUB LoadCurrentLevel +IF maailm > 10 THEN +CLS +PRINT "Mission complete!" +PRINT "Game over" +END +END IF + +FOR a = 1 TO 10 +text5(a + 1) = levelData(a, maailm) +NEXT a + +FOR a = 1 TO 10 +FOR b = 1 TO 15 +IF ruum(b, a - 2) = "2" THEN MID$(levelData(a, maailm1), b) = " " NEXT b -LOCATE 1, 1 -r = 3 -FOR a = 1 TO 2 -r = r - 1 -PUT ((a * 11) + 10, 180), number(100, rahaz(r)), PSET NEXT a -IF lives > 10 THEN lives = 10 -PUT (43, 180), number(100, 10), PSET -PUT (53, 180), munt2, PSET -PUT (73, 180), number(100, lives), PSET +maailm1 = maailm + +FOR a = -3 TO 20 +FOR b = -3 TO 20 +ruum(a, b) = "" +ruum1(a, b) = "" +NEXT b +NEXT a + +FOR a = 1 TO 10 +mobY(a) = 1000 +kolled(a) = 1 +kollal(a) = 0 +NEXT a + +CLS +PAINT (1, 1), levelSkyColor(maailm) +GET (1, 2)-(20, 21), tuhi +FOR a = 2 TO 10 +FOR b = 1 TO 15 +c$ = RIGHT$(LEFT$(text5(a), b), 1) +IF c$ = "-" THEN PUT ((b - 1) * 20, (a - 2) * 20), pilv, OR +IF c$ = "." THEN PUT ((b - 1) * 20, (a - 2) * 20), poosas, OR +IF c$ = "+" THEN PUT ((b - 1) * 20, (a - 2) * 20), puu, OR +IF c$ = "$" THEN PUT ((b - 1) * 20, (a - 2) * 20), munt, OR: ruum(b, a - 2) = "1" +IF c$ = "m" THEN PUT ((b - 1) * 20, (a - 2) * 20), kast, PSET: ruum(b, a - 2) = "m" +IF c$ = "o" THEN PUT ((b - 1) * 20, (a - 2) * 20), tellis, PSET: ruum(b, a - 2) = "m": ruum1(b, a - 2) = "o" +IF c$ = " " THEN ruum(b, a) = " " + +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) +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) +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) +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) +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) +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) +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) +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) +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) +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) +NEXT b +NEXT a +UpdateHUD 0 END SUB -SUB save (a$) -OPEN a$ FOR OUTPUT AS #2 -PRINT #2, pikkus +SUB PlayHurtSound +a = 1700 +b = 1900 +FOR c = 1 TO 50 +a = a + 3 +b = b - 5 +SOUND a, .2 +SOUND b, .2 +NEXT c +END SUB + +SUB RenderImageFromTextFile (a1, b1, c1, d1, a$) +a1 = a1 * 8 +b1 = b1 * 8 +laius1 = c1 - a1 +pikkus1 = d1 - b1 +OPEN a$ + ".i01" FOR INPUT AS #1 +INPUT #1, pikkus FOR a = 1 TO pikkus -PRINT #2, text$(a) +LINE INPUT #1, z$ +FOR b = LEN(z$) TO 1 STEP -1 +LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1), b1 + ((a + 1) * d1)), ASC(LEFT$(RIGHT$(z$, b), 1)) - 40, BF +NEXT b NEXT a CLOSE END SUB @@ -583,31 +563,42 @@ NEXT a END SUB DEFINT A-Z -SUB wiew (a1, b1, c1, d1, a$) -laius1 = c1 - a1 -pikkus1 = d1 - b1 -OPEN a$ + ".i01" FOR INPUT AS #1 -INPUT #1, pikkus -FOR a = 1 TO pikkus -LINE INPUT #1, z$ -FOR b = 1 TO LEN(z$) -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 +SUB UpdateHUD (zaz) +IF lives < 0 THEN GameOverSequence +PUT (0, 180), munt1, PSET +rahaz(1) = rahaz(1) + zaz +FOR b = 1 TO 3 +IF rahaz(1) > 9 THEN rahaz(1) = rahaz(1) - 10: rahaz(2) = rahaz(2) + 1 +IF rahaz(2) > 9 THEN rahaz(1) = 0: rahaz(2) = 0: lives = lives + 1 NEXT b +LOCATE 1, 1 +r = 3 +FOR a = 1 TO 2 +r = r - 1 +PUT ((a * 11) + 10, 180), number(100, rahaz(r)), PSET NEXT a -CLOSE +IF lives > 10 THEN lives = 10 +PUT (43, 180), number(100, 10), PSET +PUT (53, 180), munt2, PSET +PUT (73, 180), number(100, lives), PSET END SUB -SUB RenderImageFromTextFile (a1, b1, c1, d1, a$) -a1 = a1 * 8 -b1 = b1 * 8 +SUB UpdateLoadingScreen +LINE (0, 0)-(319, 150), 0, BF +LOCATE 20, 10 + prog +prog = prog + 1 +PRINT "." +END SUB + +SUB wiew (a1, b1, c1, d1, a$) laius1 = c1 - a1 pikkus1 = d1 - b1 OPEN a$ + ".i01" FOR INPUT AS #1 INPUT #1, pikkus FOR a = 1 TO pikkus LINE INPUT #1, z$ -FOR b = LEN(z$) TO 1 STEP -1 -LINE (a1 + (b * c1), (b1 + (a * d1)) + 1)-(a1 + ((b + 1) * c1), b1 + ((a + 1) * d1)), ASC(LEFT$(RIGHT$(z$, b), 1)) - 40, BF +FOR b = 1 TO LEN(z$) +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 NEXT b NEXT a CLOSE -- 2.20.1