diff --git a/game.py b/game.py index 999f541..3f18fe4 100644 --- a/game.py +++ b/game.py @@ -131,6 +131,8 @@ def __init__(self, level=1, lives=LIVES, timeout=TIMEOUT, size=MAP_SIZE): self._running = False self._timeout = timeout self._score = 0 + self._step = 0 + self._total_steps = 0 self._state = {} self._initial_lives = lives self.map = Map(size=size, empty=True) @@ -154,6 +156,10 @@ def running(self): def score(self): return self._score + @property + def total_steps(self): + return self._total_steps + def start(self, player_name): logger.debug("Reset world") self._player_name = player_name @@ -168,6 +174,7 @@ def start(self, player_name): def stop(self): logger.info("GAME OVER") + self._total_steps += self._step self._running = False def next_level(self, level): @@ -179,6 +186,7 @@ def next_level(self, level): logger.info("NEXT LEVEL") self.map = Map(level=level, size=self.map.size, enemies=len(LEVEL_ENEMIES[level])) self._bomberman.respawn() + self._total_steps += self._step self._step = 0 self._bombs = [] self._powerups = [] diff --git a/server.py b/server.py index c4f5a30..b313cd2 100644 --- a/server.py +++ b/server.py @@ -41,7 +41,7 @@ def __init__(self, level, lives, timeout, grading): def save_highscores(self): # update highscores logger.debug("Save highscores") - logger.info("FINAL SCORE <%s>: %s", self.current_player.name, self.game.score) + logger.info("FINAL SCORE <%s>: %s with %s steps", self.current_player.name, self.game.score, self.game.total_steps) self._highscores.append((self.current_player.name, self.game.score)) self._highscores = sorted(self._highscores, key=lambda s: -1 * s[1])[ @@ -129,6 +129,7 @@ async def mainloop(self): try: if self.grading: game_rec["score"] = self.game.score + game_rec["total_steps"] = self.game.total_steps game_rec["level"] = self.game.map.level requests.post(self.grading, json=game_rec) except: @@ -162,6 +163,7 @@ async def mainloop(self): game_loop_task = asyncio.ensure_future(g.mainloop()) + logger.info(f"Listenning @ {args.bind}:{args.port}") websocket_server = websockets.serve(g.incomming_handler, args.bind, args.port) loop = asyncio.get_event_loop()