X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=naja%2Fplayer.py;h=f51e83ef257fdcdc7fe03d0062e00ab0a7ba7cec;hb=40a95ca09c7a7ca0b4cca019e0ca8eb7670054bc;hp=fa6e1e9f3b3edd39a7a20a109135c39ee1f9cd36;hpb=b28198fc51a256d3e1ac9d3f983aff05c6ace25a;p=naja.git diff --git a/naja/player.py b/naja/player.py index fa6e1e9..f51e83e 100644 --- a/naja/player.py +++ b/naja/player.py @@ -21,16 +21,16 @@ class PlayerBits(object): # Operate on individual bits def check_bit(self, bit): - return bool(self.bits & bit) + return bool(self.bits & (1 << bit)) def set_bit(self, bit): - self.bits |= bit + self.bits |= (1 << bit) def clear_bit(self, bit): - self.bits &= (0xff ^ bit) + self.bits &= (0xff ^ (1 << bit)) def toggle_bit(self, bit): - self.bits ^= bit + self.bits ^= (1 << bit) # Operate on sets of bits @@ -75,19 +75,19 @@ class Player(object): # TODO: Something cleaner than this. x, y = self.position if direction == BITS.NORTH: - if y > 0: + if y > 0 and self.bits.check_bit(BITS.NORTH): self.position = (x, y - 1) return True elif direction == BITS.SOUTH: - if y < 4: + if y < 4 and self.bits.check_bit(BITS.SOUTH): self.position = (x, y + 1) return True elif direction == BITS.EAST: - if x < 4: + if x < 4 and self.bits.check_bit(BITS.EAST): self.position = (x + 1, y) return True elif direction == BITS.WEST: - if x > 0: + if x > 0 and self.bits.check_bit(BITS.WEST): self.position = (x - 1, y) return True