Class: MazeMagic::MazeGenerator::RecursiveBacktracking

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

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

#gridObject (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

#mazeObject (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

#generateObject



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