class Mazinator::Maze
Attributes
cols[R]
exit[RW]
maze[RW]
rows[R]
start[RW]
Public Class Methods
new(rows=10, cols=10, maze=nil)
click to toggle source
def initialize(rows=10, cols=10, maze_generator=Mazinator::MazeGenerator.new)
# File lib/mazinator/maze.rb, line 8 def initialize(rows=10, cols=10, maze=nil) @rows = rows @cols = cols @maze = maze @start = maze[0,0] @exit = maze[rows-1, cols-1] end
Public Instance Methods
print()
click to toggle source
# File lib/mazinator/maze.rb, line 16 def print board = Array.new(@rows*3) { Array.new(@cols*3,'X') } @maze.each{ |cell| put_cell_on_board(cell, board) } board.each{|row| puts row.join('')} end
Private Instance Methods
print_cell(board, cell, cell_sign)
click to toggle source
# File lib/mazinator/maze.rb, line 29 def print_cell(board, cell, cell_sign) board_row = cell.row * 3 + 1 board_col = cell.col * 3 + 1 board[board_row][board_col] = cell_sign board[board_row][board_col-1] = cell_sign unless cell.walls[:left] board[board_row][board_col+1] = cell_sign unless cell.walls[:right] board[board_row-1][board_col] = cell_sign unless cell.walls[:up] board[board_row+1][board_col] = cell_sign unless cell.walls[:down] end
put_cell_on_board(cell, board)
click to toggle source
# File lib/mazinator/maze.rb, line 24 def put_cell_on_board(cell, board) cell_sign = cell.visited? ? '+' : ' ' print_cell(board, cell, cell_sign) end