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łowyis_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ą
Otwórz praktykę →