DIM SHARED graphicsMode\r
DIM SHARED asciiLevelData(1 TO 20) AS STRING * 31\r
DIM SHARED FirstCompanionY%, FirstCompanionX%, SecondCompanionY%, SecondCompanionX%\r
-DIM SHARED remainingLives, coinCount\r
-DIM SHARED uks1, uks2, uks3, uks4\r
+DIM SHARED LivesRemaining%, CoinsCollected%\r
+DIM SHARED DoorEntryX%, DoorEntryY%, DoorExitX%, DoorExitY%\r
DIM SHARED currentLevelNumber\r
DIM SHARED text$(1 TO 1000)\r
DIM SHARED pikkus\r
\r
\r
DIM SHARED kuikiir\r
-DIM SHARED vas7$\r
-DIM SHARED rightArrowKey$\r
-DIM SHARED ule7$\r
-DIM SHARED all7$\r
leftArrowKey$ = CHR$(0) + "K"\r
rightArrowKey$ = CHR$(0) + "M"\r
upArrowKey$ = CHR$(0) + "H"\r
downArrowKey$ = CHR$(0) + "P"\r
-remainingLives = 10\r
+LivesRemaining% = 10\r
SCREEN 1\r
currentLevelNumber = 1\r
REM joonist\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: DisplayGameStatistics\r
+qwer = qwer + 1: IF objectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: LivesRemaining% = LivesRemaining% - 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: DisplayGameStatistics: terrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
+ IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN CoinsCollected% = CoinsCollected% + 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
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: 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
+IF b > 179 THEN LivesRemaining% = LivesRemaining% - 1: DisplayGameStatistics: currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: b = 100: a = 2: DisplayGameStatistics\r
+IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "u" THEN a = DoorExitX% + 10: b = DoorExitY%: eda = 0\r
+IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "U" THEN a = DoorEntryX% + 10: b = DoorEntryY%: eda = 0\r
WEND\r
a$ = kbd$: kbd$ = ""\r
IF a$ = rightArrowKey$ THEN eda = eda + 1: IF eda > 3 THEN eda = 3: r = 0 ELSE IF lke > 10 THEN eda = 5\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: DisplayGameStatistics\r
+qwer = qwer + 1: IF objectGrid((a + 30) \ 20, (b + 30) \ 20) = "q" AND qwer > 20 THEN qwer = 1: LivesRemaining% = LivesRemaining% - 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: DisplayGameStatistics: terrainGrid((a + 30) \ 20, (b + 30) \ 20) = ""\r
+IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "1" THEN CoinsCollected% = CoinsCollected% + 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
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: 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
+IF b > 358 THEN LivesRemaining% = LivesRemaining% - 1: DisplayGameStatistics: currentLevelNumber = currentLevelNumber - 1: LoadLevel currentLevelNumber: b = 100: a = 2: DisplayGameStatistics\r
+IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "u" THEN a = DoorExitX% + 5: b = DoorExitY%: eda = 0\r
+IF terrainGrid((a + 30) \ 20, (b + 30) \ 20) = "U" THEN a = DoorEntryX% + 5: b = DoorEntryY%: eda = 0\r
WEND\r
a$ = kbd$: kbd$ = ""\r
IF a$ = rightArrowKey$ THEN eda = eda + 1: IF eda > 3 THEN eda = 3: r = 0 ELSE IF lke > 10 THEN eda = 5\r
LOCATE 1, 1\r
IF graphicsMode = 2 THEN GOTO 12\r
PRINT " "\r
-IF coinCount > 9 THEN coinCount = 0: remainingLives = remainingLives + 1\r
+IF CoinsCollected% > 9 THEN CoinsCollected% = 0: LivesRemaining% = LivesRemaining% + 1\r
LOCATE 1, 1\r
-PRINT "o "; coinCount; " Lives "; remainingLives\r
+PRINT "o "; CoinsCollected%; " Lives "; LivesRemaining%\r
12\r
-IF remainingLives < 0 THEN END\r
+IF LivesRemaining% < 0 THEN END\r
END SUB\r
\r
SUB DrawSprite (p, o, m, fr, teler)\r
IF q$ = ">" THEN PUT (D * 20, e * 20), noolt, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = ">"\r
IF q$ = "<" THEN PUT (D * 20, e * 20), noolt1, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "<"\r
IF q$ = "a" THEN PUT (D * 20, e * 20), auk, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "a"\r
-IF q$ = "u" THEN PUT (D * 20, e * 20), uks, PSET: terrainGrid(D + 1, e + 1) = "u": uks1 = D * 20: uks2 = e * 20\r
-IF q$ = "U" THEN PUT (D * 20, e * 20), uks, PSET: terrainGrid(D + 1, e + 1) = "U": uks3 = D * 20: uks4 = e * 20\r
+IF q$ = "u" THEN PUT (D * 20, e * 20), uks, PSET: terrainGrid(D + 1, e + 1) = "u": DoorEntryX% = D * 20: DoorEntryY% = e * 20\r
+IF q$ = "U" THEN PUT (D * 20, e * 20), uks, PSET: terrainGrid(D + 1, e + 1) = "U": DoorExitX% = D * 20: DoorExitY% = e * 20\r
NEXT D\r
NEXT e\r
GOTO 123\r
IF q$ = ">" THEN PUT (D * 10, e * 10), nooltm, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = ">"\r
IF q$ = "<" THEN PUT (D * 10, e * 10), nooltm1, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "<"\r
IF q$ = "a" THEN PUT (D * 10, e * 10), aukm, PSET: terrainGrid(D + 1, e + 1) = "z": objectGrid(D + 1, e + 1) = "a"\r
-IF q$ = "u" THEN PUT (D * 10, e * 10), uksm, PSET: terrainGrid(D + 1, e + 1) = "u": uks1 = D * 20: uks2 = e * 20\r
-IF q$ = "U" THEN PUT (D * 10, e * 10), uksm, PSET: terrainGrid(D + 1, e + 1) = "U": uks3 = D * 20: uks4 = e * 20\r
+IF q$ = "u" THEN PUT (D * 10, e * 10), uksm, PSET: terrainGrid(D + 1, e + 1) = "u": DoorEntryX% = D * 20: DoorEntryY% = e * 20\r
+IF q$ = "U" THEN PUT (D * 10, e * 10), uksm, PSET: terrainGrid(D + 1, e + 1) = "U": DoorExitX% = D * 20: DoorExitY% = e * 20\r
NEXT D\r
NEXT e\r
123\r