Class: MazeMagic::MazeGenerator::RecursiveBacktracking
- Inherits:
-
Object
- Object
- MazeMagic::MazeGenerator::RecursiveBacktracking
- Extended by:
- Forwardable
- Includes:
- Randomnes
- Defined in:
- lib/maze_magic/maze_generator/recursive_backtracking.rb,
lib/maze_magic/maze_generator/recursive_backtracking/east.rb,
lib/maze_magic/maze_generator/recursive_backtracking/west.rb,
lib/maze_magic/maze_generator/recursive_backtracking/north.rb,
lib/maze_magic/maze_generator/recursive_backtracking/south.rb
Overview
RecursiveBacktracking algorithm for generating Maze
original author Jamis Buck
http://weblog.jamisbuck.org/2010/12/27/maze-generation-recursive-backtracking
I've wraped the algorith with objects
Defined Under Namespace
Classes: East, North, South, West
Instance Attribute Summary collapse
-
#grid ⇒ Object
readonly
Returns the value of attribute grid.
-
#maze ⇒ Object
readonly
Returns the value of attribute maze.
Instance Method Summary collapse
- #generate ⇒ Object
-
#initialize(grid:) ⇒ RecursiveBacktracking
constructor
A new instance of RecursiveBacktracking.
Methods included from Randomnes
included, #preseeder, #randomizer
Constructor Details
#initialize(grid:) ⇒ RecursiveBacktracking
Returns a new instance of RecursiveBacktracking.
22 23 24 |
# File 'lib/maze_magic/maze_generator/recursive_backtracking.rb', line 22 def initialize(grid:) @grid = grid end |
Instance Attribute Details
#grid ⇒ Object (readonly)
Returns the value of attribute grid.
18 19 20 |
# File 'lib/maze_magic/maze_generator/recursive_backtracking.rb', line 18 def grid @grid end |
#maze ⇒ Object (readonly)
Returns the value of attribute maze.
18 19 20 |
# File 'lib/maze_magic/maze_generator/recursive_backtracking.rb', line 18 def maze @maze end |
Instance Method Details
#generate ⇒ Object
26 27 28 29 30 31 |
# File 'lib/maze_magic/maze_generator/recursive_backtracking.rb', line 26 def generate preseeder.call carve_instructions_to_grid(grid, grid.start_x, grid.start_y) generate_maze maze end |