Overview

This is a library for generating perfect mazes. The default tessellation is orthogonal. It supports ASCII output.

Tessellations

  • Orthogonal - the standard rectangular grid with passages intersecting at right angles
  • Sigma - composed of interlocking hexagons

Supported Output Formats

  • ASCII
  • PNG

Algorithms

  • Recursive Backtracking

Examples

Generating an orthogonal maze with default parameters:

$ ruby -Ilib examples/orthogonal.rb

 _ _ _ _ _ _ _ _ _ _
|_     _ _|  _  |   |
|  _|_|  _ _| |_ _| |
|  _ _ _|_ _    |  _|
|_  |  _ _  |_| |_  |
|  _|   | |_  |   |_|
|_  |_| |  _|_ _| | |
| |_ _ _|  _ _  |_  |
|  _   _|_  | |_ _ _|
|_  |_ _  |_ _  |   |
|_ _ _ _|_ _ _ _ _|_|
Generated with: examples/orthogonal.rb 10 10 4083063427
Written to output file: sample_orthogonal.png

Generating a sigma maze of dimensions 20x5

$ ruby -Ilib examples/sigma.rb 20 5
 _   _   _   _   _   _   _   _   _   _
/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_  
\_  \_    /  _/  _   _/ \_       _/  _  \ 
/  _  \ / \_   _/ \_      \_/ \_/   / \_/ 
\_  \_  \ / \_/  _  \_/ \ / \ /  _/ \   \ 
/ \ / \_/ \   \_  \_   _/   / \_  \_  \ / 
\   \   \_  \_   _/ \_/ \_/ \ / \_  \_/ \ 
/ \_/ \_  \_/ \_/  _   _/  _/  _   _/   / 
\_  \   \_/  _/  _/ \_   _/  _  \_/  _/ \ 
/ \_/ \ /  _  \_  \   \_/ \_/ \_/ \ / \ / 
\_   _/  _  \_   _  \_   _   _   _  \_  \ 
  \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ 
Generated with: examples/sigma.rb 20 5 2645469508
Written to output file: sample_sigma.png