2026-rff_mp/nehoroshevaa/task2/main.py
2026-05-24 21:49:38 +03:00

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)