diff options
-rw-r--r-- | maze_solver.rb | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/maze_solver.rb b/maze_solver.rb index d529495..e5fd87e 100644 --- a/maze_solver.rb +++ b/maze_solver.rb @@ -14,8 +14,27 @@ class MazeSolver end def solve!() + if ENV["DEBUG"] == "visual" + print "\e[?1049h" # Save the state of the terminal + print "\e[2J" # Clear the screen + print "\e[0;0H" # Move the cursor to 0, 0 + print "\n [ \e[1;35mSolving maze...\e[0m ]\n\n" # Print some nice graphics + print "\e[s" # Save the cursor position + end + while @stack.last != @end_pos step() + + if ENV["DEBUG"] == "visual" + print "\e[u" # Restore the cursor position + print @maze.to_s(" ", @stack) + print "\n\n" + puts " Stack size: #{@stack.length}" + end + end + + if ENV["DEBUG"] == "visual" + print "\e[?1049l" # Restore the state of the terminal end end @@ -29,9 +48,11 @@ class MazeSolver if neighbors.empty? @stack.pop() + puts "Popping to #{stack.last}" if ENV["DEBUG"] == "log" else randomNeighbor = neighbors.sample @stack.push(randomNeighbor) + puts "Pushing to #{stack.last}" if ENV["DEBUG"] == "log" @visitedTiles[randomNeighbor.x][randomNeighbor.y] = true end end |