X-Git-Url: https://git.ctpug.org.za/?p=erdslangetjie.git;a=blobdiff_plain;f=erdslangetjie%2Fplayer.py;h=fd445549ed530acbf1f71cb5d8e20af3dbedda08;hp=5bb6472b1b88fca7b942d28a60e97e8eb35690ff;hb=6b9b0ccf122251850a75970305531bc4b4e8fca8;hpb=203026d3f0f757c137628a3217c908fbb53bf5e7 diff --git a/erdslangetjie/player.py b/erdslangetjie/player.py index 5bb6472..fd44554 100644 --- a/erdslangetjie/player.py +++ b/erdslangetjie/player.py @@ -43,8 +43,9 @@ class Nemesis(FigureSprite): super(Nemesis, self).__init__() self.sprite = load_image('sprites/nemesis.png') self.reset_pos() + self.been = [] - def move(self, level): + def move(self, level, caught): if not self.on_board(): # Advance towards the map a step at a time self.pos = (self.pos[0] + 1, self.pos[1]) @@ -52,6 +53,20 @@ class Nemesis(FigureSprite): self.pos = level.enter_pos return False # AI goes here + steps = 0 + self.been.append(self.pos) + for direction in [(1, 0), (-1, 0), (0, -1), (0, 1)] * 2: + new_pos = (self.pos[0] + direction[0], self.pos[1] + direction[1]) + if self.can_move(direction, level) and new_pos not in self.been: + self.pos = new_pos + self.been.append(new_pos) + steps += 1 + if steps >= 2: + break + if caught(): + break + if steps == 0: + self.been = [] return True def reset_pos(self):