Moduł 4 - "Kot zastawia pułapkę na mysz"

Z Wiki Mistrzowie Kodowania
Skocz do: nawigacji, wyszukiwania
Logo Mistrzowie.png

Materiały stworzone przez Ośrodek Edukacji Informatycznej i Zastosowań Komputerów w Warszawie w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska, objęte licencją CC-BY-SA „Uznanie autorstwa – Na tych samych warunkach 3.0 Polska”


Informacje

Cele

Cele ogólne:

  • przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka Scratch,
  • wprowadzenie pojęcia zmiennej,
  • wprowadzenie losowości,
  • implementacja gry według opracowanego pod kierunkiem nauczyciela scenariusza.

Cele szczegółowe:

  • uczeń rozumie i potrafi stosować odpowiednie instrukcje iteracji (powtórz i zawsze),
  • uczeń rozumie i potrafi stosować odpowiednie instrukcje warunkowe (jeżeli i jeżeli ... w przeciwnym przypadku),
  • uczeń potrafi wykorzystać losowość w programie,
  • uczeń rozumie pojęcie zmiennej i potrafi ją wykorzystać w programie.

Etapy realizacji

Omówienie rozwiązania zadania dodatkowego z modułu III

Czas na realizację tej części: ok. 15 minut

Na początku zajęć należy przypomnieć, co miało zostać przygotowane przez uczniów między zajęciami. Zapraszamy chętnego ucznia do zaprezentowania swojego rozwiązania. Dyskutujemy z uczniami, czy ktoś miał inny sposób rozwiązania. Omawiamy rozwiązania (chwaląc każde poprawne rozwiązania poszczególnych zadań).
Jeśli nie było zadań domowych, to zaczynamy od powtórzenia najważniejszych zagadnień z poprzedniego modułu. Pytamy także, o wątpliwości do ewentualnych własnych projektów uczniów. Jeśli ktoś chce się czymś pochwalić – pozwólmy mu na to.

Zaprojektowanie i napisanie programu automatycznie sterującego duszkami – Kot czyhający w pułapce na Myszkę

Czas na realizację tej części: ok. 45 minut

Przypominamy uczniom projekt gry, w której Kotek starał się złapać myszkę sterowaną przez gracza przy użyciu myszy komputerowej (Moduł II). Następnie wyjaśniamy uczniom, na czym będzie polegał następny projekt. Będziemy chcieli, aby tym razem Kotek i Myszka były sterowane przez komputer. Kotek nie będzie ścigał Myszki, ale zastawi na nią pułapkę i zaczai się, by ją schwytać. Zadaniem Myszki będzie przechytrzyć Kotka. Oczywiście oboje muszą mieć szansę na zwycięstwo.

Projektowanie programu powinniśmy rozpocząć od naszkicowania jego działania na tablicy i omówienia pomysłów, jak go zrealizować. Na początek rysujemy postać Kotka w lewej części sceny, a Myszki w prawej.

Zadanie: Prosimy uczniów, by dodali obie postacie (duszki) do sceny projektu i nazwali je odpowiednio Kotek i Myszka.

W razie potrzeby przypominamy uczniom indywidualnie, jak dodać nowego duszka.

Zadajemy pytanie: Na czym może polegać pułapka na myszkę? Co powinna zawierać, aby była atrakcyjna dla Myszki?

Pomysły będą zapewne różne. Powinniśmy skupić się na tych, które uczniowie już potrafią zrealizować w Scratch’u.
Dyskusje rozpoczynamy od omówienia przynęty. Może być nią np. serek lub inny przysmak myszy. Zadajemy pytanie, skąd możemy wziąć serek do pułapki. Naprowadzamy, że możemy sami narysować serek. Dalej zadajemy pytanie, czym serek powinien być w naszym projekcie.
Naprowadzamy uczniów na to, że serek powinien być kolejnym duszkiem. Dzięki temu łatwiej będzie wprowadzić interakcję Myszki, która złapie serek (wygra) – nie dając się jednocześnie złapać Kotkowi. Łatwiej będzie też kierować Myszkę do serka – na takiej samej zasadzie jak wcześniej Kotek kierował się do Myszki (w projekcie z II modułu).

Scr old p 4 6.jpg

Zadanie: Prosimy uczniów, by dodali do projektu kolejnego duszka do sceny projektu, samodzielnie narysowali dla niego kostium przypominający ser oraz zmienili nazwę na Serek.

W razie potrzeby przypominamy uczniom indywidualnie, jak można narysować nowy kostium dla duszka.

Zadajemy pytanie: Jak może wyglądać pułapka na Myszkę, przy założeniu, że Kotek będzie miał szansę ją złapać czając się przy pułapce, a Myszka przechytrzyć Kotka?

Pomysłów zapewne będzie wiele. Naprowadźmy uczniów, że warto by miała dwa wejścia. Tylko przy jednym będzie czaił się Kotek. Jeśli Myszka wybierze drugie, to go przechytrzy – dzięki temu obie postacie będą mogły odnieść zwycięstwo. Dalej zastanawiamy się, z czego zbudować pułapkę. Możemy naprowadzić uczniów, że Kotek może ją zastawić – czyli narysować. Myszka nie będzie mogła przejść przez narysowane (zbudowane) przez Kotka ściany.
Następnie razem z uczniami zastanówmy się, jak sama pułapka może wyglądać. W razie potrzeby zaproponujmy, żeby był to kwadrat bez jednej ściany, umieszczony stroną bez tej ściany blisko lewej krawędzi sceny. Dzięki temu powstaną dwa wejścia, przy których będzie można umieścić Kotka. Kwadrat uczniowie już powinni umieć narysować. Serek powinien zostać umieszczony w środku kwadratu. Pułapka może przypominać tę z poniższej ilustracji.
Scr old p4 1.png

Zadanie: Prosimy uczniów, by stworzyli skrypt dla Kotka, który po uruchomieniu narysuje pułapkę i go przetestowali. Przypominamy, że wcześniej na zajęciach rysowaliśmy już kwadrat.

Dyskusja: Po stworzeniu skryptu przez uczniów przeglądamy rozwiązania, a następnie dyskutujemy nad udoskonaleniem rozwiązania.

Powinniśmy zwrócić uwagę na następujące elementy:
  • ustawienie kotka na pozycji początkowej (serek powinien być zawsze w środku),
  • wyczyszczenie ekranu, przed narysowaniem pułapki,
  • ustawienie wybranego koloru ścian pułapki,
  • zwrócenie kotka w kierunku prawej strony sceny do rysowania ścian pułapki,
  • pogrubienie linii pułapki,
  • ustawienie kotka w kierunku prawej strony sceny, tak by czyhał, czy Myszka nie nadchodzi.
Z projektów uczniowskich warto wybrać ten, który najwięcej z powyższych elementów realizuje i pokazać jako wzór.
Wybierając projekt do pokazania warto również zwrócić uwagę na sposób rysowania kwadratu – czy wykorzystany został klocek powtórz <3> razy oraz czy po zakończeniu rysowania pisak został podniesiony, inne rozwiązanie może później sprawiać problemy.

Zadanie: Prosimy uczniów by uzupełnili skrypt Kotka, według powyższych ustaleń.

Ustalenia warto zapisać lub rozrysować na tablicy. Po wykonaniu sprawdzamy rozwiązania uczniów i w razie potrzeby indywidualnie pomagamy.
W przypadku, gdyby uczniowie mieli problemy, warto wspólnie omówić, które klocki mogą się przydać do realizacji zadania.

center‎

Przykładowy skrypt Kotka może wyglądać następująco:

Scr old p4 4.png

Zadanie: Prosimy uczniów, by dodali skrypt dla Serka, tak by zawsze po uruchomieniu programu ustawiony był w środku pułapki, ale oddalony od Kotka. Myszka która dotrze do Serka nie powinna wpaść w łapy Kotka. ,br/> Dodanie skryptu dla serka nie powinno zająć wiele czasu, gdyż uczniowie dodali odpowiednie klocki w skrypcie Kotka.

Przykładowy skrypt serka może wyglądać następująco:

Scr olg p4 5.png

Dyskusja: Wprowadzamy uczniów do kolejnego zadania – sterowania Myszką. Chcemy, by po uruchomieniu programu Myszka automatycznie kierowała się do serka. Musimy omówić, w jaki sposób możemy tego dokonać i co się będzie działo, w zależności od następujących zdarzeń (najważniejsze ustalenia z dyskusji zapisujemy na tablicy):

  • Uruchomienie programu
    Myszka powinna ustawić się na pozycji startowej. Następnie powinna powtarzać następujące czynności: ustawić się w kierunku serka, przesunąć się określoną liczbę kroków i sprawdzić czy nie doszła do serka lub Kotka albo nie dotyka ściany. Jeśli nie doszła, to zawsze powinna powtórzyć czynności od ustawienia się w kierunku serka. Liczba kroków powinna być niewielka, żeby nie przeszła przez ścianę pułapki – inaczej nasz program nie będzie działał prawidłowo.
  • Myszka dotyka do serka
    Myszka może np. powiedzieć „Smaczny serek” i kończymy program
  • Myszka dotyka Kotka
    np. powiedzieć „Ou, kot mnie złapał!” i kończymy program
  • Myszka dochodzi do ściany pułapki (dotyka jej)
    • Np. powinna pomyśleć „Hmm… Jak się dostać do serka?”
    • Ominąć jakoś ścianę.

Dochodzimy z uczniami do wniosku, że potrafią oprogramować trzy pierwsze zdarzenia. W razie potrzeby możemy razem wybrać pomocne do zadania klocki, ale lepiej, żeby tę część programu uczniowie wykonali zupełnie samodzielnie.

Omówienia wymaga zadanie Ominąć ścianę. Dyskutujemy z uczniami, co myszka powinna zrobić, żeby odnieść sukces, gdy natknie się na ścianę. Powinniśmy dojść do wniosku, że jeśli za każdym razem, gdy natknie się na ścianę, cofnie się tyle kroków, ile szła na przód, a następnie skręci w prawo (o 90 stopni, by iść równolegle do ściany) i przejdzie kilka kroków, to na pewno w końcu ominie ścianę, a także uniknie spotkania z Kotkiem.

Scr old p 4 7.jpg

Zadanie: Prosimy, by uczniowie zgodnie z zapisanymi ustaleniami stworzyli skrypt Myszki oraz przetestowali go.

Scr old p 4 8.jpg

Przykładowy skrypt Myszki może wyglądać następująco:

Scr olg p3 4.png

Dodanie losowości w poruszaniu się myszki

Czas na realizację tej części: ok. 30 minut

Zauważamy, że w tej wersji nasz program zawsze działa dokładnie w ten sam sposób – myszka dochodzi do serka niezależnie od pozycji startowej.

Zadajemy pytanie: Co możemy zrobić, żeby nasz program nie był tak bardzo przewidywalny – żeby czasem Kotkowi udało się schwytać Myszkę w zastawioną przez niego pułapkę.

Pomysły mogą być różne. Naprowadzamy uczniów, że Myszka powinna próbować skręcić w lewo, a innym razem w prawo, bo nie ma pewności gdzie jest Kotek (na górze, czy na dole). Pytamy, na jakiej podstawie Myszka może podjąć taką decyzję, nie wiedząc, po której stronie czeka Kotek. Możemy nawiązać do sytuacji, gdy trzeba wybrać np. przed meczem, która drużyna zaczyna grę. Często wówczas rzuca się monetą. Czyli losuje.

Zadanie: Prosimy, by uczniowie odnaleźli klocek związany z losowaniem.

Scr olg p3 5.png

Zadajemy pytanie: Z jakiej puli liczb powinniśmy losować? Od czego to uzależniamy?

Myszka może skręcić w lewo lub w prawo. Powinniśmy więc wylosować jedną z dwóch wartości – np. 1 lub 2. Wówczas możemy przyjąć, że 1 będzie oznaczało skręt w prawo, a 2 skręt w lewo. Zastawiamy się, jak podjąć decyzję po wylosowaniu wartości. Jakich klocków do tego możemy użyć.
Uczniowie dojdą do wniosku, że przyda się klocek jeżeli. Lepszym jednak rozwiązaniem będzie klocek jeżeli… w przeciwnym wypadku. Pozostaje problem, co należy wstawić w warunku jeżeli. Uczniowie zapewne dojdą do wniosku, że wynik losowania. Jednak ten trzeba porównać z ustaloną wartością (np. jedynką). Wspólnie z uczniami tworzymy i objaśniamy kawałek skryptu odpowiadający za losowanie i wybór kierunku, w jakim Myszka ma się obrócić. Zwracamy szczególną uwagę na porównywanie wartości dające w odpowiedzi informację zwrotną prawda lub fałsz.

Scr olg p3 6.png

Zmodyfikowany fragment skryptu powinien wyglądać jak na poniższej ilustracji.

Scr olg p3 7.png

Zadanie: Prosimy, by uczniowie zmodyfikowali skrypt i wprowadzili zasadę, że myszka w przypadku dotknięcia ściany losuje, w którą stronę ma skręcić oraz przetestowali program.

Efekt jest praktycznie zawsze ten sam. Myszka tkwi przy ścianie. Dyskutujemy dlaczego tak się dzieje. Dochodzimy do wniosku, że Myszka losując po każdym dotknięciu ściany, w którą stronę ma skręcić praktycznie kręci się w miejscu (ponieważ raz obraca się w lewo, raz w prawo). Zastanawiamy się z uczniami, co należałoby zrobić, żeby Myszka mogła pójść dalej. Stwierdzamy, że powinna podjąć decyzję na początku, w którą stronę będzie skręcała, jeśli natknie się na ścianę. Decyzję musi jakoś zapamiętać. Do tego potrzebna będzie jej pamięć. W programach komputerowych do zapamiętywania różnych rzeczy wykorzystuje się zmienne, więc nauczymy się je stosować. Możemy porównać zmienną do szuflady, w której coś chowamy i możemy to potem wykorzystać.

Zadanie: Prosimy, by uczniowie przeszli do kategorii bloczków Dane, a następnie utworzyli zmienną o nazwie lewo czy prawo. W tym celu powinni wybrać przycisk Stwórz zmienną. W oknie Nazwa zmiennej powinni wpisać lewo czy prawo.

W przypadku pytań, czy zmienna ma być dostępna tylko dla tego (aktualnie wybranego) duszka, czy dla wszystkich duszków – prosimy by uczniowie pozostawili opcję domyślną, dla wszystkich duszków.


Scr olg p3 8.png

Omawiamy z uczniami, jakie nowe opcje pojawiły się w zmiennych, oraz w jaki sposób należy teraz zmodyfikować skrypt Myszki. Dochodzimy do wspólnego wniosku, że losowanie powinno nastąpić zaraz po uruchomieniu programu, a jego wynik zapamiętany w zmiennej lewo czy prawo poprzez ustawienie jej wartości. Zmienić też należy fragment podejmowania decyzji – zamiast losowania, należy tam do porównania wstawić zmienną lewo czy prawo.

Zadanie: Prosimy, by uczniowie wprowadzili zmiany do skryptu, a następnie przetestowali wielokrotnie program.


Przykładowy, poprawiony skrypt Myszki może wyglądać następująco:

Scr olg p3 9.png

Propozycje zadań dodatkowych do samodzielnej realizacji przez uczniów

  1. Losujemy pozycję kotka przy pułapce, czy ma być ustawiony u góry czy u dołu pułapki.
  2. Dodajemy obsługę klawiszy L oraz P odpowiednio zmieniających, w którą stronę skręcać ma Myszka, oraz klawiszy G i D ustalających, gdzie ma czekać kotek na Myszkę.
  3. Zmieniamy skrypt Kotka w taki sposób, by poruszał się losowo góra-dół przy lewej krawędzi ekranu.