Strona główna » Poradniki » Logomocja » Python i Żółw » Wiele Żółwi
 

Wiele Żółwi

· część 1 ·

Wstęp

Na ekranie można sterować więcej niż jednym żółwiem. Polecenia można wydawać każdemu z nich oddzielnie, albo wszystkim równocześnie. W artykule zostanie przedstawione jak sterować wieloma żółwiami.

Wiele żółwi

Na samym początku kursu zostało przedstawione jak zadeklarować żółwia. Powołanie żółwia w rzeczywistości tworzyło obiekt żółwia. Oznacza to, że można utworzyć wiele żółwi (tj. obiektów), a następnie każdemu z nich wydawać takie same koemndy jak jest tylko jeden. Poniżej została przedstawiona deklaracja żółwia i żółwika:

  1. żółw = turtle.Turtle()
  2. żółwik = turtle.Turtle()

W tym momencie na ekranie znajdują się dwa żółwie. Oba są jednak w domyślnej pozycji wyjściowej, więc jeden stoi na drugim. Zmieńmy, więc wielkość żółwia dwukrotnie, ustalmy jego pisak na niebieski, a następnie wydajmy mu polecenie obrotu:

  1. żółw.turtlesize(2)
  2. żółw.pencolor("blue")
  3. żółw.right(180)

Odwołując się do konkrentego żółwia jak w linijce (5.) wydajemy polecenie obrotu tylko i wyłącznie jemu. Żółwik nie wykonuje żadnej akcji. Przypuśćmy, że chcemy, aby każdy z żółwi wykonał ten sam zestaw poleceń. Zadanie sprowadza się do napisania tego samego kodu dwa razy, ale za pierwszym polecenie musimy wydawać żółwiowi, a drugi raz żółwikowi.

W tym miejscu warto poznać (lub przypomnieć sobie) pętle for. Pętla ta pozwala na wykonanie zestawu poleceń dla wszystkich danych z listy. Listę wszystkich żółwi na ekranie można uzyskać odwołując się do biblioteki turtle, a następnie wybierając metodę turtles(). Przykładowo, aby w tym momencie wydać wszystkim żółwiom na ekranie polecenie pójścia do przodu należy napisać następującą pętle for:

  1. for t in turtle.turtles():
  2.   t.fd(100)

Po wykonaniu wszystkich poleceń na ekranie użytkownika powstanie następujący rysunek:

Narysowany rysunek

Dla przypomnienia niebieska kreska została narysowana przez żółwia, a czarna przez żółwika. W pętli do żadnego żółwia nie potrzebowaliśmy odwoływać się poprzez obiekt żółw oraz żółwik.

Przykład

Zadanie polega na narysowaniu następującego obrazka:

Cel

Rozwiązanie

Zadanie można rozwiązać przy pomocy zaledwie jednego żółwia. Jednak rysunek składa się z dwóch identycznych części którymi są kwadraty. Spróbujmy rozwiązać zadanie przy pomocy dwóch żółwi! Na początku deklarujemy żółwia i żółwika, a następnie zmieniamy ustawienia żółwia. Wróćmy do rysunku. Tym razem obydwa żółwie muszą się obrócić, aby narysować ten obrazek. Przykładowo:

  1. żółw.right(135)
  2. żółwik.left(45)

Ważne jest, aby pamiętać, że żółw musi patrzeć na południowy-zachód, a żółwik na północny-wschód. Po ich odpowiednim ustawieniu można wywołać narysowania kwadratu dla każdego z żółwi znajdujących się na ekranie.

  1. for t in turtle.turtles():
  2.   t.fd(100)
  3.   t.right(90)
  4.   t.fd(100)
  5.   t.right(90)
  6.   t.fd(100)
  7.   t.right(90)
  8.   t.fd(100)
  9.   t.right(90)

Podsumowanie

Sterowanie wieloma żółwiami pozwala na uzyskanie wielu bardzo ciekawych efektów przy pisaniu małej ilości kodu. Do bardziej precyzyjnego wydawania poleceń kilku żółwiom warto zapoznać się z działaniami na listach co pozwoli na wybieranie tylko części żółwi.

Zadania

Zadanie 1

Używając wielu żółwi narysuj poniższy rysunek:

Rysunek do zadania 1

Zadanie 2

Poniższe zadanie ma podwyższony poziom trudności! Celem jest narysowanie poniższego rysunku używając do tego wielu żółwi. Kolejne trójkąty są rysowane o 10 mniejsze:

Rysunek do zadania 2