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”
Prawdziwe okno: Głowa Snake'a na prawym krańcu ciemnego pola, wynik pozostaje taki sam
Prawdziwe okno: głowa wychodziła poza GRANICA – proverit_stolknoveniya() igra_okonchena trafiła do True.
★★ 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
Otwórz praktykę →