Zgłoś uwagi
Pokaż spis treści
Wróć do informacji o e-podręczniku Udostępnij materiał

Wprowadzenie

W ramach projektu stworzysz grę polegającą na odbijaniu piłeczki. Wykorzystasz w tym celu edukacyjne środowisko programistyczne Scratch. Prawdopodobnie programowaliście w szkole podstawowej. Znasz więc podstawy sterowania komputerem przez wydawanie mu prostych poleceń - instrukcji, które powodują, że komputer wyświetli coś na ekranie, przesunie jakiś obiekt, wykona obliczenia lub powtórzy jakieś operacje wielokrotnie. Jeśli jednak niewiele pamiętasz lub nie znasz środowiska Scratch - nie martw się. Tworzenie gry będzie świetną okazją, aby przypomnieć sobie na czym to polega, a nawet poznać środowisko Scratch od podstaw. Jeśli dobrze znasz Scratcha, wówczas nie będą ci potrzebne umieszczone przy zadaniach podpowiedzi - szybko i bez problemu zaprogramujesz grę, a nawet uatrakcyjnisz uzupełniając o dodatkowe elementy.

Ćwiczenie 1

Skorzystaj z poniższej aplikacji, aby sprawdzić, czy wiesz, gdzie znajdują się poszczególne elementy środowiska Scratch oraz czy umiesz je nazwać. Odnajdź w aplikacji i przeczytaj opisy takich elementów, jak:

  • scena,

  • obszar wyboru i zarządzania duszkami,

  • obszar budowania skryptów,

  • zakładki Skrypty, Kostiumy, Dźwięki,

  • lista wyboru kategorii,

  • lista klocków (bloczków) dostępnych w wybranej kategorii,

  • obszar zarządzania sceną,

  • informacja o wybranym duszku i jego pozycji na scenie.

Opis środowiska Scratch

Scenariusz gry

Gra będzie polegała na poruszaniu przez dwóch graczy paletkami w taki sposób, by odbić poruszającą się na ekranie piłeczkę na stronę przeciwnika. Wygrywa gracz, który doprowadzi do sytuacji, w której przeciwnikowi nie uda się odbić piłeczki i minie ona jego paletkę. Obejrzyj poniższy film z przykładem działania gry.

Film: Działanie gry
Ćwiczenie 2

Zastanów się, jakie obiekty poruszają się na ekranie. Którymi z nich steruje komputer, czyli program? Na ruch których mają bezpośredni wpływ gracze?

Ćwiczenie 3

Zastanów się, w jaki sposób gracze mogą sterować swoimi paletkami? Jakie znasz sposoby kontrolowania ruchu w grach?

Ćwiczenie 4

Zastanów się, w przypadku projektowanej gry, gdy nie mamy do dyspozycji kontrolerów takich joystick lub pad, jaki sposób poruszania paletkami będzie sprawiedliwy dla obu graczy?

Ćwiczenie 5

Czas zaplanować wszystkie działania, jakie musi wykonywać komputer, by można było zagrać zgodnie ze scenariuszem. Możemy je podzielić na trzy główne kategorie: ustawienia początkowe, sterowanie grą oraz akcje - czyli wydarzenia lub sytuacje jakie mogą zajść w grze. Działania te trzeba będzie później zaprogramować - czyli zapisać w języku zrozumiałym dla komputera. Zastanów się i opisz tak szczegółowo, jak potrafisz, wszystkie działania z podziałem na wymienione kategorie.
Po spisaniu, sprawdź swoją odpowiedź z przykładowym rozwiązaniem. Uzupełnij brakujące elementy opisu.

Wskazówka

W ustawieniach początkowych należy przewidzieć stan, w jakim rozpocznie się gra. W przypadku projektowanej gry będzie to na przykład umiejscowienie paletek oraz piłki na scenie, jak również kierunek, w którym piłka zacznie się poruszać na początku rozgrywki. W kategorii sterowania musisz opisać, jakie klawisze zostaną przyporządkowane do odpowiedniego ruchu paletek. W kategorii zdarzenia - akcje mające wpływ na przebieg rozgrywki, sytuacje w których do nich dochodzi oraz skutek jaki wywołują - np. piłka dotyka paletki, piłka minęła paletkę.

Dysponujesz już dość szczegółowym scenariuszem gry. Zawiera większość elementów. Nie wszystkie są opisane w sposób, pozwalający na ich oprogramowanie, ale tym zajmiemy się podczas dalszej pracy. Czas zaprojektować elementy graficzne gry – paletki i piłeczkę.

Projektujemy duszki

W scenariuszu opisane zostały poszczególne elementy gry - postacie, pozycje startowe, zachodzące zdarzenia oraz sposób sterowania. Zacznij od zaprojektowania rysunków, czyli piłeczki oraz paletek. W środowisku Scratch, rolę bohaterów w programach pełnią duszki, które mogą poruszać się po scenie i przyjmować różny wygląd.

Ćwiczenie 6

Dodaj nowego duszka i zaprojektuj dla niego kostium - paletkę. Pamiętaj, żeby zaprojektować odpowiednią wielkość paletki. Zbyt duża spowoduje, że gra będzie bardzo łatwa, zbyt mała - utrudni znacząco grę. Na koniec upewnij się, że punkt zaczepienia duszka jest umiejscowiony na środku zaprojektowanego kostiumu. Po zakończeniu ustaw duszka na scenie na środku z lewej strony.

Wskazówka

W celu utworzenia nowego duszka i zaprojektowania dla niego kostiumu możesz wybrać w obszarze zarządzania duszkami ikonkę pędzelka lub skorzystać z zewnętrznego edytora grafiki.

Ikona pędzelka - jej kliknięcie tworzy nowego duszka i przechodzi w tryb projektowania dla niego kostiumu

W edytorze kostiumów upewnij się, że punkt zaczepienia jest ustawiony na środku kostiumu.

Ustawienie punktu zaczepienia na środku kostiumu duszka

Jeżeli zaprojektowany duszek jest zbyt duży lub zbyt mały, można zmienić jego wielkość za pomocą przycisków znajdujących się na pasku menu. Należy wybrać przycisk ze strzałeczkami skierowanymi do środka (zmniejsz) lub na zewnątrz (powiększ) a następnie kliknąć na scenie duszka, którego wielkość chcemy zmodyfikować.

Przyciski powiększania i pomniejszania rozmiaru duszków na scenie
Ćwiczenie 7

Usuń domyślnego duszka - kotka.

Wskazówka

W celu usunięcia duszka, kliknij go prawym klawiszem myszy, a następnie z menu wybierz opcję Usuń.

Ćwiczenie 8

Potrzebne będą dwie paletki, które powinny być identyczne co do wielkości, aby gracze mieli równe szanse. Powiel zaprojektowaną paletkę. Po zakończeniu ustaw duszka w środkowej części prawej strony sceny.

Wskazówka

W celu powielenia duszka, kliknij go prawym klawiszem myszy, a następnie z menu wybierz opcję Duplikuj.

Ćwiczenie 9

Dodaj nowego duszka - piłkę. Zamiast samodzielnie rysować, możesz dodać gotowego duszka z biblioteki.

Wskazówka

W celu dodania duszka z biblioteki skorzystaj z ikonki duszka w obszarze zarządzania.

Ćwiczenie 10

Nadaj duszkom nazwy - odpowiednio: lewa, prawa, piłka.

Wskazówka

W celu zmiany nazwy duszka, wybierz go w obszarze zarządzania duszkami, następnie kliknij symbol i.

Po wpisaniu nowej nazwy kliknij ikonę powrotu.

Projektujemy sterowanie paletkami

Żeby móc opracować zasady sterowania paletkami, przypomnij sobie, jak zorganizowany jest układ współrzędnych sceny. Punkt o współrzędnych (0,0) to środek sceny. Szerokość sceny wynosi 480 punktów, a wysokość 360 punktów. Duszek może więc zmieniać swoje współrzędne na scenie w zakresie od -240 do 240 na osi x, oraz od -180 do 180 na osi y.

Ćwiczenie 11

Zastanów się, jakie wartości współrzędnych xy powinny zostać ustalone odpowiednio dla lewej i prawej paletki po uruchomieniu gry?

Wskazówka

Dla obu paletek wartość współrzędnej y powinna zostać ustawiona na 0. Współrzędna x powinna zostać dobrana tak, by znajdowały się w tej samej odległości od bliższej sobie krawędzie sceny. Na przykład dla lewej paletki wartość x może zostać ustawiona na -220. Wówczas dla prawej powinna zostać ustawiona na 220. Wartość x powinna zostać dobrana w taki sposób, by paletki znajdowały się w pobliżu krawędzi sceny, ale jej nie dotykały.

Zgodnie ze scenariuszem gry, w momencie jej uruchomienia paletki powinny zostać umieszczone na pozycji startowej. Do uruchomienia gry można wykorzystać przycisk zielonej flagi. Przepis na wprowadzenie ustawień początkowych dla lewej paletki mógłby więc wyglądać następująco:

Kiedy kliknięto zieloną flagę:

  1. Przejdź na pozycję x: -220 i y: 0.

  2. Zatrzymaj ten skrypt.

Ćwiczenie 12

Wybierz w obszarze zarządzania duszkami lewą paletkę. Następnie zbuduj skrypt zgodnie z przepisem, przeciągając i łącząc odpowiednie klocki ze sobą w obszarze skryptów.

Wskazówka

Wykorzystaj klocki idź do x: … i y: … oraz zatrzymaj … .

Ćwiczenie 13

W obszarze zarządzania duszkami wybierz prawą paletkę i zbuduj dla niej analogiczny skrypt, który ustawi ją przy prawej krawędzi sceny na środku. Następnie przetestuj działanie skryptów - uruchom program klikając na zieloną flagę. Obie paletki powinny ustawić się naprzeciw siebie w środkowej części sceny.

Kolejne skrypty, które należy stworzyć, powinny graczom zapewnić możliwość sterowania paletkami. Każda paletka ma się poruszać w górę lub w dół o określoną liczbę punktów w wyniku naciśnięcia odpowiedniego klawisza - zgodnie z opracowanym scenariuszem gry. Zmianie będzie więc podlegała tylko wartość współrzędnej y danej paletki. Wartość x powinna być stała, ponieważ paletka nie będzie się poruszała w prawą ani lewą stronę. Przepis na ruch paletki może wyglądać następująco:

Kiedy naciśnięto klawisz …

  1. Zmień współrzędną y o … .

  2. Zatrzymaj ten skrypt.

Ćwiczenie 14

W obszarze zarządzania duszkami wybierz lewą paletkę. Zbuduj zgodnie z powyższym przepisem skrypt, który będzie ją przesuwał do góry po naciśnięciu klawisza A. Jeżeli w swoim scenariuszu masz przewidziane inne klawisze do sterowania paletkami niż uwzględnione w opisie, wykorzystaj je konsekwentnie podczas budowy skryptów.

Wskazówka

Wykorzystaj klocki kiedy klawisz … naciśnięty oraz zmień y o … . Zwróć uwagę, że w opcjach klocka może być ustawiony inny klawisz, niż ten, który chcesz. Zauważ również, że zmiana współrzędnej y o wartość dodatnią spowoduje ruch paletki do góry.

Ćwiczenie 15

Powiel stworzony skrypt obsługujący klawisz A. Następnie zmień klawisz, który ma aktywować skrypt, na Z. Zmodyfikuj wartość, o jaką powinna zmienić się współrzędna y, by paletka poruszyła się do dołu.

Wskazówka

W celu powielenia skryptu:

  • najedź na pierwszy klocek skryptu i wybierz go prawym klawiszem myszy,

  • z menu podręcznego wybierz opcję duplikuj,

  • przesuń skopiowany skrypt na pustą przestrzeń w obszarze skryptów,

  • kliknij w miejscu, gdzie chcesz upuścić skopiowany skrypt.

Ćwiczenie 16

Wypróbuj działanie skryptów. Wciśnij kilkukrotnie klawisz A, następnie Z. Czy lewa paletka porusza się odpowiednio do góry i do dołu? Czy twoim zdaniem dostatecznie szybko? Co należałoby zrobić, aby paletka poruszała się szybciej lub wolniej?

Ćwiczenie 17

Przygotuj odpowiednie skrypty, reagujące na wciśniecie klawiszy K oraz M dla drugiej paletki. Zamiast tworzyć je od początku, możesz skopiować skrypty, które zostały przygotowane dla lewej paletki, a następnie zmienić klawisze, na które mają reagować.

Wskazówka

W celu skopiowania skryptu między duszkami, należy wybrać dany skrypt i przeciągnąć go tak, by upuścić na drugim duszku w obszarze zarządzania. Po skopiowaniu skryptów, wystarczy wybrać drugiego duszka i zmodyfikować skopiowane skrypty.
UWAGA: Należy zachować ostrożność, żeby podczas kopiowania nie upuścić skryptu w przypadkowym miejscu - może to spowodować jego usunięcie. Żeby się zabezpieczyć, przed przeciągnięciem skryptu można go powielić, a po skopiowaniu, powielony skrypt usunąć.

Projektujemy działanie piłeczki

Gracze mogą już sterować paletkami. Czas zaprojektować skrypty dla piłki. W scenariuszu zostały dla niej zaplanowane następujące ustawienia początkowe:

  • Piłka zostaje umieszczona na środku ekranu i zaczyna poruszać się w losowym kierunku.

Ćwiczenie 18

Umiesz już poruszać duszka. Zastanów się, jak powinien wyglądać przepis działania piłeczki, który:

  • uwzględni ustawienia początkowe,

  • spowoduje ciągłe poruszanie się piłeczki.

Zapisz go. Następnie porównaj z przykładowym rozwiązaniem zamieszczonym w odpowiedzi.

Wskazówka

Zwróć uwagę, że piłka powinna poruszać się cały czas. Do powtarzania pewnych poleceń w programowaniu wykorzystuje się instrukcje zwane pętlą. W tym przypadku najlepiej będzie użyć klocka zawsze.

Ćwiczenie 19

Wybierz duszka - piłkę, a następnie stwórz dla niego skrypt zgodnie z opracowanym w poprzednim zadaniu przepisem. Następnie przetestuj działanie skryptu.

Wskazówka

Znajdź dwa klocki. Pierwszy, który daje możliwość ustawienia kierunku ruchu dla duszka. Drugi, który pozwala wylosować wartość z podanego przedziału liczb. Oba przeciągnij do obszaru skryptów. Następnie zastanów się nad następującymi kwestiami:

  • W jaki sposób można klocki połączyć ze sobą, żeby kierunek ruchu był losowany?

  • Jak należy ustawić zakres losowania, żeby piłka po uruchomieniu programu miała przypadkowy kierunek ruchu?

Czy piłeczka za każdym razem po uruchomieniu porusza się w innym, losowym kierunku? Czy porusza się cały czas? Jeśli dojdzie do krawędzi sceny, chwyć ją myszką, odsuń ją od brzegu i puść ponownie. Czy piłeczka dalej się porusza?

Ważne!

Zauważ, że losowanie kierunku z zakresu od 0 do 360 stopni może spowodować wylosowanie wartości powodujących poruszanie się piłki pionowo w górę lub w dół - wówczas piłka nigdy nie dotrze do paletki. Jeśli tak się zdarzy, rozpocznij grę od początku. W dalszej części projektu zajmiesz się rozwiązaniem tego problemu.

Pozostało stworzenie skryptów, które obsłużą zaplanowane akcje - zdarzenia mogące zajść w grze. Zwróć uwagę, że wszystkie zaplanowane akcje dotyczą piłki:

  • Piłka dotyka krawędzi sceny - ma odbić się od niej, czyli zmienić kierunek ruchu.

  • Piłka dotyka paletki - ma odbić się od niej, czyli zmienić kierunek ruchu.

  • Piłka ominęła paletkę - koniec gry - wygrywa gracz obsługujący drugą paletkę.

Ćwiczenie 20

Zastanów się, w jaki sposób uzupełnić przepis działania piłki, tak by uwzględnić opisane w scenariuszu zdarzenia. Uzupełnij przepis i porównaj z przykładem z odpowiedzi.

Wskazówka

Zauważ, że obsłużenie danej sytuacji w grze jest warunkowe i zachodzi tylko wówczas, gdy określona akcja miała miejsce. Zastanów się również, kiedy opisane zdarzenia mogą nastąpić - inaczej mówiąc, w którym miejscu przepisu należałoby je uwzględnić oraz czy ma znaczenie, w jakiej kolejności zostaną sprawdzone. Pamiętaj, że należy obsłużyć zwycięstwo obu graczy.

Ćwiczenie 21

Klocek pozwalający odbić się duszkowi od brzegu sceny to jeżeli na brzegu, odbij się. Znajdź go, a następnie zmodyfikuj skrypt, aby uwzględniał realizację punktu 3.2 z opracowanego przepisu. Następnie ponownie uruchom program zieloną flagą. Czy piłeczka odbija się zgodnie z oczekiwaniami?

Niestety nie ma klocka pozwalającego osiągnąć efekt odbicia jednego duszka od drugiego. Należy więc zastanowić się, jak zmienić kierunek ruchu po odbiciu się piłeczki od paletki. Być może wiesz, że kąt padania równy jest kątowi odbicia. Żeby obliczyć kierunek ruchu musisz wiedzieć, w jaki sposób oznaczane są kierunki w programie Scratch. W kategorii Czujniki znajdziesz klocek kierunek. Jego wartość stanowi aktualny kierunek, w którym ustawiony jest duszek. Przyjmuje wartości zgodnie z regułą przedstawioną na poniższym rysunku.

Wskazówka

Wartości klocka kierunek są z zakresu od -180 do 180. Klocek ustaw kierunek na … może korzystać zarówno z zakresu od -180 do 180 stopni, jak również od 0 do 360 stopni. Dlatego w poprzednim zadaniu można było skorzystać z losowania kierunku właśnie w tym zakresie. Scratch automatycznie potrafi przeliczyć odpowiednio wartości, a tworząc program możesz skorzystać z odpowiadającego ci w danym przypadku sposobu oznaczenia kierunku.

Ćwiczenie 22

Zastanów się, w jaki sposób można obliczyć wartość kierunku, w którym piłka ma się poruszać po odbiciu od paletki. Możesz skorzystać z rysunku zamieszczonego we wskazówce.

Wskazówka
Ćwiczenie 23

Uzupełnij skrypt zgodnie z powyższymi rozważaniami oraz przepisem działania piłeczki realizując wyróżnione punkty:

Kiedy kliknięto zieloną flagę:

  1. Idź na środek sceny (do x:0 i y:0).

  2. Ustaw kierunek na losową wartość z zakresu 0 do 360 stopni.

  3. Zawsze:

    1. Przesuń o 5 kroków.

    2. Jeżeli dotyka krawędzi sceny, odbij się - zmień kierunek ruchu.

    3. Jeżeli dotyka lewej paletki lub dotyka prawej paletki to:

      1. Ustaw kierunek na (-1)*kierunek.

    4. Jeżeli ominie lewą paletkę to:

      1. Wyświetl „Zwycięża gracz z prawej”.

      2. Zatrzymaj wszystko.

    5. Jeżeli ominie prawą paletkę to:

      1. Wyświetl „Zwycięża gracz z lewej”.

      2. Zatrzymaj wszystko.

Wskazówka

Wykorzystaj klocki: jeżeli … to oraz dotyka … ?

Należy jeszcze oprogramować sytuację, w której piłka minie jedną z paletek. W tym celu wystarczy zbadać, czy wartość współrzędnej x piłeczki jest mniejsza od współrzędnej x lewej paletki (wówczas wygrywa gracz z prawej strony sceny) lub większa od współrzędnej x paletki prawej (wówczas wygrywa gracz z lewej strony sceny). Wartości współrzędnych x dla obu paletek są znane i stałe. Wystarczy więc dodać odpowiednie instrukcje warunkowe w skrypcie piłeczki, sprawdzające, czy piłeczka nie minęła jednej z paletek. Żeby gracze wiedzieli, który z nich wygrał, warto żeby piłka wyświetliła odpowiedni komunikat, np. powiedziała: „Zwycięża gracz z prawej” lub „Zwycięża gracz z lewej”. Następnie powinno nastąpić zatrzymanie gry.

Ćwiczenie 24

Uzupełnij skrypt zgodnie z powyższymi rozważaniami - niech duszek - piłeczka wyświetli napis, kto wygrał np. przez 2 sekundy, a następnie zatrzyma wszystkie skrypty, jeśli minie którąś z paletek.

Wskazówka

Zaktualizowany przepis na działanie piłeczki może wyglądać w następujący sposób:

Kiedy kliknięto zieloną flagę:

  1. Idź do x: 0 i y:0.

  2. Ustaw kierunek na losową wartość z zakresu 0 do 360 stopni.

  3. Zawsze:

    1. Przesuń o 5 kroków.

    2. Jeśli na brzegu, odbij się.

    3. Jeżeli dotyka lewej paletki lub dotyka prawej paletki to:

      1. Ustaw kierunek na (-1)*kierunek.

    4. Jeżeli współrzędna x piłki < współrzędnej x lewej paletki to:

      1. Powiedz „Zwycięża gracz z prawej”.

      2. Zatrzymaj wszystko.

    5. Jeżeli współrzędna x piłki > współrzędnej x prawej paletki to:

      1. Powiedz „Zwycięża gracz z lewej”.

      2. Zatrzymaj wszystko.

Zauważ, że tym razem nie można było wprowadzić jednego klocka jeżeli … to i zastosować sprawdzenie podwójnego warunku ponieważ oddzielnie należy obsłużyć sytuację wygranej obu graczy.

Zmieniamy reguły gry - wprowadzamy punkty

W grach tego typu zabawa nie kończy się przy pierwszym potknięciu. Zlicza się punkty, aż ktoś osiągnie określony wynik. Na przykład możesz wprowadzić zasadę, że wygrywa ten, kto pierwszy zdobędzie 3 punkty. Punkt jest przyznawany za każdym razem, gdy przeciwnik nie odbije piłki.

Realizacja powyższego scenariusza wymaga przechowania informacji o liczbie punktów, czyli danej. Dane mogą być przechowywane przez program w zmiennych. W uproszczeniu zmienna to skrytka (szufladka), w której chowa się na przykład liczbę. Program może do niej zajrzeć i sprawdzić, jaka jest wartość zmiennej (przechowywana liczba). Wolno także zmieniać tę wartość - na przykład dodać do niej inną liczbę.

Ćwiczenie 25

Stwórz dwie zmienne i nazwij je Licznik prawy oraz Licznik lewy. Żeby stworzyć zmienne, należy przejść do kategorii Dane. Zmienne powinny być dostępne dla wszystkich duszków. Skorzystaj, w razie potrzeby, z zamieszczonego niżej filmu ilustrującego dodawanie nowej zmiennej.

Film: Tworzenie zmiennej
Ćwiczenie 26

Zastanów się, w jaki sposób można zmodyfikować przepis działania piłeczki, żeby wprowadzić opisane wyżej zasady, korzystając z utworzonych zmiennych. Zapisz go, następnie porównaj z odpowiedzią i sprawdź, czy zostały w nim uwzględnione sugerowane zmiany.

Ćwiczenie 27

Wprowadź zmiany w skrypcie, zgodnie z opracowanym przepisem. Sprawdź, czy gra działa zgodnie ze zmienionymi założeniami.

Zadania uzupełniające

Ćwiczenie 28

Losowanie początkowego kierunku ruchu piłeczki z zakresu od 0 do 360 powoduje, że przy wylosowaniu wartości 0, 90, 180, 270 lub bliskich im gra staje się nudna bądź niemożliwa. Zastanów się, jakie zmiany wprowadzić, by wylosowany kierunek ograniczyć do wartości, które zapewnią ruch piłeczki bezpośrednio w stronę lewej lub prawej krawędzi. Następnie wprowadź zmiany w swoich skryptach i przetestuj działanie.

Ćwiczenie 29

W rzeczywistości na kąt odbicia wpływa np. ruch paletki i jej ustawienie względem piłki. Aby utrudnić przeciwnikowi przewidywanie, w jaki sposób piłeczka zostanie odbita, dodaj np. element losowości. Obliczony kąt odbicia zmodyfikuj losowo np. w zakresie od -10 do 10.

Ćwiczenie 30

Dodaj dwa nowe tła sceny, po jednym dla wygranej lewego i prawego gracza. Następnie zmodyfikuj skrypty w taki sposób, by zamiast informacji w komiksowym dymku wyświetlone zostało odpowiednie tło z informacją (tekstową lub obrazkową), kto zwyciężył.

Wskazówka

Tło sceny możesz przygotować korzystając z wbudowanego w środowisko Scratch edytora graficznego. Jednak jeśli chcesz dodać napisy, wygodniej będzie je stworzyć w zewnętrznym edytorze. Pamiętaj, że tło powinno mieć wymiar dokładnie 480 na 360 punktów.

Ćwiczenie 31

Może się zdarzać, że podczas gry piłeczka „przykleja” się do paletki. Sytuacja ma miejsce, jeśli po zmianie kierunku ruchu i kolejnym przesunięciu piłeczka nadal dotyka paletki. Spróbuj znaleźć rozwiązanie. Rozważ na przykład wykorzystanie pętli powtarzaj aż … .