class MazeCrosser::MazeSolver
Class responsible for solving a maze, by using a given algorithm or a cache.
maze_solver = MazeSolver.new
(maze, algorithm, cache_provider) maze_solver.solve
Public Class Methods
new(maze, algorithm, cache_provider)
click to toggle source
# File lib/maze_crosser/maze_solver.rb, line 8 def initialize(maze, algorithm, cache_provider) @algorithm = algorithm @cache_provider = cache_provider @maze = maze end
Public Instance Methods
solve()
click to toggle source
# File lib/maze_crosser/maze_solver.rb, line 14 def solve if @cache_provider.get_solution(@maze.grid) return @cache_provider.get_solution(@maze.grid) end solution = @algorithm.run @cache_provider.add(@maze.grid, solution) solution end