mirror of
https://github.com/maoakeEnterprise/amazing.git
synced 2026-04-28 16:04:35 +02:00
SEED implementation
This commit is contained in:
+1
-9
@@ -6,12 +6,4 @@ OUTPUT_FILE=con
|
|||||||
PERFECT=True
|
PERFECT=True
|
||||||
GENERATOR=DFS
|
GENERATOR=DFS
|
||||||
SOLVER=AStar
|
SOLVER=AStar
|
||||||
salut
|
SEED=168431
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
##
|
|
||||||
|
|||||||
+4
-1
@@ -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
|
||||||
|
|||||||
@@ -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
@@ -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:
|
||||||
|
|||||||
Reference in New Issue
Block a user