SEED implementation

This commit is contained in:
2026-04-03 13:58:41 +02:00
parent b6067b2045
commit 0045def73b
4 changed files with 16 additions and 19 deletions
+1 -9
View File
@@ -6,12 +6,4 @@ OUTPUT_FILE=con
PERFECT=True
GENERATOR=DFS
SOLVER=AStar
salut
#
#
#
#
#
#
#
##
SEED=168431
+4 -1
View File
@@ -21,6 +21,7 @@ class AMazeIng(BaseModel):
maze: Maze = Field(default=Maze(None))
generator: MazeGenerator
solver: MazeSolver
seed: int | None = Field(default=None)
@model_validator(mode="after")
def check_entry_exit(self) -> Self:
@@ -48,7 +49,9 @@ class AMazeIng(BaseModel):
Yields:
The current maze state after each generation step.
"""
for array in self.generator.generator(self.height, self.width):
for array in self.generator.generator(
self.height, self.width, self.seed
):
self.maze.set_maze(array)
yield self.maze
return
+1 -1
View File
@@ -369,7 +369,7 @@ class DepthFirstSearch(MazeGenerator):
The final generated maze.
"""
if seed is not None:
np.random.seed(seed)
random.seed(seed)
maze = self.init_maze(width, height)
if width > 10 and height > 10:
self.forty_two = self.get_cell_ft(width, height)
+10 -8
View File
@@ -62,14 +62,12 @@ class DataMaze:
"GENERATOR",
"SOLVER",
}
set_key = {key for key in data.keys()}
if len(set_key) != len(key_test):
raise KeyError("Missing some data the len do not correspond")
res_key = {key for key in set_key if key not in key_test}
if len(res_key) != 0:
raise KeyError(
"Some Key " f"do not correspond the keys: {res_key}"
)
i = 0
for key in data:
if key in key_test:
i += 1
if len(key_test) != i:
raise Exception("Some mandatory key not provide")
@staticmethod
def convert_values(data: dict[str, str]) -> dict[str, Any]:
@@ -88,6 +86,10 @@ class DataMaze:
res: dict[str, Any] = {}
for key in key_int:
res.update({key: int(data[key])})
try:
res.update({"SEED": int(data["SEED"])})
except KeyError:
pass
for key in key_tuple:
res.update({key: DataMaze.convert_tuple(data[key])})
for key in key_bool: