diff --git a/Makefile b/Makefile index 0d575a3..84ea907 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,9 @@ install: run: install uv run python3 a_maze_ing.py config.txt +run_windows: + .venv\Scripts\python -m a_maze_ing config.txt + debug: uv pdb python3 a_maze_ing.py config.txt diff --git a/config.txt b/config.txt index 8f3293a..b187b15 100644 --- a/config.txt +++ b/config.txt @@ -1,8 +1,8 @@ -WIDTH=30 -HEIGHT=30 +WIDTH=20 +HEIGHT=20 ENTRY=1,1 -EXIT=29,29 +EXIT=2,1 OUTPUT_FILE=maze.txt -PERFECT=True -GENERATOR=Kruskal +PERFECT=False +GENERATOR=DFS SOLVER=AStar diff --git a/src/AMazeIng.py b/src/AMazeIng.py index 3e1f951..03bcee4 100644 --- a/src/AMazeIng.py +++ b/src/AMazeIng.py @@ -8,8 +8,8 @@ from src.amaz_lib import Maze, MazeGenerator, MazeSolver class AMazeIng(BaseModel): model_config = ConfigDict(arbitrary_types_allowed=True) - width: int = Field(ge=3) - height: int = Field(ge=3) + width: int = Field(ge=4) + height: int = Field(ge=4) entry: tuple[int, int] exit: tuple[int, int] output_file: str = Field(min_length=3) diff --git a/src/amaz_lib/MazeGenerator.py b/src/amaz_lib/MazeGenerator.py index 933c604..fc4c163 100644 --- a/src/amaz_lib/MazeGenerator.py +++ b/src/amaz_lib/MazeGenerator.py @@ -58,7 +58,7 @@ class MazeGenerator(ABC): "W": "E", "E": "W" } - min_break = 3 + min_break = 2 while True: count = 0 for y in range(height): diff --git a/src/parsing/Parsing.py b/src/parsing/Parsing.py index 97bf839..75659c7 100644 --- a/src/parsing/Parsing.py +++ b/src/parsing/Parsing.py @@ -54,12 +54,14 @@ class DataMaze: res.update({key: DataMaze.convert_bool(data[key])}) res.update({"OUTPUT_FILE": data["OUTPUT_FILE"]}) res.update( - DataMaze.get_solver_generator(data, res["ENTRY"], res["EXIT"]) + DataMaze.get_solver_generator(data, res["ENTRY"], res["EXIT"], + res["PERFECT"]) ) return res @staticmethod - def get_solver_generator(data: dict, entry: int, exit: int) -> dict: + def get_solver_generator(data: dict, entry: tuple, exit: tuple, + perfect: bool) -> dict: available_generator = { "Kruskal": Kruskal, "DFS": DepthFirstSearch, @@ -68,7 +70,8 @@ class DataMaze: "AStar": AStar, } res = {} - res["GENERATOR"] = available_generator[data["GENERATOR"]]() + res["GENERATOR"] = available_generator[data["GENERATOR"]](entry, exit, + perfect) res["SOLVER"] = available_solver[data["SOLVER"]](entry, exit) return res diff --git a/test.txt b/test.txt index ba65f51..3ea6125 100644 --- a/test.txt +++ b/test.txt @@ -1,34 +1,24 @@ -957D3955553B957917B93D3D15553B -AB97AABBD16847D6ABAAAD452B97C6 -8687A8443EBC55538286E953A807D3 -878506952BAD3B942EAD503E86ED52 -852D4383C6C384438147D2C3879796 -ED2B96EC7D384792EC5792BEC38103 -BBC2C795516C13EC51556C053AAEAA -8452BD43D4396AD552D3BBEBE803EE -853A8552B902BABD5290029696AA93 -C7AC2B9686EE82ABB82EEC07C7E86A -D3AD0683C7D3EAC2C6C3D5693956D2 -9687E92EBBD0103857D43916A85796 -C52BD2A942D2EAE857D542E946D147 -D3EC12EE9692F852FFFBBE96957EBB -B87BAA97852AFED057FC07C507D506 -C2942C47C7EEFFFAFFFD4517ED53C3 -946BABB91553BBFEFD51796955147A -C3BA82AAC53C6AFBFFF816BEBD053A -D06AE828792B90543D568547856D42 -92BC56AAD2C6A87B83916D516BD53A -AAAD13C47AD3AED46EEA95103853C2 -EAAD2815143C43D3BBD0696EAED416 -B847EEC3EBC57AD4407C7C3B85792B -AEBBD5503A9156BD16D1792A8796AA -87AC3BD2C42C57C383D2BEAC47C3EA -C50542B857879112E812C1297BD6BA -D3C3D44417C7EEAC3EAC52C47C516A -BA903B91693B97AB87A938157D5052 -802A82EC5684414287AAEE87953AD2 -EEEEEC57D547D6D6C546D54547C47E - -1,1 -29,29 -SSSSEESSESSSENEEESWSSWSSWSSSSESESSENNNNESEESWSSSWWWSESSSSESWSEENESEEEENNNESESSSEENNNNESEESESSEENEESENNEESW +B91795551793955513D3 +AEC1413969686D396C52 +C392BA869694552C553A +BC6AAAC1296957A917AA +83968692C292956A816A +AAC3C3843C28293AAC3A +E83816ABC3E86AAA83C2 +96AAA92C3C3C56AC6C3A +A96AC2AF87AFFFA9152A +843A96EFC5057FAC2D2A +C7AA853FFFAFFFC3C142 +952AA9697FAFD5145692 +C3AAE83C3FAFFFC153AA +96AC16C383A9515696AA +C3C7C552AAAC3C53C16A +969555106829457A9416 +856953AA946E953843C3 +A93A906E85112BAE96BA +C6AAE81105684685292A +D56C546C4554554546C6 + +1,1 +2,1 +S