Rozdział 19 · Zasady gry
Game Over jako państwo
Kolizja nie tylko zatrzymuje ruch, ale przenosi grę do osobnego stanu GAME_OVER.
Game Over — stan, a nie tylko napis na ekranie
Kiedy is_wall_collision() lub is_self_collision()
True odliczanie tyka nie tylko zatrzymuje ruch — on tłumaczy
state.status w GAME_OVER i rysuje
nakładkę na ostatniej klatce gry:
game_over.py
if is_wall_collision(head):
state.status = GameStatus.GAME_OVER
self.render()
self._show_overlay("GAME OVER", f"Ocena: {state.score} | R to nowa gra")
return
GAME_OVER nie wywołuje kolejnych ticków
game_tick() sprawdza się na samym początku if state.status is not RUNNING: return — GAME_OVER dociera tutaj w taki sam sposób jak PAUSED. Jedyny sposób, by znów się ruszyć, to restart() (rozdział 19.23), który wyraźnie tworzy nowy stan.GAME_OVER — to nie jest jedyny status terminalny: rozdział 19.18 pokazuje drugi, znacznie rzadszy przypadek — GameStatus.WON,
gdy wąż zajmuje dosłownie całe pole. Oba zatrzymują tiki w ten sam sposób,
różni się tylko powód i tekst nakładki.
Praktyka: przejście do GAME_OVER
Automatyczne sprawdzanie – funkcja, resolve_tick(): której kolizje zamieniają grę w GAME_OVER