From c19eb1a1f61a7da36c38974a6e34aca4440c5370 Mon Sep 17 00:00:00 2001 From: raskatovia Date: Sat, 23 May 2026 12:11:53 +0300 Subject: [PATCH] =?UTF-8?q?[2]=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=BB=D0=B0=D0=B1=D0=B8=D1=80=D0=B8=D0=BD=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- raskatovia/docs/data/task2/maps/hard.txt | 9 ++++++++ raskatovia/docs/data/task2/maps/medium.txt | 7 ++++++ raskatovia/docs/data/task2/solver.py | 25 ++++++++++++++-------- 3 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 raskatovia/docs/data/task2/maps/hard.txt create mode 100644 raskatovia/docs/data/task2/maps/medium.txt diff --git a/raskatovia/docs/data/task2/maps/hard.txt b/raskatovia/docs/data/task2/maps/hard.txt new file mode 100644 index 0000000..99fb354 --- /dev/null +++ b/raskatovia/docs/data/task2/maps/hard.txt @@ -0,0 +1,9 @@ +############### +#S....#.......# +#.###.#.#####.# +#...#.#.....#.# +###.#.#####.#.# +#...#.....#.#.# +#.#######.#.#.# +#............F# +############### \ No newline at end of file diff --git a/raskatovia/docs/data/task2/maps/medium.txt b/raskatovia/docs/data/task2/maps/medium.txt new file mode 100644 index 0000000..70ac804 --- /dev/null +++ b/raskatovia/docs/data/task2/maps/medium.txt @@ -0,0 +1,7 @@ +########### +#S..#.....# +###.#.###.# +#...#...#.# +#.#####.#.# +#.......#F# +########### \ No newline at end of file diff --git a/raskatovia/docs/data/task2/solver.py b/raskatovia/docs/data/task2/solver.py index ad20457..4456ec5 100644 --- a/raskatovia/docs/data/task2/solver.py +++ b/raskatovia/docs/data/task2/solver.py @@ -115,14 +115,21 @@ class MazeSolver: return self.strategy.solve(maze) if __name__ == "__main__": - maze = MazeBuilder().from_file("raskatovia/docs/data/task2/maps/simple.txt").build() + files = [ + "simple.txt", + "medium.txt", + "hard.txt" + ] strategies = [BfsStrategy(), DfsStrategy(), AstarStrategy()] - for strategy in strategies: - solver = MazeSolver(strategy) - result = solver.solve(maze) - print("algorithm:", result["name"]) - print("visited:", result["visited"]) - print("length:", result["length"]) - print(maze.draw(result["path"])) - print() \ No newline at end of file + for filename in files: + print("map:", filename) + maze = MazeBuilder().from_file("raskatovia/docs/data/task2/maps/" + filename).build() + for strategy in strategies: + solver = MazeSolver(strategy) + result = solver.solve(maze) + print("algorithm:", result["name"]) + print("visited:", result["visited"]) + print("length:", result["length"]) + print(maze.draw(result["path"])) + print() \ No newline at end of file