Strategická: Přejmenování action -> direction
Tam, kde to dává smysl.
This commit is contained in:
parent
b9ebbbcc30
commit
13e65f555f
1 changed files with 10 additions and 10 deletions
|
@ -81,19 +81,19 @@ class Field:
|
|||
def __hash__(self) -> int:
|
||||
return hash((self.i, self.j))
|
||||
|
||||
def get_neighbour_field(self, action: Direction) -> Field:
|
||||
def get_neighbour_field(self, direction: Direction) -> Field:
|
||||
"""Get the next field in the given direction."""
|
||||
|
||||
if action == Direction.UP:
|
||||
if direction == Direction.UP:
|
||||
neighbour_i = self.i - 1
|
||||
neighbour_j = self.j
|
||||
elif action == Direction.DOWN:
|
||||
elif direction == Direction.DOWN:
|
||||
neighbour_i = self.i + 1
|
||||
neighbour_j = self.j
|
||||
elif action == Direction.LEFT:
|
||||
elif direction == Direction.LEFT:
|
||||
neighbour_i = self.i
|
||||
neighbour_j = self.j - 1
|
||||
elif action == Direction.RIGHT:
|
||||
elif direction == Direction.RIGHT:
|
||||
neighbour_i = self.i
|
||||
neighbour_j = self.j + 1
|
||||
else:
|
||||
|
@ -201,8 +201,8 @@ def find_fields(predicate: Callable[[Field], bool]) -> List[Field]:
|
|||
def pathfind(member: Member, goal: Field) -> Direction:
|
||||
"""Find the shortest path from member position to goal.
|
||||
|
||||
Returns the first action to take.
|
||||
If there is no path, returns Action.STAY.
|
||||
Returns the first direction to go in.
|
||||
If there is no path, returns STAY.
|
||||
"""
|
||||
|
||||
# BFS from goal to member
|
||||
|
@ -211,13 +211,13 @@ def pathfind(member: Member, goal: Field) -> Direction:
|
|||
queue = collections.deque([goal])
|
||||
while queue:
|
||||
field = queue.popleft()
|
||||
for action in Direction:
|
||||
neighbour = field.get_neighbour_field(action)
|
||||
for direction in Direction:
|
||||
neighbour = field.get_neighbour_field(direction)
|
||||
if (neighbour in explored or
|
||||
not neighbour.is_accessible(member.team)):
|
||||
continue
|
||||
if neighbour == member.field:
|
||||
return action.invert()
|
||||
return direction.invert()
|
||||
queue.append(neighbour)
|
||||
explored.add(neighbour)
|
||||
return Direction.STAY
|
||||
|
|
Loading…
Reference in a new issue