Turtle

Kurs Pythona dla początkujących


Wróć do strony głównej

https://docs.python.org/3/library/turtle.html

Moduł Turtle

Aby usprawnić naukę programowania, możemy dodać do naszych programów elementy tworzenia grafiki, ruchu i animacji. Uproszczony interfejs graficzny przeznaczony do nauki programowania oferuje moduł Turtle - wzorowany na języku logo z lat 80. Pozwala on na stworzenie okna graficznego z wirtualną ikoną “żółwia”, a następnie poruszanie tym “żółwiem”. Poruszający się żółw pozostawia za sobą linię, co pozwala rysować kształty geometryczne.

Aby użyć modułu turtle musimy go zaimportować komendą import, a następnie każde polecenie powiązane z tą biblioteką musimy zaczynać od turtle. Podstawowe komendy służące do poruszania się po ekranie to:

  • forward(); fd() / backward(); bk() - porusza się naprzód lub do tyłu o określoną liczbę kroków
  • left(); lt() / right(); rt() - obraca się w lewo lub w prawo o określony kąt w stopniach

Program rysujący kąt prosty. Polecenie turtle.done() jest niezbędne aby program nie wyłączył się sam po zakończeniu rysowania.

import turtle

turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.done()

Mamy dodatkowo do dyspozycji narzędzia do manipulacji stylem rysowania:

  • penup(); up() / pendown(); down() - podniesienie lub opuszczenie pióra (po podniesieniu pióra żółw porusza się, ale nie rysuje linii)
  • pencolor() - ustawia kolor pióra na podany. Aby ustawić kolor należy wpisać jego nazwę, np. "red", "yellow", "blue" itp. lub kod hex.
  • speed() - ustawia prędkość żółwia, dostępne wartości to "fastest", "fast", "normal", "slow", "slowest". Tryb "fastest" oznacza że ruch jest natychmiastowy.

Ponadto możemy wypełnić kształt kolorem, posługując się metodą begin_fill() i end_fill().

Pętla

Pętla pozwala wykonać jedno polecenie wiele razy. Wykonuje ona polecenia tak długo, dopóki jest spełniony warunek podany w poleceniu.

i = 0
while i < 3:
    turtle.forward(100)
    turtle.right(60)
    i += 1

Szczególnym przypadkiem jest nieskończona pętla while, tworzona z warunku który jest zawsze prawdziwy (np. True). Każdą pętlę możemy przerwać instrukcją break:

while True:
    decyzja = input("Czy chcesz zakończyć program?/n")
    if decyzja == "Tak" or decyzja == "tak":
        break

Test:

Co narysuja na ekranie poniższe programy, o ile nie zatrzymają się z powodu błędu? Czy pętla jest skonsrtuowana prawidłowo?

import turtle

answer = int(input("Ile kółek narysować?\n"))
x = 0
while answer >= x:
    turtle.circle(20)
    turtle.fd(40)
    x = x - 1

turtle.done()
import turtle

turtle.speed("fast")
while True:
    turtle.forward(400)
    turtle.left(175)
    if abs(turtle.pos()) < 1:
        break

turtle.done()

Ćwiczenia:

  1. Stwórz program który narysuje kwadrat, zwyczajnie i przy użyciu pętli.
  2. Stwórz program który narysuje inne kształty (np. sześciokąt, ośmiokąt itp.).
  3. Stwórz program który pozwoli użytkownikowi wybrać jaki kształt ma zostać narysowany.
  4. Stwórz przy pomocy modułu turtle nieskończoną spiralę wychodzącą ze środka ekranu online
  5. Narysuj gwiazdę wypełniona na niebiesko online
  6. Wspólnie stwórzmy rysunek za pomocą turtle codeshare
  7. Stwórz program który narysuje dany kształt kilkukrotnie, tworząc np. wzór z gwiazdek

Projekt

Za pomoca modułu Turtle możemy narysować mapę na której gracz zobaczy swoje położenie.

  1. Narysuj za pomocą niewidzialnego żółwia mapę złożoną z kwadratowej siatki.
  2. Za pomoca poleceń turtle.write() umieść na mapie napisy, np. “Las”, “Jaskinia”, “Zamek” itp.
  3. Ustaw “żółwia” na pozycji z której będzie zaczynał gracz.