'Poganianie żółwika w Python - p.1' 2025/09/08 z.5

'Poganianie żółwika w Python - p.1' 2025/09/08 z.5
Photo by Meg von Haartman / Unsplash

Moduł turtle pozwala na kontrolowanie "żółwia", który porusza się po płaszczyźnie okienka, rysując zadaną ścieżkę.

🐢Zadania

Wyzwanie polegało na tym, aby za pomocą modułu Turtle odwzorować trzy zadane kształty (słupki, krzyżyk oraz zestaw kwadratów).

SŁUPKI 📶

  1. Opis zadania: Zadanie polegało na narysowaniu "wykresu słupkowego", który składa się z czterech prostokątów o rosnącej wysokości. Każdy prostokąt miał stałą szerokość, ale jego wysokość była stopniowo zwiększana o wysokość pierwszego słupka.
  2. Podejście do rozwiązania: Rozwiązanie polega na zdefiniowaniu funkcji, która narysuje pojedynczy słupek. Wewnątrz funkcji , żółw rysuje prostokąt, przesuwając się w przód, obracając o 90 stopni, rysując bok, i tak dalej, aż zamknie figurę. Główna część programu będzie używać pętli for, aby narysować cztery słupki. W każdej iteracji pętli skorzystamy z podanego zakresu (1,5) i rosnącej zmiennej i , aby wysokość słupka rosła w każdej kolejnej iteracji. Podstawa słupka jest stała dla wszystkich słupków i określiłam ją jako zmienną o nazwie `baza (w poniższym przykładzie ma wartość 100). Należy pamiętać, aby po narysowaniu każdego słupka, przesunąć żółwia w prawo, aby następny słupek był narysowany obok poprzedniego.
import turtle

zolwik = turtle.Turtle() #tworzy obiekt rysującego zolwia pod zmienna zolwik
zolwik.speed(1) #szybkosc żółwika 
zolwik.shape("turtle") #uzywa metody shape do ustawienia wygladu kursora (zolwik)
zolwik.pensize(5) #pogrubia "ślad" żółwika


baza = 100

for i in range (1,5):
    for _ in range(2):
        zolwik.forward(baza)
        zolwik.left(90)
        zolwik.forward(i*(baza))
        zolwik.left(90)
    zolwik.forward(baza)    


turtle.exitonclick() #nie zamyka okna na koniec pracy zolwika bez kliknięcia w okno
  1. Efekt:

Zadanie ze słupkami zajęło mi najwięcej czasu (więcej niż krzyżyk i kwadraty łącznie) 😅.

Krzyżyk ➕

  1. Opis zadania: Zadanie polegało na narysowaniu "krzyżyka", który jest de facto obrysem pięciu identycznych sześcianów ułożonych na kształt plusa.
  2. Podejście do rozwiązania: Aby narysować krzyżyk w Pythonie przy użyciu modułu turtle, należy zaprogramować "żółwika" tak, aby poruszał się po ścieżce, która tworzy kształt krzyża. Musi on wykonywać ruchy proste (forward) i skręty pod kątem 90 stopni, aby odtworzyć wszystkie boki figury. Aby uzyskać ten efekt poleciłam żółwikowi za pomocą pętli, aby narysował "niepełny" kwadrat (bez jednego boku), obrócił się o 180 stopni, a następnie powtórzył tą czynność 3 razy (druga pętla).
import turtle

zolwik = turtle.Turtle() 
zolwik.speed(1) 
zolwik.shape("turtle") 
zolwik.pensize(5) 

for _ in range(4):
    for _ in range(3):
        zolwik.forward(100)
        zolwik.left(90)
    zolwik.right(180)


turtle.exitonclick()
  1. Efekt:

Kwadraty 🔳

  1. Opis zadania: Zadanie polega na narysowaniu z użyciem modułu Turtle figury złożonej z 8 kwadratów, które są ułożone jeden w drugim. Każdy kolejny kwadrat jest większy od poprzedniego.
  2. Podejście: Zadanie rozwiązałam, rysując każdy kwadrat po kolei z użyciem dwóch pętli for. W każdej iteracji pętla nakazuje żółwikowi aby narysować kolejny kwadrat, a następnie przygotowywać żółwia do narysowania następnego . Długość boku każdego kolejnego kwadratu rośnie z każdą iteracją i przyrost ten jest zdefiniowany za pomocą stałej odstep.
import turtle

zolwik = turtle.Turtle() 
zolwik.speed(1) 
zolwik.shape("turtle") 
zolwik.pensize(5) 


baza = 100
liczba_kwadratow = 8
odstep = baza/4

for i in range (liczba_kwadratow):
    for _ in range(4):
        zolwik.forward(baza+(odstep*i))
        zolwik.left(90)  


turtle.exitonclick()
  1. Efekt: