Nasz pierwszy program z żółwiem

Napiszmy kilka linijek kodu Pythona w celu utworzenia nowego żółwia (ang. turtle) i narysowania łatwej figury geometrycznej jak prostokąt. Będziemy odwoływać się do naszego pierwszego żółwia poprzez zmienną o nazwie alex, ale pamiętaj, że można zastosować dowolną inną nazwę pod warunkiem trzymania się reguł nazywania z poprzedniego rozdziału.

Program, który widzimy, rysuje tylko 2 boki prostokąta. Po dojciu do czwartej linijki kodu mamy linię prostą biegnącą ze środka rysunku w prawo. Po wykonaniu szóstej linijki kodu będziemy widzieli żółwia i narysowaną połowę prostokąta. Naciśnij przycisk „RUN”, aby wypróbować program.




(ch03_1)

Poniżej omówimy kilka rzeczy niezbędnych do zrozumienia programu.

Pierwsza linijka powoduje załadowanie przez Python modułu o nazwie turtle. Moduł ten pozwala użyć dwóch nowych typów : Turtle i Screen. Zapis kropkowy turtle.Turtle znaczy „typ Turtle zdefinowany w module turtle”. (Pamiętaj, że w Pythonie rozróżnia się w nazwach małe i duże litery, wobec czego nazwa modułu turtle, rozpoczynająca się małą literą i nazwa typu Turtle, rozpoczynająca się dużą literą to dla Pythona nazwy dwóch różnych obiektów).

Tak więc tworzymy i otwieramy coś, co w module turtle nazywa się ekranem (wolimy, aby nazywać to oknem lub w przypadku tej internetowej wersji Pythona po prostu kartką), i przypisujemy do zmiennej wn. Każde okno zawiera kartkę (canvas), która stanowi obszar wewnątrz okna, na którym można rysować.

W trzeciej linijce programu tworzymy żółwia. Zmienna alex pozwala się odwoływać do utworzonego żółwia. Trzy pierwsze linijki stanowią przygotowanie pozwalające rysować.

W linijkach 4-6 przemieszczamy i obracamy obiekt alex. Dokonujemy tego poprzez odwołanie się do metod, czy też aktywację metod - czyli instrukcji zrozumiałych dla wszystkich żółwi.

Dokończ rysowanie prostokąta …

Zmodyfikuj program, dodając odpowiednie komendy, tak, aby alex dokończył rysowanie prostokąta.

Sprawdź swoją wiedzę

turtle-2-1: Which direction does the Turtle face when it is created?





Programy z pomieszanymi linijkami

turtle-2-2: The following program uses a turtle to draw a capital L as shown in the picture to the left of this text, but the lines are mixed up. The program should do all necessary set-up: import the turtle module, get the window to draw on, and create the turtle. Remember that the turtle starts off facing east when it is created. The turtle should turn to face south and draw a line that is 150 pixels long and then turn to face east and draw a line that is 75 pixels long. We have added a compass to the picture to indicate the directions north, south, west, and east.

Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.



turtle-2-3: The following program uses a turtle to draw a checkmark as shown to the left, but the lines are mixed up. The program should do all necessary set-up: import the turtle module, get the window to draw on, and create the turtle. The turtle should turn to face southeast, draw a line that is 75 pixels long, then turn to face northeast, and draw a line that is 150 pixels long. We have added a compass to the picture to indicate the directions north, south, west, and east. Northeast is between north and east. Southeast is between south and east.

Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.



turtle-2-4: The following program uses a turtle to draw a single line to the west as shown to the left, but the program lines are mixed up. The program should do all necessary set-up: import the turtle module, get the window to draw on, and create the turtle. The turtle should then turn to face west and draw a line that is 75 pixels long.

Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.



Obiekt w Pythonie może mieć różne metody — czyli rzeczy, które umie zrobić — i dodatkowo może mieć również atrybuty — (czasami nazywane właściwościami). Na przykład każdy żółw posiada atrybut color (kolor). Wywołanie metody alex.color(„red”) sprawi, że żółw o nazwie alex stanie się czerwony (red) oraz linie rysowane przez niego również będą czerwone.

Kolor żółwia, szerokość rysowanej linii (szerokość ogona), położenie żółwia na ekranie, kierunek, w którym jest ustawiony i inne są elementami jego aktualnego stanu (state). Podobnie, obiekt window (okno) ma kolor tła, który jest częścią jego stanu.

Obiekty turtle i window można modyfikować za pomocą wielu dostępnych metod. W przykładzie poniżej omówimy tylko niektóre z nich i to takie, któe nie wystąpiły w poprzednim przykładzie. Zauważ również, że zdecydowaliśmy wypróbować te metody na obiekcie żółwia o nazwie tess.




(ch03_2)

Ostatnia linia jest bardzo ważna. Zmienna wn określa okno pokazane powyżej. Kiedy wywołujemy dla tego okna metodę exitonclick, wykonanie programu zostaje zatrzymane do chwili kliknięcia myszą przez użytkownika gdzieś w obszarze okna. Kiedy nastąpi kliknięcie, następuje zamknięcie okna żółwia i wyjście (zakończenie wykonywania) programu w języku Python.

Za każdym razem, kiedy uruchamiamy ten program, pojawia się nowe okno rysowania i jest widoczne na ekranie do momentu kliknięcia w nie myszą.

Rozbuduj ten program …

  1. Zmodyfikuj ten program tak, aby przed utworzeniem okna poprosił użytkownika o podanie koloru jego tła. Wybór użytkownika powinien być zapisany w odpowiedniej zmiennej i następnie kolor tła okna powinien być ustawiony zgodnie z wartością tej zmiennej i wyborem użytkownika. (Wskazówka: listę dostępnych nazw kolorów można znaleźć na stronie http://www.w3schools.com/html/html_colornames.asp. Oprócz tradycyjnych lista zawiera niezwykłe kolory np. „PeachPuff” (brzoskwinowo-ptysiowy) lub „HotPink” (gorący róż).)
  2. W podobny sposób wprowadź zmiany, pozwalające użytownikowi, podczas działania programu, ustawić kolor tess.
  3. Wprowadź zmiany, aby możliwa była modyfikacja szerokości linii rysowanej przez żółwia. Wskazówka: dialog z użytkownikiem prowadzi do uzyskania łańcucha tekstowego określającego szerokość linii, ale metoda tess umożliwiająca zmianę szerokości rysowanej linii, czyli pensize wymaga jako argumentu liczby całkowiej (int). Oznacza to konieczność konwersji łańcucha tekstowego podanego przez użytkownika na liczbę całkowitą (int), zanim zostanie przekazana do atrybutu pensize.

Sprawdź swoją wiedzę

turtle-2-5: Consider the following code:

import turtle
wn = turtle.Screen()
alex = turtle.Turtle()
alex.forward(150)
alex.left(90)
alex.forward(75)

What does the line „import turtle” do?






turtle-2-6: Why do we type turtle.Turtle() to get a new Turtle object?




turtle-2-7: True or False: A Turtle object can have any name that follows the naming rules from Chapter 2.



turtle-2-8: Which of the following code would produce the following image?

long line to north with shorter line to west on top






Programy z pomieszanymi linijkami

turtle-2-9: The following program uses a turtle to draw a capital L in white on a blue background as shown to the left, but the lines are mixed up. The program should do all necessary set-up and create the turtle and set the pen size to 10. The turtle should then turn to face south, draw a line that is 150 pixels long, turn to face east, and draw a line that is 75 pixels long. Finally, set the window to close when the user clicks in it.

Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.



turtle-2-10: The following program uses a turtle to draw a capital T in white on a green background as shown to the left, but the lines are mixed up. The program should do all necessary set-up, create the turtle, and set the pen size to 10. After that the turtle should turn to face north, draw a line that is 150 pixels long, turn to face west, and draw a line that is 50 pixels long. Next, the turtle should turn 180 degrees and draw a line that is 100 pixels long. Finally, set the window to close when the user clicks in it.

Drag the blocks of statements from the left column to the right column and put them in the right order. Then click on Check Me to see if you are right. You will be told if any of the lines are in the wrong order.



Następna część - Instancje (wystąpienia) — stado żółwii