module MazeCrosser::BasicGridValidator
Module responsible for aplying basic maze validations.
Constants
- ALLOWED_CHARACTERS
Public Instance Methods
valid?(maze)
click to toggle source
# File lib/maze_crosser/basic_grid_validator.rb, line 11 def valid?(maze) only_valid_characters?(maze) && \ one_start_and_one_end?(maze) && \ rectangular?(maze) end
Private Instance Methods
one_start_and_one_end?(maze)
click to toggle source
# File lib/maze_crosser/basic_grid_validator.rb, line 23 def one_start_and_one_end?(maze) flat_maze = maze.flatten flat_maze.count { |c| c == ALLOWED_CHARACTERS[:goal] } == 1 && flat_maze.count { |c| c == ALLOWED_CHARACTERS[:start] } == 1 end
only_valid_characters?(maze)
click to toggle source
# File lib/maze_crosser/basic_grid_validator.rb, line 19 def only_valid_characters?(maze) maze.flatten.reject { |c| ALLOWED_CHARACTERS.values.include? c }.empty? end
rectangular?(maze)
click to toggle source
# File lib/maze_crosser/basic_grid_validator.rb, line 30 def rectangular?(maze) row_size = maze[0].size maze.select { |row| row.size == row_size }.size == maze.size end