diff options
| -rw-r--r-- | Game.py | 6 | ||||
| -rw-r--r-- | Snake.py | 8 |
2 files changed, 7 insertions, 7 deletions
@@ -47,7 +47,7 @@ class Game: walls = None def __init__(self): - self.snake = Snake([Vec2(6, 6), Vec2(6, 7), Vec2(6,8), Vec2(7,8)], self) + self.snake = Snake([Vec2(6, 6), Vec2(6, 7), Vec2(6,8), Vec2(7,8), Vec2(8, 8), Vec2(9, 8)], self) _box1 = Box(Vec2(11, 4)) _box2 = Box(Vec2(3, 10)) self.boxes = [_box1, _box2] @@ -59,7 +59,7 @@ class Game: # # # h # # t # -# tt # +# tttt # # # # b # # ### # @@ -79,6 +79,8 @@ class Game: boxAt = next(filter(lambda box: box.pos == pos, self.boxes), None) if self.walls.wallAt(pos): return False + elif pos in self.snake.cells: + return False elif boxAt != None: if self.enter(pos + inDir, inDir): boxAt.pos = pos + inDir @@ -16,13 +16,11 @@ class Snake: def move(self): nextPos = self.cells[0] + self.heading + last = self.cells.pop() 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) + self.cells.insert(0, nextPos) else: + self.cells.append(last) self.hasCollided = True def head(self): |
