need to fix the unperfect maze and add the function in the kruskal generator

This commit is contained in:
Maoake TERIIEROOITERAI
2026-03-26 00:58:07 +01:00
parent 24748c47ad
commit 5aec319f7b
6 changed files with 41 additions and 45 deletions
+3
View File
@@ -4,6 +4,9 @@ install:
run: install run: install
uv run python3 a_maze_ing.py config.txt uv run python3 a_maze_ing.py config.txt
run_windows:
.venv\Scripts\python -m a_maze_ing config.txt
debug: debug:
uv pdb python3 a_maze_ing.py config.txt uv pdb python3 a_maze_ing.py config.txt
+5 -5
View File
@@ -1,8 +1,8 @@
WIDTH=30 WIDTH=20
HEIGHT=30 HEIGHT=20
ENTRY=1,1 ENTRY=1,1
EXIT=29,29 EXIT=2,1
OUTPUT_FILE=maze.txt OUTPUT_FILE=maze.txt
PERFECT=True PERFECT=False
GENERATOR=Kruskal GENERATOR=DFS
SOLVER=AStar SOLVER=AStar
+2 -2
View File
@@ -8,8 +8,8 @@ from src.amaz_lib import Maze, MazeGenerator, MazeSolver
class AMazeIng(BaseModel): class AMazeIng(BaseModel):
model_config = ConfigDict(arbitrary_types_allowed=True) model_config = ConfigDict(arbitrary_types_allowed=True)
width: int = Field(ge=3) width: int = Field(ge=4)
height: int = Field(ge=3) height: int = Field(ge=4)
entry: tuple[int, int] entry: tuple[int, int]
exit: tuple[int, int] exit: tuple[int, int]
output_file: str = Field(min_length=3) output_file: str = Field(min_length=3)
+1 -1
View File
@@ -58,7 +58,7 @@ class MazeGenerator(ABC):
"W": "E", "W": "E",
"E": "W" "E": "W"
} }
min_break = 3 min_break = 2
while True: while True:
count = 0 count = 0
for y in range(height): for y in range(height):
+6 -3
View File
@@ -54,12 +54,14 @@ class DataMaze:
res.update({key: DataMaze.convert_bool(data[key])}) res.update({key: DataMaze.convert_bool(data[key])})
res.update({"OUTPUT_FILE": data["OUTPUT_FILE"]}) res.update({"OUTPUT_FILE": data["OUTPUT_FILE"]})
res.update( res.update(
DataMaze.get_solver_generator(data, res["ENTRY"], res["EXIT"]) DataMaze.get_solver_generator(data, res["ENTRY"], res["EXIT"],
res["PERFECT"])
) )
return res return res
@staticmethod @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 = { available_generator = {
"Kruskal": Kruskal, "Kruskal": Kruskal,
"DFS": DepthFirstSearch, "DFS": DepthFirstSearch,
@@ -68,7 +70,8 @@ class DataMaze:
"AStar": AStar, "AStar": AStar,
} }
res = {} res = {}
res["GENERATOR"] = available_generator[data["GENERATOR"]]() res["GENERATOR"] = available_generator[data["GENERATOR"]](entry, exit,
perfect)
res["SOLVER"] = available_solver[data["SOLVER"]](entry, exit) res["SOLVER"] = available_solver[data["SOLVER"]](entry, exit)
return res return res
+24 -34
View File
@@ -1,34 +1,24 @@
957D3955553B957917B93D3D15553B B91795551793955513D3
AB97AABBD16847D6ABAAAD452B97C6 AEC1413969686D396C52
8687A8443EBC55538286E953A807D3 C392BA869694552C553A
878506952BAD3B942EAD503E86ED52 BC6AAAC1296957A917AA
852D4383C6C384438147D2C3879796 83968692C292956A816A
ED2B96EC7D384792EC5792BEC38103 AAC3C3843C28293AAC3A
BBC2C795516C13EC51556C053AAEAA E83816ABC3E86AAA83C2
8452BD43D4396AD552D3BBEBE803EE 96AAA92C3C3C56AC6C3A
853A8552B902BABD5290029696AA93 A96AC2AF87AFFFA9152A
C7AC2B9686EE82ABB82EEC07C7E86A 843A96EFC5057FAC2D2A
D3AD0683C7D3EAC2C6C3D5693956D2 C7AA853FFFAFFFC3C142
9687E92EBBD0103857D43916A85796 952AA9697FAFD5145692
C52BD2A942D2EAE857D542E946D147 C3AAE83C3FAFFFC153AA
D3EC12EE9692F852FFFBBE96957EBB 96AC16C383A9515696AA
B87BAA97852AFED057FC07C507D506 C3C7C552AAAC3C53C16A
C2942C47C7EEFFFAFFFD4517ED53C3 969555106829457A9416
946BABB91553BBFEFD51796955147A 856953AA946E953843C3
C3BA82AAC53C6AFBFFF816BEBD053A A93A906E85112BAE96BA
D06AE828792B90543D568547856D42 C6AAE81105684685292A
92BC56AAD2C6A87B83916D516BD53A D56C546C4554554546C6
AAAD13C47AD3AED46EEA95103853C2
EAAD2815143C43D3BBD0696EAED416 1,1
B847EEC3EBC57AD4407C7C3B85792B 2,1
AEBBD5503A9156BD16D1792A8796AA S
87AC3BD2C42C57C383D2BEAC47C3EA
C50542B857879112E812C1297BD6BA
D3C3D44417C7EEAC3EAC52C47C516A
BA903B91693B97AB87A938157D5052
802A82EC5684414287AAEE87953AD2
EEEEEC57D547D6D6C546D54547C47E
1,1
29,29
SSSSEESSESSSENEEESWSSWSSWSSSSESESSENNNNESEESWSSSWWWSESSSSESWSEENESEEEENNNESESSSEENNNNESEESESSEENEESENNEESW