marca 28, 2023

Kartka urodzinowa zaprogramowana w Pythonie

W klasach ósmych wprowadzam język programowania Python. Zaczynamy od podstawowych poleceń i konstrukcji (pętle, instrukcja warunkowa). Staram się krok po kroku wprowadzać uczniów w temat, zaznajamiając ich ze składnią nowego języka. Dostrzegają analogie do stosowanych wcześniej języków graficznych - na przykład do Scratcha. Nie ukrywam jednak, że dla niektórych z nich to zupełna abstrakcja.

Dlatego chcąc nico "osłodzić" lekcje z Pythonem, wprowadzam ich w bibliotekę Turtle. I tutaj następuje jakiś cud, bo to co tworzą w zadaniu podsumowującym jest po prostu niesamowite. Nawet Ci, którzy marudzili tworząc kod dotyczący działań na liczbach, przy bibliotece Turtle nie mają żadnych uwag.

Daję im do ręki ściągę z podstawowymi poleceniami i działamy.

Zaczynamy od dwóch linijek kodu, a ostatecznie kończą czasem na kilkudziesięciu. 

Dokładnie omawiam z nimi funkcję pozwalającą narysować dowolny wielokąt foremny, a później zapętlamy i powstają piękne, kolorowe rozety.


W powyższej funkcji zmienna ile oznacza ilość boków wielokąta, a zmienna bok, ich długość. Dzięki takiej konstrukcji , możemy rysować dowolne wielokąty o dowolnej długości boku. Wywołanie funkcji wiel(6,60) oznacza, że powstanie sześciokąt o boku 60.


Po ustawieniu grubości pisaka na 5 i jego koloru na czerwony, uruchomiona zostaje pętla, w wyniku działania której powstaje rozeta zbudowana z 12 sześciokątów.

Wystarczy, że ponownie powtórzymy pętlę, tyle że ze zmienioną długością boku sześciokąta, a powstanie druga, mniejsza rozeta, Jeśli uprzednio zmienimy też kolor pisaka, powstanie dość atrakcyjna konstrukcja. 

Dla skrócenia kodu, można utworzyć funkcję rysującą dowolną rozetę. Moja funkcja ma trzy zmienne. Dwie pierwsze dotyczą wielokąta, trzecia zaś z_ilu oznacza z ilu wielokątów zbudowana zostanie rozeta. Wywołując funkcję rozeta musimy podać ilość boków wielokąta (ile), długość jego boku (bok) i z ilu wielokątów powstanie rozeta (z_ilu)


Jeśli chcielibyśmy stworzyć więcej rozet, potrzebujemy przemieścić pisak w inne miejsce. Aby to zrobić musimy podnieść pisać (penup()), następnie przenieść go w inne miejsce (goto(x,y)), opuścić na powrót pisać (pendown()), a następnie ponownie wywołać funkcję rozeta i wybranymi parametrami.



Jeśli chcemy dodać napis w wybranej lokalizacji, oczywiście uprzednio musimy tam przenieść pisak, a następnie korzystając z polecenia turtle.write(), zamieścić stosowny tekst.


Przykładowy efekt końcowy:


Tegoroczne prace moich uczniów:









Zestaw podstawowych poleceń biblioteki Turtle:

Polecenie

Działanie

turtle.forward(x)

Do przodu o x

turtle.backward(x)

Do tyłu o x

turtle.left(x)

Obrót w lewo o x stopni

turtle.right(x)

Obrót w prawo o x stopni

turtle.goto(x,y)

Skok do miejsca o współrzędnych x,y

turtle.width(x)

Grubość pisaka

turtle.pencolor(x)

Kolor pisaka

turtle.penup()

Podnoszenie pisaka

turtle.pendown()

Opuszczanie pisaka

turtle.bgcolor()

Kolor tła

turtle.circle(x)

Koło o promieniu x

turtle.reset()

Czyszczenie ekranu i ustawia pióro na środku

turtle.clear()

Czyszczenie ekranu

turtle.write(„tekst”, font=(„Arial”, „30”, „bold”))

Napis o określonych parametrach

turtle.begin_fill() /turtle.end_fill()

Wypełnianie figury kolorem

turtle.speed(x)

Przyspiesza rysowanie (x=0 – najszybciej)


Brak komentarzy:

Zachęcam do komentowania i dzielenia się spostrzeżeniami i opiniami na temat mojego bloga i tematyki postów.