diff --git a/config.txt b/config.txt index 5d7e0a5..3d8291a 100644 --- a/config.txt +++ b/config.txt @@ -1,5 +1,5 @@ -WIDTH=20 -HEIGHT=20 +WIDTH=15 +HEIGHT=15 ENTRY=1,1 EXIT=2,2 OUTPUT_FILE=maze.txt diff --git a/src/AMazeIng.py b/src/AMazeIng.py index 3a1e90a..b0414fa 100644 --- a/src/AMazeIng.py +++ b/src/AMazeIng.py @@ -33,7 +33,7 @@ class AMazeIng(BaseModel): return def solve_path(self) -> str: - return self.solver.solve(self.maze) + return self.solver.solve(self.maze, self.height, self.width) def __str__(self) -> str: res = self.maze.__str__() diff --git a/src/amaz_lib/MazeSolver.py b/src/amaz_lib/MazeSolver.py index f5f14fe..18033e6 100644 --- a/src/amaz_lib/MazeSolver.py +++ b/src/amaz_lib/MazeSolver.py @@ -152,7 +152,8 @@ class AStar(MazeSolver): str(list(c[1].keys())[0]) for c in path if len(c[1]) > 0 ) - def solve(self, maze: Maze) -> str: + def solve(self, maze: Maze, height: int = None, + width: int = None) -> str: res = self.get_path(maze.get_maze()) if res is None: raise Exception("Path not found") @@ -161,8 +162,7 @@ class AStar(MazeSolver): class DepthFirstSearchSolver(MazeSolver): def __init__(self, start, end): - self.start = (start[1] - 1, start[0] - 1) - self.end = (end[1] - 1, end[0] - 1) + super().__init__(start, end) def solve(self, maze: Maze, height: int = None, width: int = None) -> str: diff --git a/src/parsing/Parsing.py b/src/parsing/Parsing.py index 75659c7..a4a815b 100644 --- a/src/parsing/Parsing.py +++ b/src/parsing/Parsing.py @@ -1,5 +1,5 @@ from src.amaz_lib.MazeGenerator import DepthFirstSearch, Kruskal -from src.amaz_lib.MazeSolver import AStar +from src.amaz_lib.MazeSolver import AStar, DepthFirstSearchSolver class DataMaze: @@ -68,6 +68,7 @@ class DataMaze: } available_solver = { "AStar": AStar, + "DFS": DepthFirstSearchSolver } res = {} res["GENERATOR"] = available_generator[data["GENERATOR"]](entry, exit, diff --git a/test.txt b/test.txt index e42df81..d2bfc11 100644 --- a/test.txt +++ b/test.txt @@ -1,24 +1,19 @@ -B9153957955513953953 -AEA96A9569792C6BAAD6 -C5443AA9169281102C53 -95556A82816C2AC2A952 -A93916A86A956C3A86D6 -AEC6C542944513806953 -C395553AC393C2AC787A -BC69512C7AAC56855692 -A952BAAF96AFFFAD53AE -A810686FC5057FC516C3 -AAC4543FFFAFFFB96952 -AC5553817FAFD52ABC3A -815552843FEFFF80296A -AC553A85413D55406C12 -C53BAAC392C3953C13AA -9386AC386A9683C56AAA -846903AE96C568517C2A -AD3A82C385397C3C5546 -C12AA87AA94293AD5513 -D46C6C5446D46C45556E +D553955513B913B +9796C553AA86AC2 +83C151146AC7C12 +C03856817C393EA +96EC53A8556AC3A +8553FC6AFFFABC2 +8792FD5057FAC16 +E946FFFAFFF83AB +92913BFAFD52AC2 +AEAAC6FAFFFEC3A +A904553A9555382 +828557AAAD5546E +844553C6C151553 +C5395439545453A +D546D546D555546 1,1 2,2 -SSEEENENWWWS +EEESWSEEEEEENNESSSESWWWSSSSSSSSWNNWWWNNWSSSSEEESWWSWNWWNENWNNNENEENNWWWNENNWNE