'===========================================================================
' Subject: TEXT BASED MAZE ENGINE             Date: 06-28-00 (19:51)       
'  Author: Edward L. Blake                    Code: QB, QBasic, PDS        
'  Origin: blakee@cyanwerks.com             Packet: TEXT.ABC
'===========================================================================
' 1994-1995 Edward L. Blake
' Email: blakee@cyanwerks.com
'
' Text Based Maze Engine
' Includes a template maze, this code can be used to create more complex mazes.
'
DIM MAZE$(1 TO 20)
CLS
MAZE$(1) = "ллллллллллллллллллллллллллллллллллл"
MAZE$(2) = "л       л                  л   лOOл"
MAZE$(3) = "л ллллллллллллл лллллллллл л л лOOл"
MAZE$(4) = "л                  л       л л л  л"
MAZE$(5) = "лллллллллллллллллллл ллллллл л л  л"
MAZE$(6) = "л   лллллллллллллл/л         л л  л"
MAZE$(7) = "л                  ллллллллллл л  л"
MAZE$(8) = "лллл ллллллллллллл л   л     л л  л"
MAZE$(9) = "л                  л л Б       л  л"
MAZE$(10) = "л ллллллллллллллллл л л ллллл л   л"
MAZE$(11) = "л                 л Б   лл    л   л"
MAZE$(12) = "л ллллллллллллллллл л л  л  ллл   л"
MAZE$(13) = "л                   л  л л        л"
MAZE$(14) = "ллллллллллллллллллллллллллллллллллл"

FOR I = 1 TO 14
LOCATE I: PRINT MAZE$(I)
NEXT I
A = 2: B = 2
K$ = "0"
C = A
D = B
DO
I$ = INKEY$
IF I$ = CHR$(0) + CHR$(80) THEN B = B + 1
IF I$ = CHR$(0) + CHR$(72) THEN B = B - 1
IF I$ = CHR$(0) + CHR$(77) THEN A = A + 1
IF I$ = CHR$(0) + CHR$(75) THEN A = A - 1
IF A < 1 THEN A = 1
IF B < 1 THEN B = 1
IF A > 35 THEN A = 35
IF B > 14 THEN B = 14
A$ = MID$(MAZE$(B), A, 1)
IF A$ = " " THEN B$ = "FLOOR   "
IF A$ = "л" THEN
A = C
B = D
END IF
IF A$ = "Б" THEN
IF K$ = "0" THEN
A = C
B = D
END IF
END IF
IF A$ = "/" THEN
BEEP
EXIT DO
END IF
IF A$ = "O" THEN
BEEP
K$ = "1"
END IF
IF A$ = "@" THEN
BEEP
K$ = "1"
END IF
LOCATE B, A, 1, 12, 1': PRINT CHR$(177)
C = A
D = B
LOOP
