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