+
+ def move(self, direction):
+ if not self.bits.check_bit(direction):
+ return False
+ # 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
+
+ return False