home *** CD-ROM | disk | FTP | other *** search
- CORE
- 10 ARRAY HighScores
- 4 VARIABLE X
- 1 VARIABLE oldX
- 1 VARIABLE Xinc
- 6 VARIABLE Y
- 1 VARIABLE oldY
- 1 VARIABLE Yinc
- 39 VARIABLE BatPos
- 25 ARRAY FrontWall
- 25 ARRAY MiddleWall
- 25 ARRAY BackWall
- : InitHighSc 9 0 DO 10000 I> 1000 * - HighScores [I]! LOOP ;
- : Rules ." The rules of the game go here. " CRET
- ." PRESS ANY KEY TO CONTINUE" KEY CLS ;
- : 3Char DUP ECHO DUP ECHO ECHO ;
- : InitVars InitHighSc ;
- : PlotBat BatPos @ 22 TAB 66 3Char ;
- : MoveBatLeft BatPos @ 1- 4 MAX DUP BatPos ! 22 TAB 66 3Char 32 ECHO ;
- : MoveBatRight BatPos @ 1+ 72 MIN DUP BatPos ! 1- 22 TAB 32 ECHO 66 3Char ;
- : InitBat BatPos @ PlotBat ;
- : InitWall 23 0 DO 1 FrontWall [I]! 1 MiddleWall [I]! 1 BackWall [I]! LOOP
- 11 0 DO I> 6 * 4 + DUP 3 TAB 67 3Char 68 3Char
- DUP 4 TAB 69 3Char 70 3Char
- 5 TAB 71 3Char 72 3Char LOOP
- 3 BackWall 24 4* + !
- 4 MiddleWall 24 4* + !
- 5 FrontWall 24 4* + ! ;
- : InitSides 24 0 DO 3 I> TAB 124 ECHO 76 I> TAB 124 ECHO LOOP ;
- : InitScreen InitWall InitSides InitBat ;
- : Initialise 1 PRINT_MODE ! CLS InitVars Rules InitScreen ;
- : EndGame CLS ." High Score Table " CRET CRET
- 9 0 DO ." Mike " HighScores [I]@ . CRET LOOP ;
- : PlotA X @ Y @ TAB 65 ECHO ;
- : UnPlotA oldX @ oldY @ TAB 32 ECHO ;
- : Touch X @ 4- 3 / DUP 4* 2OVER + DUP @
- IF 0 SWAP ! 3 * 4 + SWAP 24 4* + @ TAB 32 3Char 0 Yinc @ - Yinc !
- ELSE DROP DROP DROP ENDIF ;
- : incXY X @ DUP oldX ! Xinc @ + DUP X !
- DUP 74 > IF -1 Xinc ! ENDIF
- 5 < IF 1 Xinc ! ENDIF
- Y @ DUP oldY ! Yinc @ + DUP Y !
- DUP 20 > IF -1 Yinc ! ENDIF
- DUP 3 = IF BackWall Touch ENDIF
- DUP 4 = IF MiddleWall Touch ENDIF
- DUP 5 = IF FrontWall Touch ENDIF
- 1 < IF 1 Yinc ! ENDIF ;
- : GameOver 0 23 0 DO FrontWall [I]@ + MiddleWall [I]@ + BackWall [I]@ + LOOP 0 = ;
- : MoveBat 1 INKEY IF DUP 44 = IF MoveBatLeft ENDIF 46 = IF MoveBatRight ENDIF ENDIF ;
- : Play BEGIN
- TIME 2+ incXY PlotA UnPlotA FALSE ELSE 32 = SWAP 2+
- BEGIN MoveBat DUP TIME < END DROP
- GameOver
- END TRUE ;
- : GAME Initialise BEGIN Play END EndGame ;
- GAME
-