From 57f20a5ef761985b34817846d471a064b180e089 Mon Sep 17 00:00:00 2001 From: Joel Kronqvist Date: Sun, 26 Oct 2025 12:52:34 +0200 Subject: feat: implemented simple snake game --- GameView.py | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 GameView.py (limited to 'GameView.py') diff --git a/GameView.py b/GameView.py new file mode 100644 index 0000000..241914c --- /dev/null +++ b/GameView.py @@ -0,0 +1,56 @@ + +from Game import Game +import pygame + +class GameView: + + + game = Game() + + cellWidth = 64 + + _tickTime = 700 + + _previousTick = None + + nextControlDirection = None + + + def isRunning(self): return not self.game.isLost() + + + def width(self): return self.game.width() * self.cellWidth + + + def height(self): return self.game.height() * self.cellWidth + + + def render(self, surface): + + surface.fill("black") + + for cell in self.game.snake.cells: + pygame.draw.rect(surface, "red", pygame.Rect( + cell.x*self.cellWidth, + cell.y*self.cellWidth, + self.cellWidth, + self.cellWidth + )) + + for cell in self.game.walls.walls(): + pygame.draw.rect(surface, "white", pygame.Rect( + cell.x*self.cellWidth, + cell.y*self.cellWidth, + self.cellWidth, + self.cellWidth + )) + + + def update(self, time): + if (self._previousTick == None) or (self._previousTick + self._tickTime <= time): + self._previousTick = time + if self.nextControlDirection != None: + self.game.snake.heading = self.nextControlDirection + self.nextControlDirection = None + self.game.tick() + -- cgit v1.2.3