_TITLE "1 Maze in 3 Reflectionss, press any key for next image..." ' 2017-10-19 (B+=MGA) Maze Mirrors.bas
CONST xmax
= 800 'set screen width to this CONST ymax
= 600 'set screen height to this
SCREEN _NEWIMAGE(xmax
, ymax
, 32) ' this sets the screen to the above settings
x2pixel! = xmax / (w + 2)
xThk! = .5 * x2pixel!
y2pixel! = ymax / (h + 2)
yThk! = .5 * y2pixel!
FOR y
= 1 TO h
'read in data for maze
drawMaze: ck
drawMazeHorizontalMirror: ck
drawMaze: ck
drawMazeVerticalMirror: ck
drawMaze: ck
drawMazeBothMirror: ck
LINE (x
* x2pixel!
, y
* y2pixel!
)-(x
* x2pixel!
+ xThk!
, (y
+ 1) * y2pixel!
+ yThk!
), , BF
LINE (x
* x2pixel!
, y
* y2pixel!
)-((x
+ 1) * x2pixel!
+ xThk!
, y
* y2pixel!
+ yThk!
), , BF
SUB drawMazeHorizontalMirror
PRINT "Maze upside down:" LINE (x
* x2pixel!
, ymax
- (y
* y2pixel!
))-(x
* x2pixel!
+ xThk!
, ymax
- ((y
+ 1) * y2pixel!
+ yThk!
)), , BF
LINE (x
* x2pixel!
, ymax
- (y
* y2pixel!
))-((x
+ 1) * x2pixel!
+ xThk!
, ymax
- (y
* y2pixel!
+ yThk!
)), , BF
SUB drawMazeVerticalMirror
PRINT "Maze mirror (vertical):" LINE (xmax
- (x
* x2pixel!
), y
* y2pixel!
)-(xmax
- (x
* x2pixel!
+ xThk!
), (y
+ 1) * y2pixel!
+ yThk!
), , BF
LINE (xmax
- (x
* x2pixel!
), y
* y2pixel!
)-(xmax
- ((x
+ 1) * x2pixel!
+ xThk!
), y
* y2pixel!
+ yThk!
), , BF
PRINT "Maze upside down and mirrored:" LINE (xmax
- (x
* x2pixel!
), ymax
- (y
* y2pixel!
))-(xmax
- (x
* x2pixel!
+ xThk!
), ymax
- ((y
+ 1) * y2pixel!
+ yThk!
)), , BF
LINE (xmax
- (x
* x2pixel!
), ymax
- (y
* y2pixel!
))-(xmax
- ((x
+ 1) * x2pixel!
+ xThk!
), ymax
- (y
* y2pixel!
+ yThk!
)), , BF
'maze
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1 DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,1 DATA 1,0,1,1,1,0,1,1,1,1,1,1,0,1 DATA 1,0,0,0,1,0,0,0,0,0,0,0,0,1 DATA 1,0,1,0,1,0,1,1,1,1,1,1,0,1 DATA 1,0,1,0,0,0,0,0,0,0,0,1,0,1 DATA 1,0,1,1,1,1,1,0,1,1,1,1,1,1