added README
All checks were successful
Python unit tests / unittests (push) Successful in 4s

This commit is contained in:
2025-01-24 16:29:11 +01:00
parent 307c46d86a
commit d6d4c05554
2 changed files with 150 additions and 22 deletions

View File

@ -62,17 +62,13 @@ class Furniture:
class State:
def __init__(
self,
#plan: list[list[int]],
width: int,
height: int,
furniture: dict[id, Furniture],
parent: Optional[State] = None
):
#self.plan: list[list[int]] = plan
self.furniture: dict[id, Furniture] = furniture
self.parent: Optional[State] = parent
#self.width: int = len(plan[0])
#self.height: int = len(plan)
self.width: int = width
self.height: int = height
@ -93,7 +89,6 @@ class State:
for i, tiles in furniture.items()
}
#return State(plan, furniture2)
return State(width, height, furniture2)
def to_list(self) -> list[list[int]]:
@ -113,22 +108,6 @@ class State:
return self.parent.get_depth() + 1
def apply_move(self, id: int, offset: tuple[int, int]) -> Optional[State]:
#new_plan: list[list[int]] = [[0] * self.width for _ in range(self.height)]
"""
for y, row in enumerate(self.plan):
for x, tile in enumerate(row):
if tile == id:
x2, y2 = x + offset[0], y + offset[1]
if x2 < 0 or x2 >= self.width or y2 < 0 or y2 >= self.height:
return None
if new_plan[y2][x2] not in (0, id):
return None
new_plan[y2][x2] = id
new_plan[y][x] = 0
else:
new_plan[y][x] = tile
"""
plan: list[list[int]] = self.to_list()
furn2: Furniture = self.furniture[id].move(offset)
for tx, ty in furn2.get_tiles():
@ -192,7 +171,6 @@ def minimumMoves(current_plan: list[list[int]], target_plan: list[list[int]]) ->
current_state = State.from_list(current_plan)
target_state = State.from_list(target_plan)
states: list[State] = [current_state]
while len(states) != 0:
new_states: list[State] = []