From: Geoffrey Allott Date: Tue, 27 Dec 2022 08:57:55 +0000 (+0000) Subject: show orig_highscore on screen and separate border/no border highscores X-Git-Url: https://git.pointlesshacks.com/?a=commitdiff_plain;h=67eb51cfff2dda779f169bcfb01afb4da582cda5;p=snake.git show orig_highscore on screen and separate border/no border highscores --- diff --git a/snake.py b/snake.py index 001f575..2add650 100644 --- a/snake.py +++ b/snake.py @@ -227,7 +227,7 @@ class GameArea: for i, row in enumerate(self.tiles): for j, tile in enumerate(row): self.win.addch(i, j, tile.char(), tile.color()) - self.win.addstr(i + 1, 2, f'{self.highscore:04}') + self.win.addstr(i + 1, 2, f'{self.orig_highscore:04}') for s, snake in enumerate(self.snakes): self.win.addstr(i + 1, j - 6 - 5 * s, f'{snake.len() - 1:04}', snake.color) self.win.refresh() @@ -368,12 +368,14 @@ class GameArea: self.game_over() if snake.turbo: snake.turbo -= 1 - if any(snake.turbo for snake in self.snakes): + if self.score() > self.highscore: + self.highscore = self.score() + self.write_highscore() + if self.frame % 2 == 1 and not all(snake.turbo for snake in self.snakes): self.decay_fruit() - elif self.frame % 2 == 0: - return - if self.random.uniform(0, 1) < 0.05: - self.add_fruit() + if self.frame % 2 == 1 or any(snake.turbo for snake in self.snakes): + if self.random.uniform(0, 1) < 0.05: + self.add_fruit() def __str__(self) -> str: return '\n'.join(''.join(str(tile) for tile in row) for row in self.tiles) @@ -409,7 +411,11 @@ if __name__ == '__main__': while True: win = setup(args.players) - gamearea = GameArea(win=win, highscore_file=os.path.expanduser('~/.local/snake/highscore'), players=args.players, border=args.border) + if args.border: + highscore_file = os.path.expanduser('~/.local/snake/highscore') + else: + highscore_file = os.path.expanduser('~/.local/snake/highscore.noborder') + gamearea = GameArea(win=win, highscore_file=highscore_file, players=args.players, border=args.border) try: while True: gamearea.paint()