fix ordering and key press
authorGeoffrey Allott <geoffrey@allott.email>
Sun, 25 Dec 2022 20:12:16 +0000 (20:12 +0000)
committerGeoffrey Allott <geoffrey@allott.email>
Sun, 25 Dec 2022 20:12:16 +0000 (20:12 +0000)
snake.py

index bdad650f5a6e90c5c2502c0dfb44889121bbcd1f..7d70dde4f0912d554f45fdac4b6d353382ea89c4 100644 (file)
--- a/snake.py
+++ b/snake.py
@@ -108,8 +108,6 @@ class Snake:
     def set_dir(self, dir):
         if self.prev_dir == dir.opposite():
             curses.beep()
-        elif self.dir != self.prev_dir:
-            pass
         else:
             self.dir = dir
 
@@ -192,8 +190,8 @@ class GameArea:
         player_layout = {
             1: [0],
             2: [1, 0],
-            3: [1, 2, 0],
-            4: [1, 3, 2, 0],
+            3: [2, 0, 1],
+            4: [3, 0, 2, 1],
         }[players]
         self.snakes = [
             Snake(
@@ -227,7 +225,8 @@ class GameArea:
             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, j - 1 - 5 * len(self.snakes), ' '.join(f'{snake.len() - 1:04}' for snake in self.snakes))
+        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()
     
     def getch(self):