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()
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)
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()