Class: MazeMagic::MazeGenerator::InstructionsGridToCellsGrid
- Inherits:
-
Object
- Object
- MazeMagic::MazeGenerator::InstructionsGridToCellsGrid
- Defined in:
- lib/maze_magic/maze_generator/instructions_grid_to_cells_grid.rb
Instance Attribute Summary collapse
-
#cells_grid ⇒ Object
readonly
Returns the value of attribute cells_grid.
-
#instructions_grid ⇒ Object
readonly
Returns the value of attribute instructions_grid.
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(grid:) ⇒ InstructionsGridToCellsGrid
constructor
A new instance of InstructionsGridToCellsGrid.
Constructor Details
#initialize(grid:) ⇒ InstructionsGridToCellsGrid
Returns a new instance of InstructionsGridToCellsGrid.
6 7 8 |
# File 'lib/maze_magic/maze_generator/instructions_grid_to_cells_grid.rb', line 6 def initialize(grid:) @instructions_grid = grid end |
Instance Attribute Details
#cells_grid ⇒ Object (readonly)
Returns the value of attribute cells_grid.
4 5 6 |
# File 'lib/maze_magic/maze_generator/instructions_grid_to_cells_grid.rb', line 4 def cells_grid @cells_grid end |
#instructions_grid ⇒ Object (readonly)
Returns the value of attribute instructions_grid.
4 5 6 |
# File 'lib/maze_magic/maze_generator/instructions_grid_to_cells_grid.rb', line 4 def instructions_grid @instructions_grid end |
Instance Method Details
#call ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/maze_magic/maze_generator/instructions_grid_to_cells_grid.rb', line 10 def call @cells_grid = [] cells_grid << [edge] + Array.new((width * 2 - 1), hw) + [edge] height.times do |y| row = [] row << vw width.times do |x| row << ((instructions_grid[y][x] & South.instance.to_i != 0) ? passage : hw) if instructions_grid[y][x] & East.instance.to_i != 0 row << (((instructions_grid[y][x] | instructions_grid[y][x+1]) & South.instance.to_i != 0) ? passage : hw) else row << vw end end cells_grid << row end cells_grid end |