|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
SPIS TREŚCI |
Żółwie to roboty edukacyjne, które opracowano w końcu lat czterdziestych XX wieku i które są używane do nauki informatyki.

Urządzenia te są tradycyjnie budowane z niskim zawieszeniem ze skorupą w formie półkuli, która czasem jest przezroczysta, oraz z mocnym napędem umożliwiającym ostre skręty. Roboty te są często wyposażane w różne czujniki, aby wspomóż je przy unikaniu przeszkód, oraz przy bardziej skomplikowanych konstrukcjach czujniki te pozwalają takim robotom na orientowanie się w środowisku.
W latach 80-tych XX wieku w szkołach na informatyce był nauczany język Logo, w którym możliwe było sterowanie poruszaniem się robota-żółwia. Żółw posiadał opuszczany i podnoszony pisak, którym mógł rysować linie w trakcie wykonywania swoich ruchów. I tak powstała grafika żółwia (ang. turtle graphics).

W języku Python utworzono moduł o nazwie turtle (żółw), w którym znajdują się funkcje sterujące graficznym odpowiednikiem robota-żółwia. Moduł ten jest instalowany wraz z językiem Python. Aby uzyskać dostęp do funkcji modułu musimy go najpierw zaimportować. Można to zrobić na kilka sposobów, które krótko opiszemy (opis odnosi się do wszystkich modułów Pythona).
Na początku programu umieszczamy polecenie:
Od tego momentu dostęp do funkcji modułu następuje przez:
Uruchom środowisko IDLE. Zapisz program na dysku w przygotowanym wcześniej katalogu. Uruchom poniższy program:
W efekcie pojawi się okno graficzne, a w nim zobaczysz ślad zostawiony przez żółwia:

Strzałka na końcu linii symbolizuje żółwia.
Jeśli znudziło cię pisanie nazwy modułu przy każdej funkcji, to zmień polecenie importu następująco:
Od tego momentu dostęp do funkcji modułu będziesz miał poprzez t.nazwa_funkcji( ). Pozmieniaj odpowiednio program:
Jeśli jesteśmy pewni, że nazwy funkcji w module turtle nie wejdą w konflikt z nazwami innych funkcji w programie, to możemy jeszcze bardziej uprościć ich wywoływanie poprzez:
Gwiazdka * za import oznacza, iż należy zaimportować wszystko z modułu. Teraz funkcje modułu stają się bezpośrednio dostępne:
| Polecenie: | Dostęp do funkcji: |
| import nazwa | nazwa.funkcja(...) |
| import nazwa as skrót | skrót.funkcja(...) |
| from nazwa import * | funkcja(...) |
Zaimportuj moduł turtle poleceniem:
Kształt żółwia można zmieniać przy pomocy funkcji shape(...). Parametrem jest nazwa angielska kształtu:

Powrót do standardowego kształtu następuje po przesłaniu nazwy (jeśli nie zmieniałeś kształtu żółwia, to nie musisz tego umieszczać w swoim programie, bo taki kształt żółw przyjmuje standardowo):

| Argument | Kształt |
| "classic" | Standardowy:![]() |
| "turtle | Żółw:![]() |
| "arrow: | Strzałka:![]() |
| "cirle" | Koło:![]() |
| "square" | Kwadrat:![]() |
| "triangle" | Trójkąt:![]() |
Ruch żółwia wywołują funkcje:
Żółw porusza się w kierunku wskazywanym przez jego głowę na zadaną odległość. Jeśli ma opuszczony pisak, to rysuje ślad swojego ruchu. Niektóre funkcje posiadają nazwy skrócone: forward(...) → fd(...). Obie nazwy są tą samą funkcją. Parametr kroki może być liczbą ułamkową, czyli rzeczywistą. Wartość ujemna oznacza ruch do tyłu.
Żółw cofa się w kierunku przeciwnym do jego głowy na zadaną odległość. Jeśli ma opuszczony pisak, to rysuje ślad swojego ruchu. Parametr kroki może być liczbą ułamkową, czyli rzeczywistą. Wartość ujemna oznacza ruch do przodu.
Żółw obraca się o zadany kąt w lewo. Kąt jest w stopniach.
Żółw obraca się o zadany kąt w prawo. Kąt jest w stopniach.
Wpisz poniższy program:
Efektem wykonania stanie się kwadrat o boku 200 kroków żółwia:

Program składa się z 4 grup funkcji fd(200) i lt(90). Każda z nich rysuje jeden bok kwadratu, po czym nakierowuje żółwia na kierunek następnego boku. Zamiast wpisywać je 4 razy w program, utwórzmy pętlę o czterech obiegach:
Teraz utwórzmy funkcję rysującą kwadrat o zadanym boku i wypróbujmy jej działanie:
Otrzymasz wynik:

Można przyspieszyć szybkość pracy żółwia funkcją speed(...). Parametrem jest liczba od 1 (najwolniej) do 10 (najszybciej).
Utwórzmy pętlę wykonującą się 36 razy, w której znajdą się te cztery wywołania funkcji kw(...). Na końcu obróćmy żółwia o kąt 10°. W ten sposób żółw zacznie rysować kwadraty coraz bardziej obrócone:
Powstanie ładna rozetka:

Linia rysowana przez żółwia może mieć określoną grubość oraz kolor:
Ustawia grubość linii, funkcja występuje pod dwoma nazwami.
Funkcja ustawia kolor rysowanej linii. Kolor może być przekazywany w różny sposób, tutaj użyjemy tekstu z nazwą koloru. Nazw jest bardzo dużo, zatem najlepiej zajrzeć do dokumentacji. Oto kilka kolorów:
| Nazwa | Kolor |
| "black" | czarny |
| "white" | biały |
| "blue" | niebieski |
| "green" | zielony |
| "red" | czerwony |
| "yellow" | żółty |
| "gray" | szary |
| ... | ... |
Funkcje te wywołujemy przed rysowaniem linii, której grubość i kolor chcemy zmienić. Uruchom poniższy program:

W ramach ćwiczenia napisz funkcję tr(bok), która rysuje trójkąt równoboczny o zadanym boku i zastąp jej wywołaniami wywołania funkcji kw(bok). W kwadracie po narysowaniu boku żółw był obracany w lewo o 90 stopni. W trójkącie żółwia należy obracać o kąt 120 stopni (dlaczego?).
Fraktal jest słowem pochodzenia łacińskiego: fractus = cząstkowy. W grafice oznacza obiekt zbudowany z elementów, które są do niego podobne. Brzmi to skomplikowanie, zatem przyjrzyjmy się przykładowi. Utwórz program:
Program ten rysuje pewien fraktal. Na najniższym poziomie 0 składa się on tylko z prostego odcinka o długości 600 kroków żółwia:

Modyfikujemy program, aby utworzyć fraktal wyższego poziomu.
Na poziomie 1 fraktal zbudowany jest z czterech odcinków o długości równej 1/3 długości odcinka poziomu 0. Odcinki te są ze sobą połączone następująco:

Na poziomie 2 każdy odcinek zastępowany jest fraktalem poziomu 1.

Fraktal poziomu 3 zbudowany jest z fraktali poziomu 2 w podobny sposób, a te z kolei są zbudowane z fraktali poziomu 1...:

Proces może postępować dalej. Otrzymujesz coraz bardziej skomplikowaną figurę:



Procedurę rysowania fraktala możemy wykorzystać do innych figur. Oto trójkąt, którego boki są fraktalami:

A tutaj rozetka zbudowana na bazie powyższego fraktala:

A oto sławny trójkąt Sierpińskiego zbudowany z trójkątów:

![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.