Maze

My Maze program drew and solved random puzzles. Each arrow key would take a step in that direction if possible. The S key (for solve) would take steps along a wall as long as the key was held.

The maze was represented as a series of display processor instruction words. Each word was a square. The central processor twiddled bits to indicate the presence or absence of walls, cheese and mouse droppings. The bits were such that the display processor would be directed to one of sixteen different display routines as needed to properly display the maze.

The dropping-present bit would be toggled each time though. This caused the trail of droppings to lead from start to current position by the shortest path.

The maze was generated by knocking down walls from visited to non-visited squares. Since every square was visited once and only once, it follows that every square was reachable through only one path without any loops.

Images courtesy of Josh Dersch. github

Inspirations

Dave Dodson suggested the generation and solution algorithms for what I would call Proper Mazes.

Bill Croft suggested sharing a data structure between both processors.

We eventually scored a copy of the awesome first person shooter, Maze War, that ran on Imlac and helped launch the game industry. wikipedia

I used the same generation algorithm in a pascal program on the PB-1 computer to make images we called Pebeliths.

Apple made a 2-1/2-d maze game and shipped it with the original mac.

A one-line basic program will stream maze-like images. The program itself has become the title of a study of is structure and attraction. pdf video

10 PRINT CHR$(205.5+RND(1)); : GOTO 10

.

Mike Bostock explores maze algorithms in a 2014 presentation and accompanying visualizations. post