- # TODO: Something cleaner than this.
- x, y = self.position
- if direction == BITS.NORTH:
- if y > 0 and self.bits.check_bit(BITS.NORTH):
- self.position = (x, y - 1)
- return True
- elif direction == BITS.SOUTH:
- if y < 4 and self.bits.check_bit(BITS.SOUTH):
- self.position = (x, y + 1)
- return True
- elif direction == BITS.EAST:
- if x < 4 and self.bits.check_bit(BITS.EAST):
- self.position = (x + 1, y)
- return True
- elif direction == BITS.WEST:
- if x > 0 and self.bits.check_bit(BITS.WEST):
- self.position = (x - 1, y)
- return True
-
+ new_position = self.get_adjacent_position(direction)
+ if new_position is not None:
+ self.position = new_position
+ return True