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
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
+5 -5
View File
@@ -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
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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):
+6 -3
View File
@@ -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
+22 -32
View File
@@ -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
B91795551793955513D3
AEC1413969686D396C52
C392BA869694552C553A
BC6AAAC1296957A917AA
83968692C292956A816A
AAC3C3843C28293AAC3A
E83816ABC3E86AAA83C2
96AAA92C3C3C56AC6C3A
A96AC2AF87AFFFA9152A
843A96EFC5057FAC2D2A
C7AA853FFFAFFFC3C142
952AA9697FAFD5145692
C3AAE83C3FAFFFC153AA
96AC16C383A9515696AA
C3C7C552AAAC3C53C16A
969555106829457A9416
856953AA946E953843C3
A93A906E85112BAE96BA
C6AAE81105684685292A
D56C546C4554554546C6
1,1
29,29
SSSSEESSESSSENEEESWSSWSSWSSSSESESSENNNNESEESWSSSWWWSESSSSESWSEENESEEEENNNESESSSEENNNNESEESESSEENEESENNEESW
2,1
S