DECLARE SUB initScreen ()
DECLARE SUB move (way AS INTEGER, object AS ANY)
CONST UP = 1
CONST DOWN = 2
CONST LEFT = 3
CONST RIGHT = 4
TYPE objectType
x AS INTEGER
y AS INTEGER
END TYPE
DIM object AS objectType
initScreen
object.x = 41
objext.y = 24
DO
SELECT CASE INKEY$
CASE CHR$(0) + CHR$(72): move UP, object
CASE CHR$(0) + CHR$(80): move DOWN, object
CASE CHR$(0) + CHR$(75): move LEFT, object
CASE CHR$(0) + CHR$(77): move RIGHT, object
CASE CHR$(32): EXIT DO
END SELECT
LOOP
LOCATE 1, 1: PRINT "Thank you for playing."
END
SUB initScreen
SCREEN 12
COLOR 9
WIDTH 80, 50
LOCATE 24, 41
PRINT CHR$(1)
END SUB
SUB move (way AS INTEGER, object AS objectType)
LOCATE object.y, object.x
PRINT CHR$(0) 'erase previous instance of the image
SELECT CASE way
CASE UP: IF object.y > 1 THEN object.y = object.y - 1
CASE DOWN: IF object.y < 49 THEN object.y = object.y + 1
CASE LEFT: IF object.x > 1 THEN object.x = object.x - 1
CASE RIGHT: IF object.x < 79 THEN object.x = object.x + 1
END SELECT
LOCATE object.y, object.x
PRINT CHR$(1) 'draw current instance of the image
END SUB