' 2025, Improved program readability\r
\r
\r
-DECLARE SUB displayGameStats ()\r
-DECLARE SUB loadLevel (y%)\r
-DECLARE SUB drawSprite (p%, o%, m%, fr%, teler%)\r
+DECLARE SUB DisplayGameStatistics ()\r
+DECLARE SUB LoadLevel (y%)\r
+DECLARE SUB DrawSprite (p%, o%, m%, fr%, teler%)\r
\r
DEFINT A-Z\r
DIM SHARED graphicsMode\r
REM joonist\r
REM END\r
GET (1, 1)-(20, 20), emptySpaceImage\r
-drawSprite 0, 0, 1, 1, 1\r
+DrawSprite 0, 0, 1, 1, 1\r
GET (1, 1)-(20, 20), solidBlockImage\r
-drawSprite 0, 0, 4, 1, 1\r
+DrawSprite 0, 0, 4, 1, 1\r
GET (1, 1)-(20, 20), kast\r
PUT (1, 180), solidBlockImage, PSET\r
PUT (300, 1), solidBlockImage, PSET\r
PUT (300, 180), solidBlockImage, PSET\r
-drawSprite 30, 50, 2, 1, 1\r
+DrawSprite 30, 50, 2, 1, 1\r
GET (31, 51)-(91, 76), pilv\r
PUT (160, 10), pilv, PSET\r
-drawSprite 20, 100, 3, 1, 1\r
+DrawSprite 20, 100, 3, 1, 1\r
GET (21, 101)-(31, 114), taht\r
CLS\r
-drawSprite 0, 0, 5, 1, 1\r
+DrawSprite 0, 0, 5, 1, 1\r
GET (1, 1)-(11, 8), siil\r
CLS\r
-drawSprite 0, 0, 6, 1, 1\r
+DrawSprite 0, 0, 6, 1, 1\r
GET (1, 1)-(8, 10), munt\r
CLS\r
-drawSprite 0, 0, 7, 1, 1\r
+DrawSprite 0, 0, 7, 1, 1\r
GET (1, 1)-(31, 11), poosas\r
CLS\r
-drawSprite 0, 0, 8, 1, 1\r
+DrawSprite 0, 0, 8, 1, 1\r
GET (1, 1)-(26, 21), aken\r
CLS\r
-drawSprite 0, 0, 9, 1, 1\r
+DrawSprite 0, 0, 9, 1, 1\r
GET (1, 1)-(21, 11), vedru\r
CLS\r
-drawSprite 0, 0, 11, 1, 1\r
+DrawSprite 0, 0, 11, 1, 1\r
GET (1, 1)-(51, 81), puu\r
CLS\r
-drawSprite 0, 0, 12, 1, 1\r
+DrawSprite 0, 0, 12, 1, 1\r
GET (1, 1)-(20, 20), noolt\r
CLS\r
-drawSprite 0, 0, 12, 50, 1\r
+DrawSprite 0, 0, 12, 50, 1\r
GET (1, 1)-(20, 20), noolt1\r
CLS\r
-drawSprite 0, 0, 13, 1, 1\r
+DrawSprite 0, 0, 13, 1, 1\r
GET (1, 1)-(20, 20), auk\r
CLS\r
-drawSprite 0, 0, 14, 1, 1\r
+DrawSprite 0, 0, 14, 1, 1\r
GET (1, 1)-(20, 20), sipp1\r
CLS\r
-drawSprite 0, 0, 15, 1, 1\r
+DrawSprite 0, 0, 15, 1, 1\r
GET (1, 1)-(20, 20), sipp2\r
CLS\r
-drawSprite 0, 0, 14, 50, 1\r
+DrawSprite 0, 0, 14, 50, 1\r
GET (1, 1)-(20, 20), sipp10\r
CLS\r
-drawSprite 0, 0, 15, 50, 1\r
+DrawSprite 0, 0, 15, 50, 1\r
GET (1, 1)-(20, 20), sipp20\r
CLS\r
-drawSprite 0, 0, 16, 1, 1\r
+DrawSprite 0, 0, 16, 1, 1\r
GET (1, 1)-(20, 20), sipp3\r
CLS\r
GET (1, 1)-(10, 10), emptySpaceImageS\r
-drawSprite 0, 0, 1, 1, 2\r
+DrawSprite 0, 0, 1, 1, 2\r
GET (1, 1)-(10, 10), solidBlockImageS\r
-drawSprite 0, 0, 4, 1, 2\r
+DrawSprite 0, 0, 4, 1, 2\r
GET (1, 1)-(10, 10), kastm\r
PUT (1, 180), solidBlockImage, PSET\r
PUT (300, 1), solidBlockImage, PSET\r
PUT (300, 180), solidBlockImage, PSET\r
-drawSprite 30, 50, 2, 1, 2\r
+DrawSprite 30, 50, 2, 1, 2\r
GET (16, 26)-(46, 38), pilvm\r
-drawSprite 20, 100, 3, 1, 2\r
+DrawSprite 20, 100, 3, 1, 2\r
GET (11, 51)-(16, 72), tahtm\r
CLS\r
-drawSprite 0, 0, 5, 1, 2\r
+DrawSprite 0, 0, 5, 1, 2\r
GET (1, 1)-(6, 4), siilm\r
CLS\r
-drawSprite 0, 0, 6, 1, 2\r
+DrawSprite 0, 0, 6, 1, 2\r
GET (1, 1)-(4, 5), muntm\r
CLS\r
-drawSprite 0, 0, 7, 1, 2\r
+DrawSprite 0, 0, 7, 1, 2\r
GET (1, 1)-(16, 6), poosasm\r
CLS\r
-drawSprite 0, 0, 8, 1, 2\r
+DrawSprite 0, 0, 8, 1, 2\r
GET (1, 1)-(13, 11), akenm\r
CLS\r
-drawSprite 0, 0, 9, 1, 2\r
+DrawSprite 0, 0, 9, 1, 2\r
GET (1, 1)-(11, 6), vedrum\r
CLS\r
-drawSprite 0, 0, 11, 1, 2\r
+DrawSprite 0, 0, 11, 1, 2\r
GET (1, 1)-(26, 41), puum\r
CLS\r
-drawSprite 0, 0, 12, 1, 2\r
+DrawSprite 0, 0, 12, 1, 2\r
GET (1, 1)-(10, 10), nooltm\r
CLS\r
-drawSprite 0, 0, 12, 50, 2\r
+DrawSprite 0, 0, 12, 50, 2\r
GET (1, 1)-(10, 10), nooltm1\r
CLS\r
-drawSprite 0, 0, 13, 1, 2\r
+DrawSprite 0, 0, 13, 1, 2\r
GET (1, 1)-(10, 10), aukm\r
CLS\r
-drawSprite 0, 0, 14, 1, 2\r
+DrawSprite 0, 0, 14, 1, 2\r
GET (1, 1)-(10, 10), sippm1\r
CLS\r
-drawSprite 0, 0, 15, 1, 2\r
+DrawSprite 0, 0, 15, 1, 2\r
GET (1, 1)-(10, 10), sippm2\r
CLS\r
-drawSprite 0, 0, 14, 50, 2\r
+DrawSprite 0, 0, 14, 50, 2\r
GET (1, 1)-(10, 10), sippm10\r
CLS\r
-drawSprite 0, 0, 15, 50, 2\r
+DrawSprite 0, 0, 15, 50, 2\r
GET (1, 1)-(10, 10), sippm20\r
CLS\r
-drawSprite 0, 0, 16, 1, 2\r
+DrawSprite 0, 0, 16, 1, 2\r
GET (1, 1)-(10, 10), sippm3\r
CLS\r
-drawSprite 0, 0, 17, 1, 1\r
+DrawSprite 0, 0, 17, 1, 1\r
GET (1, 1)-(21, 31), uks\r
CLS\r
-drawSprite 0, 0, 17, 1, 2\r
+DrawSprite 0, 0, 17, 1, 2\r
GET (1, 1)-(11, 16), intro\r
CLS\r
GOTO 7\r
-drawSprite -1, -1, 10, 4, 1\r
+DrawSprite -1, -1, 10, 4, 1\r
GET (1, 1)-(318, 124), intro\r
CLS\r
SLEEP 1\r
PUT (1, 1), intro, PSET\r
SLEEP 100\r
7\r
-loadLevel 1\r
+LoadLevel 1\r
a = 50\r
b = 50\r
siie = 1\r
IF terrainGrid((a + 22) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
IF terrainGrid((a + 37) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
\r
-qwer = qwer + 1: IF objectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: remainingLives = remainingLives - 1: eda = -10: all = -5: displayGameStats\r
+qwer = qwer + 1: IF objectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: remainingLives = remainingLives - 1: eda = -10: all = -5: DisplayGameStatistics\r
IF qwer > 100 THEN qwer = 50\r
- IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN coinCount = coinCount + 1: kustuta1 = 1: displayGameStats: terrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
+ IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN coinCount = coinCount + 1: kustuta1 = 1: DisplayGameStatistics: terrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "v" THEN all = -8: sipp = 3\r
IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = ">" THEN eda = 3\r
IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = "<" THEN eda = -3\r
siiall1 = siiall1 + 1: IF siiall1 > 2 THEN siiall1 = 2\r
a = a + eda\r
b = b + all\r
-IF a > 297 THEN a = 2: currentLevelNumber = currentLevelNumber + 1: loadLevel currentLevelNumber: siie = 1: siie1 = 1\r
-IF a < 1 THEN a = 296: IF currentLevelNumber = 1 THEN loadLevel currentLevelNumber: ELSE currentLevelNumber = currentLevelNumber - 1: loadLevel currentLevelNumber: IF graphicsMode = 2 THEN a = 594\r
-IF b > 179 THEN remainingLives = remainingLives - 1: displayGameStats: currentLevelNumber = currentLevelNumber - 1: loadLevel currentLevelNumber: b = 100: a = 2: displayGameStats\r
+IF a > 297 THEN a = 2: currentLevelNumber = currentLevelNumber + 1: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
+IF a < 1 THEN a = 296: IF currentLevelNumber = 1 THEN LoadLevel currentLevelNumber: ELSE currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: IF graphicsMode = 2 THEN a = 594\r
+IF b > 179 THEN remainingLives = remainingLives - 1: DisplayGameStatistics: currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: b = 100: a = 2: DisplayGameStatistics\r
IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "u" THEN a = uks3 + 10: b = uks4: eda = 0\r
IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "U" THEN a = uks1 + 10: b = uks2: eda = 0\r
WEND\r
IF a$ = leftArrowKey$ THEN eda = eda - 1: IF eda < -3 THEN eda = -3: r = 0 ELSE IF lke > 10 THEN eda = -5\r
IF a$ = upArrowKey$ AND lk < 10 THEN all = all - 5: lk = 20: r1 = 0: sipp = 3\r
IF a$ = downArrowKey$ THEN all = all + 1\r
-IF a$ = "/" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 1: loadLevel currentLevelNumber: siie = 1: siie1 = 1\r
-IF a$ = "+" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 5: loadLevel currentLevelNumber: siie = 1: siie1 = 1\r
+IF a$ = "/" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 1: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
+IF a$ = "+" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 5: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
IF a$ = "q" THEN END\r
sipa = sipa + 1\r
IF sipa = 3 THEN sipa = 1\r
IF terrainGrid((a + 22) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
IF terrainGrid((a + 37) \ 20, (b + 38) \ 20) = "z" THEN all = -1: r1 = 2: lk = 1: lke = 0\r
\r
-qwer = qwer + 1: IF objectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: remainingLives = remainingLives - 1: eda = -5: all = -3: displayGameStats\r
+qwer = qwer + 1: IF objectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: remainingLives = remainingLives - 1: eda = -5: all = -3: DisplayGameStatistics\r
IF qwer > 100 THEN qwer = 50\r
-IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN coinCount = coinCount + 1: kustuta1 = 1: displayGameStats: terrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
+IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN coinCount = coinCount + 1: kustuta1 = 1: DisplayGameStatistics: terrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "v" THEN all = -8: sipp = 3\r
IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = ">" THEN eda = 3\r
IF objectGrid((a + 30) \ 20, (b + 38) \ 20) = "<" THEN eda = -3\r
siiall1 = siiall1 + 1: IF siiall1 > 2 THEN siiall1 = 2\r
a = a + eda\r
b = b + all\r
-IF a > 594 THEN a = 2: currentLevelNumber = currentLevelNumber + 1: loadLevel currentLevelNumber: siie = 1: siie1 = 1\r
-IF a < 1 THEN a = 594: IF currentLevelNumber = 1 THEN loadLevel currentLevelNumber: ELSE currentLevelNumber = currentLevelNumber - 1: loadLevel currentLevelNumber: IF graphicsMode = 1 THEN a = 297\r
-IF b > 358 THEN remainingLives = remainingLives - 1: displayGameStats: currentLevelNumber = currentLevelNumber - 1: loadLevel currentLevelNumber: b = 100: a = 2: displayGameStats\r
+IF a > 594 THEN a = 2: currentLevelNumber = currentLevelNumber + 1: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
+IF a < 1 THEN a = 594: IF currentLevelNumber = 1 THEN LoadLevel currentLevelNumber: ELSE currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: IF graphicsMode = 1 THEN a = 297\r
+IF b > 358 THEN remainingLives = remainingLives - 1: DisplayGameStatistics: currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: b = 100: a = 2: DisplayGameStatistics\r
IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "u" THEN a = uks3 + 5: b = uks4: eda = 0\r
IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "U" THEN a = uks1 + 5: b = uks2: eda = 0\r
WEND\r
IF a$ = leftArrowKey$ THEN eda = eda - 1: IF eda < -3 THEN eda = -3: r = 0 ELSE IF lke > 10 THEN eda = -5\r
IF a$ = upArrowKey$ AND lk < 10 THEN all = all - 5: lk = 20: r1 = 0: sipp = 3\r
IF a$ = downArrowKey$ THEN all = all + 1\r
-IF a$ = "/" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 1: loadLevel currentLevelNumber: siie = 1: siie1 = 1\r
-IF a$ = "+" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 5: loadLevel currentLevelNumber: siie = 1: siie1 = 1\r
+IF a$ = "/" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 1: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
+IF a$ = "+" THEN a = 2: b = 50: currentLevelNumber = currentLevelNumber + 5: LoadLevel currentLevelNumber: siie = 1: siie1 = 1\r
IF a$ = "q" THEN END\r
sipa = sipa + 1\r
IF sipa = 3 THEN sipa = 1\r
GOTO 106\r
\r
-SUB displayGameStats\r
+SUB DisplayGameStatistics\r
LOCATE 1, 1\r
IF graphicsMode = 2 THEN GOTO 12\r
PRINT " "\r
IF remainingLives < 0 THEN END\r
END SUB\r
\r
-SUB drawSprite (p, o, m, fr, teler)\r
+SUB DrawSprite (p, o, m, fr, teler)\r
DIM ao(1 TO 100) AS STRING\r
SELECT CASE m\r
CASE 1\r
ERASE ao\r
END SUB\r
\r
-SUB loadLevel (y)\r
+SUB LoadLevel (y)\r
125\r
hedgehogX = 0\r
hedgehogY = 0\r
graphicsMode = 2\r
CASE 19\r
CLS\r
-drawSprite 1, 1, 10, 3, 1\r
+DrawSprite 1, 1, 10, 3, 1\r
LOCATE 20, 1\r
PRINT "end"\r
FOR a = 1 TO 50\r