Rozdział 19 · Projekt: „Wąż”
Kontrola kolizji
Gra kończy się, gdy zderzysz się ze ścianą lub własnym ogonem.
Gra kończy się przy jednym z dwóch kolizji: ze ścianą pola lub z własnym ciałem.
stolknoveniya.py
def proverit_stolknoveniya():
global igra_okonchena
# zderzenie ze ścianą
if abs(golova.xcor()) > GRANICA or abs(golova.ycor()) > GRANICA:
igra_okonchena = True
# zderzenie z własnym ciałem
for segment in segmenty:
if segment.distance(golova) < RAZMER_SHAGA / 2:
igra_okonchena = True
abs() ponownie oszczędza kod
abs(golova.xcor()) > GRANICA sprawdza obie ściany (lewą i prawą) jednocześnie jednym porównaniem — zamiast golova.xcor() > GRANICA or golova.xcor() < -GRANICA. Sama wbudowana funkcja abs() jest znany z sekcji 5.4 — tutaj po raz pierwszy działa nie jako „moduł liczby”
★★ Zadanie samodzielne
Przyspieszenie gry
Zwiększ prędkość ruchu (zmniejszaj opóźnienia między krokami) o każde 50 punktów – gra stopniowo stanie się trudniejsza.
Praktyka: Kolizje
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie