diff options
Diffstat (limited to 'Snake.py')
| -rw-r--r-- | Snake.py | 24 |
1 files changed, 15 insertions, 9 deletions
@@ -1,23 +1,29 @@ import Vec +from Vec import Vec2 +import Game class Snake: cells = [] heading = Vec.up + game = None + hasCollided = False - def __init__(self, cells): + def __init__(self, cells: list[Vec2], game: Game): self.cells = cells + self.game = game def move(self): - self.cells.pop() - self.cells.insert(0, self.cells[0] + self.heading) - - def headInTail(self): - res = False - for i in range(1, len(self.cells)): - res = res or (self.cells[0] == self.cells[i]) - return res + nextPos = self.cells[0] + self.heading + if self.game.enter(nextPos, self.heading): + if nextPos in self.cells[1:len(self.cells)-1]: + self.hasCollided = True + else: + self.cells.pop() + self.cells.insert(0, nextPos) + else: + self.hasCollided = True def head(self): return self.cells[0] |
