Rozdział 7 · Głębokie zanurzenie w Turtle
Wiele żółwi
Jeden ekran może pomieścić dowolną liczbę żółwi, a każdy będzie miał swój własny, całkowicie niezależny stan.
Stworzyliśmy jednego żółwia do całego scenariusza. Ale nic nie stoi na przeszkodzie, by stworzyć kilka naraz — Każdy będzie miał własny, całkowicie niezależny państwo.
Jeden ekran, różne żółwie
dve_cherepashki.py
import turtle
screen = turtle.Screen()
screen.setup(width=420, height=320)
alice = turtle.Turtle()
alice.color("#5B24F9")
alice.shape("turtle")
alice.penup()
alice.goto(-100, -80)
alice.pendown()
alice.setheading(70)
alice.forward(140)
bob = turtle.Turtle()
bob.color("#DB2777")
bob.shape("turtle")
bob.penup()
bob.goto(100, -80)
bob.pendown()
bob.setheading(110)
bob.forward(140)
screen.exitonclick()
Rezultat
dve_cherepashki_kod.py
alice = turtle.Turtle()
alice.color("#5B24F9")
alice.penup(); alice.goto(-100, -80); alice.pendown()
alice.setheading(70)
alice.forward(140)
bob = turtle.Turtle()
bob.color("#DB2777")
bob.penup(); bob.goto(100, -80); bob.pendown()
bob.setheading(110)
bob.forward(140)
SCREEN
├── alice
│ ├ position
│ ├ heading
│ └ color
│
└── bob
├ position
├ heading
└ color
├── alice
│ ├ position
│ ├ heading
│ └ color
│
└── bob
├ position
├ heading
└ color
Twój własny stan oznacza niezależne zachowanie
Zmiana kursu lub koloru
alice NIE ma wpływu bob istnieją na tym samym ekranie, ale żyją całkowicie osobno. To jest istota tego, co turtle.Turtle() nie jest tylko funkcją, lecz fabryką niezależnych obiektów.sravnenie_sostoyaniya.py
print(alice.position(), alice.heading())
print(bob.position(), bob.heading())
Nazwa tego jest przed nami
Później, w rozdziale o programowaniu obiektowym, nadamy temu zjawisku formalną nazwę i przeanalizujemy je znacznie głębiej. Na razie wystarczy samo obserwacje: każdy
Turtle() jest odrębnym, niezależnym obiektem o własnym stanie.Praktyka: Wiele żółwi
Moduł turtle otwiera natywne okno Python – uruchamiane lokalnie w VS Code, PyCharm lub Jupyter
Praktyka kursuje lokalnie