forked from UNN/2026-rff_mp
66 lines
1006 B
Python
66 lines
1006 B
Python
from builders.text_file_maze_builder import TextFileMazeBuilder
|
|
|
|
from strategies.bfs_strategy import BFS
|
|
from strategies.dfs_strategy import DFSStrategy
|
|
from strategies.astar_strategy import AStarStrategy
|
|
|
|
from solver.maze_solver import MazeSolver
|
|
|
|
from observer.console_view import ConsoleView
|
|
|
|
|
|
mazes = {
|
|
"1": "small.txt",
|
|
"2": "medium.txt",
|
|
"3": "large.txt",
|
|
"4": "no_exit.txt"
|
|
}
|
|
|
|
strategies = {
|
|
"1": BFS(),
|
|
"2": DFSStrategy(),
|
|
"3": AStarStrategy()
|
|
}
|
|
|
|
|
|
print("Choose maze:")
|
|
print("1 - small")
|
|
print("2 - medium")
|
|
print("3 - large")
|
|
print("4 - no_exit")
|
|
|
|
maze_choice = input("> ")
|
|
|
|
print()
|
|
|
|
print("Choose strategy:")
|
|
print("1 - BFS")
|
|
print("2 - DFS")
|
|
print("3 - A*")
|
|
|
|
strategy_choice = input("> ")
|
|
|
|
|
|
builder = TextFileMazeBuilder()
|
|
|
|
maze = builder.build_from_file(
|
|
f"mazes/{mazes[maze_choice]}"
|
|
)
|
|
|
|
strategy = strategies[strategy_choice]
|
|
|
|
|
|
solver = MazeSolver(
|
|
maze,
|
|
strategy
|
|
)
|
|
|
|
stats = solver.solve()
|
|
|
|
|
|
print(stats)
|
|
|
|
|
|
view = ConsoleView(maze)
|
|
|
|
solver.attach(view) |