Skip to content

Latest commit

 

History

History
99 lines (94 loc) · 13.9 KB

README.md

File metadata and controls

99 lines (94 loc) · 13.9 KB

maze.sql

Maze Generation in PostgreSQL

This single SQL query uses recursive common table expressions to generate a maze then render it.

Uses a combination of recursive backtracking combined with a random spanning tree algorithm

Online Demo: http://rextester.com/KOEJ62247

Example outputs

Default settings

██↓↓██████████████████████████████████████████████████████████████████████████████
██          ██  ██          ██          ██                      ██  ██          ██
██  ██  ██  ██  ██  ██  ██████████  ██████████  ██████████████  ██  ██  ██████  ██
██  ██  ██          ██  ██  ██                      ██  ██      ██  ██      ██  ██
██  ██  ██████████████████  ██████  ██  ██  ██████  ██  ██  ██  ██  ██  ██████████
██  ██          ██          ██  ██  ██  ██  ██      ██  ██  ██  ██              ██
██  ██████████  ██  ██████  ██  ██████  ██  ██  ██  ██  ██  ██  ██  ██  ██████████
██          ██          ██      ██      ██  ██  ██  ██      ██  ██  ██          ██
██████  ██  ██  ██████████████  ██████  ██████████  ██████████  ██  ██████████████
██      ██  ██      ██  ██          ██          ██  ██      ██  ██      ██      ██
██████  ██████  ██████  ██████  ██  ██  ██████████  ██  ██████████████  ██  ██  ██
██      ██  ██  ██  ██  ██  ██  ██      ██                      ██          ██  ██
██  ██  ██  ██  ██  ██  ██  ██  ██████████████  ██████████  ██████████████  ██████
██  ██  ██      ██              ██  ██      ██          ██      ██              ██
██  ██████████  ██████████████████  ██  ██████████  ██████  ██  ██  ██████  ██  ██
██      ██  ██          ██          ██              ██      ██      ██  ██  ██  ██
██  ██  ██  ██████  ██  ██  ██████  ██████  ██  ██  ██  ██████████████  ██████████
██  ██  ██  ██      ██          ██  ██      ██  ██  ██  ██              ██      ██
██████  ██  ██  ██████████████████████████████████████████  ██████████████  ██████
██          ██  ██      ██  ██      ██  ██      ██  ██          ██      ██  ██  ██
██  ██  ██████████  ██████  ██  ██████  ██  ██████  ██  ██  ██████████  ██  ██  ██
██  ██          ██                      ██      ██  ██  ██      ██      ██  ██  ██
██████  ██  ██████████████  ██  ██  ██████  ██████  ██████  ██████  ██  ██  ██  ██
██      ██                  ██  ██  ██          ██  ██  ██          ██  ██      ██
██████  ██████████████  ██████████  ██████  ██████  ██  ██████  ██  ██████  ██████
██  ██  ██      ██  ██      ██  ██      ██          ██  ██      ██              ██
██  ██  ██████  ██  ██  ██████  ██  ██  ██████  ██████  ██████  ██████  ██████  ██
██  ██              ██      ██      ██          ██  ██              ██  ██      ██
██  ██████  ██  ██████████████████  ██████  ██████  ██  ██████████  ██████████  ██
██      ██  ██      ██  ██  ██      ██  ██  ██  ██      ██          ██          ██
██  ██  ██  ██████  ██  ██  ██████████  ██  ██  ██  ██  ██████████████████████████
██  ██      ██  ██  ██  ██          ██  ██          ██          ██          ██  ██
██  ██  ██████  ██████  ██████████  ██  ██████████  ██████████  ██████  ██████  ██
██  ██  ██      ██      ██  ██  ██              ██      ██  ██  ██  ██      ██  ██
██  ██  ██  ██████  ██████  ██  ██  ██████████  ██████  ██  ██  ██  ██  ██████  ██
██  ██              ██              ██          ██          ██      ██      ██  ██
██████████████  ██████  ██████  ██████████  ██████  ██████  ██  ██  ██  ██  ██  ██
██                  ██      ██          ██  ██      ██      ██  ██  ██  ██      ██
██  ██  ██  ██  ██████████████  ██████  ██████████  ██████  ██████  ██  ██████  ██
██  ██  ██  ██                      ██  ██              ██  ██              ██  ██
██████████████████████████████████████████████████████████████████████████████↓↓██

Recursive backtracking mode

██↓↓██████████████████████████████████████████████████████████████████████████████
██  ██                          ██                  ██                          ██
██  ██████████  ██████████  ██████  ██  ██████████  ██  ██████████████████  ██  ██
██  ██      ██  ██      ██          ██  ██      ██  ██  ██      ██      ██  ██  ██
██  ██  ██  ██  ██  ██  ██████████████  ██  ██████  ██  ██  ██  ██  ██  ██  ██  ██
██  ██  ██  ██      ██      ██          ██      ██  ██  ██  ██  ██  ██  ██  ██  ██
██  ██  ██  ██████████████████  ██████████████  ██  ██  ██  ██  ██████  ██  ██  ██
██      ██                      ██              ██  ██  ██  ██          ██  ██  ██
██████████████████████████████████  ██████████  ██  ██  ██  ██████████  ██  ██  ██
██  ██              ██              ██  ██      ██  ██      ██          ██  ██  ██
██  ██  ██  ██████████  ██████████  ██  ██  ██████  ██████████  ██████████  ██  ██
██  ██  ██              ██          ██          ██  ██  ██      ██  ██      ██  ██
██  ██  ██████████████████  ██████████  ██████████  ██  ██  ██████  ██  ██████  ██
██  ██              ██  ██      ██      ██          ██  ██  ██      ██  ██      ██
██  ██████████████  ██  ██████  ██████████  ██████████  ██  ██  ██████  ██  ██████
██      ██          ██      ██      ██      ██      ██      ██  ██      ██      ██
██  ██  ██  ██████████  ██  ██████  ██  ██████  ██  ██  ██████  ██  ██████████  ██
██  ██  ██  ██          ██      ██  ██  ██      ██  ██      ██  ██      ██      ██
██  ██  ██  ██  ██  ██████████████  ██  ██  ██████████████  ██  ██████  ██  ██████
██  ██      ██  ██  ██          ██      ██  ██                      ██  ██  ██  ██
██  ██████████  ██████  ██████  ██████████  ██  ██████████████████████  ██  ██  ██
██  ██                  ██      ██      ██      ██  ██                  ██      ██
██  ██████  ██████████████  ██████  ██  ██  ██████  ██  ██████████████████████  ██
██      ██  ██          ██          ██  ██      ██  ██      ██              ██  ██
██████  ██  ██████  ██  ██████████████  ██████  ██  ██████  ██████  ██  ██████  ██
██      ██      ██  ██              ██      ██          ██      ██  ██          ██
██  ██████████  ██████████████  ██████  ██████████████  ██████  ██  ██████████████
██      ██  ██          ██      ██      ██          ██      ██  ██          ██  ██
██████  ██  ██████████  ██  ██████  ██████  ██  ██████  ██████  ██████████  ██  ██
██  ██  ██              ██      ██  ██      ██          ██      ██      ██      ██
██  ██  ██  ██████████████████  ██  ██  ██████████████████  ██████████  ██████  ██
██  ██  ██      ██              ██      ██              ██  ██          ██      ██
██  ██  ██████  ██████  ██████  ██████████  ██  ██████████  ██  ██████████  ██████
██  ██      ██          ██  ██      ██      ██  ██          ██              ██  ██
██  ██████  ██  ██████████  ██████  ██████████  ██  ██████████  ██████████████  ██
██  ██      ██  ██      ██      ██  ██          ██  ██      ██      ██          ██
██  ██  ██████████  ██  ██  ██  ██  ██  ██████████  ██  ██  ██████  ██  ██  ██  ██
██      ██      ██  ██  ██  ██          ██          ██  ██  ██      ██  ██  ██  ██
██  ██████  ██  ██  ██  ██████████████████  ██████████  ██████  ██████████  ██████
██          ██      ██                      ██                                  ██
██████████████████████████████████████████████████████████████████████████████↓↓██