Rozdział 19 · Zasady gry
Zderzenie ze ścianą
GRANICA jest granicą współrzędnej środka głowy, a nie rozmiarem okna; ramka jest uwzględniona w obszarze prawnym.
Granica — współrzędna środka segmentu, a nie krawędzi ekranu
GRANICA = 280 — to nie jest rozmiar okna (600×600), a limit dla
współrzędnej centrum głowy. O grubości segmentu 20 px, głowica ze środkiem
przy dokładnie 280 stopień nadal mieści się całkowicie na polu widzialnym; przy 300 stopniach już przekracza
region.
is_wall_collision.py
def is_wall_collision(head, *, half=280):
x, y = head
return abs(x) > half or abs(y) > half
| Pozycja Głowy | is_wall_collision() |
|---|---|
| (280, 0) | False jest granica prawna |
| (-280, -280) | False — legalna granica, róg pola |
| (300, 0) | True — już poza granicami |
Ścisłe porównanie (>), nie (>=) - uwzględnione granice
Gdyby weryfikacja używała
>=, sytuacja prawna 280 już byłoby uznane za kolizję – wąż nie byłby w stanie przejechać na sam skraj pola. Rozdział 19.30 bada te przypadki graniczne jako osobne testy, a nie tylko słowami.Praktyka: Granica boiska
Automatyczna weryfikacja – is_wall_collision() funkcja na granicy i poza nią