Moduł 7 - „Zawody lekkoatletyczne duszków”

Z Wiki Mistrzowie Kodowania
Skocz do: nawigacji, wyszukiwania

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,
  • opracowanie projektu prostej gry, w której występują procesy wykonywane równolegle,
  • jej implementacja w środowisku Scratch.

Cele szczegółowe:

  • uczeń rozumie i potrafi stosować odpowiednie instrukcje strukturalne,
  • uczeń rozumie pojęcia zmiennej globalnej i lokalnej i potrafi je wykorzystać w programie,
  • uczeń potrafi zaprojektować i zaimplementować prostą grę w środowisku Scratch, w której występują procesy wykonywane równolegle.

Etapy realizacji

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

Czas na realizację tej części: ok. 10 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 ew. własnych projektów uczniów. Jeśli ktoś chce się czymś pochwalić – pozwólmy mu na to.

Zaprojektowanie programu symulującego wyścigi duszków

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

Na początku zajęć wyjaśniamy, że zadaniem do rozwiązania będzie stworzenie programu symulującego wyścigi. Na początek w wyścigu wezmą udział dwa duszki. Tym razem jednak nie tworzymy z uczniami algorytmu rozpisanego na tablicy, ale dyskutujemy, organizując burzę mózgów ogólne założenia, czyli jak program ma działać. Omawiamy także, w jaki sposób niektóre z zagadnień da się zrealizować (ale bez konkretnego wskazywania, jak to zrobić z użyciem konkretnych poleceń Scratcha). Wnioski z burzy mózgów spisujemy na tablicy w formie schematycznego rysunku. Dyskusja może wyglądać podobnie do niżej opisanej, ważne by omówione zostały wszystkie punkty, które należy uwzględnić w programie (punkt startowy, sposób poruszania się duszków, ustalenie losowej prędkości poruszania, reakcja na osiągnięcie mety przez szybszego duszka).

Zadajemy pytanie: Od czego powinniśmy zacząć projektowanie naszego programu? Co powinniśmy w nim uwzględnić?

Odpowiedzi mogą być różne, w tym wiele z nich będzie poprawnych. Będziemy więc dążyli do tego, by na początku ustalić wszystkie ważne elementy działania programu, między innymi:

  • gdzie będą startowały duszki (trzeba ustalić ich położenie, bo zawsze powinny startować z tych samych pozycji) i gdzie będzie znajdowała się meta,

Wskazówka Ustalenia poczynione z uczniami najlepiej zanotować w postaci rysunku z opisami, zamiast wypisywania kolejnych punktów. Jeśli to konieczne, dobrze jest przypomnieć uczniom, w jaki sposób posługujemy się układem współrzędnych w środowisku Scratch.

  • w którą stronę będą się poruszały – w prawo, lewo a może w górę lub w dół
    • wybranie kierunku z lewej w prawą stronę wydaje się naturalne, bo zgodne z kierunkiem czytania, a ma tą zaletę, że duszki będą mogły przebyć dłuższą drogę,
  • w jaki sposób ustalić prędkość biegu poszczególnych duszków, by za każdym razem, gdy program zostanie uruchomiony, każdy duszek miał szansę na wygraną,
    • np. duszki mogą się poruszać o wylosowaną, niewielką (np. między 1 a 5) liczbę kroków, a losowanie powinno odbywać się przed każdym przesunięciem duszka po planszy, aż do momentu przekroczenia mety,
  • w jaki sposób duszek rozpozna, że dotarł do mety (przekroczył jej linię),
    • może sprawdzić po każdym ruchu (przesunięciu) o wylosowaną liczbę kroków, czy przekroczył pozycję mety, czy jeszcze nie. Jeśli przekroczył, wówczas dotarł do mety,
  • w jaki sposób duszek stwierdzi, że jest pierwszy,
    • np. może sprawdzić czy pozycja drugiego duszka jest mniejsza od pozycji mety, czy większa, gdy sam do niej dotarł. Jeśli jest mniejsza, to znaczy, że dotarł pierwszy i może powiedzieć „Wygrałem!”. Jeśli nie jest mniejsza, to znaczy, że drugi duszek dotarł wcześniej i wygrał lub jest remis.

Wskazówka

Zależnie od grupy, uczniowie mogą mieć różne pomysły na rozwiązanie problemów zidentyfikowanych podczas „burzy mózgów”. Np. mogą zechcieć rozpoznać, że duszek dotarł do mety, poprzez oznaczenie jej odpowiednim kolorem i sprawdzenie, czy duszek go dotyka. Mogą także zaproponować, że meta będzie kolejnym duszkiem i sprawdzą, czy duszki się stykają.

Podobnie mogą zaproponować, że ustalenie kolejności może wynikać z przekazania odpowiedniego komunikatu od duszka, który osiągnął metę i spowodować wyświetlenie odpowiedniej informacji.

Rozwiązań może być wiele. W zależności od umiejętności całej grupy lub poszczególnych uczniów, możemy zaproponować, by każdy spróbował zaplanować działanie programu, a później go zapisał w środowisku Scratch według własnego pomysłu. Możemy również zapisać pomysły na tablicy według propozycji uczniów i poprosić, by wszyscy zrealizowali na początek program stosując się do wspólnych ustaleń, które mogą znacznie odbiegać od przedstawionych wyżej.


Realizacja programu przez uczniów

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

Zadanie: Prosimy uczniów, by przystąpili do realizacji programu według dokonanych ustaleń (wspólnych lub według własnych pomysłów, jeśli w części drugiej przyjęliśmy, że każdy wymyśla własny algorytm, a my tylko podpowiadamy, co powinno zostać w nim uwzględnione).

Do wyboru uczniów pozostawiamy wybór postaci (kostiumów) poszczególnych duszków oraz scenerii, na której wyścig będzie się odbywał. Zwracamy tylko uwagę, że warto, aby duszki różniły się swoim wyglądem, np. jeśli pozostawimy kotki, to można zmienić kolor jednego z zawodników.

Podczas wykonywania zadania pomagamy w ewentualnym rozwiązaniu problemów, na jakie natkną się uczniowie. Staramy się jednak nie narzucać własnych rozwiązań, a raczej pozwolić samodzielnie analizować, gdzie problem wystąpił, dlaczego i w jaki sposób mu zaradzić – służąc jedynie podpowiedziami i nakierowując poprzez zadawanie pytań.

Poniżej przedstawione są przykładowe skrypty dla ścigających się duszków (nazwanych na potrzeby projektu Bolek i Lolek).

Wprowadzenie rozszerzeń do programu

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

Pierwsze zadanie może być przeznaczone dla uczniów, którzy najszybciej skończą podstawową wersję programu, polega na dodaniu animacji do postaci duszka. Jeżeli duszkiem jest kotek lub inna postać zwierzątka lub postać baśniowa to może to być przebieranie nóżkami. W przypadku samochodzików, może to być ruch kół, lampa koguta na dachu lub inny pomysł uczniów. Ważne w tym zadaniu, żeby animacja rozpoczynała się w momencie startu, a kończyła w momencie dotarcia do mety, gdy duszek kończy wyścig. Podpowiedź – animacja powinna być oddzielnym skryptem dla każdego duszka, na przykład podobnym do poniższego przykładu. Drugie zadanie polega na dodaniu licznika czasu. Podczas niemal każdego wyścigu transmitowanego w telewizji możemy podglądać czas, w jakim poszczególni zawodnicy docierają do mety. Chcielibyśmy, aby podobnie było w naszym programie. Przedyskutujmy z uczniami, w jaki sposób możemy to zrealizować. Poprośmy, aby odnaleźli klocki związane z pomiarem czasu. Na pewno przydatne będą czasomierz oraz kasuj zegar Należy zastanowić się, gdzie i w jaki sposób je wykorzystać. Zegar powinien być wyczyszczony w momencie rozpoczęcia wyścigu, a pomiar dokonywany w trakcie oraz na końcu biegu każdego z duszków. Następnie przedyskutujmy, w jaki sposób moglibyśmy ich użyć. Jak zapisywać czas i w jaki sposób wyświetlać go na ekranie. Jednym ze sposób jest zapamiętywanie czasu po każdym ruchu przez każdego duszka, aż do osiągnięcia mety. Wówczas możemy wyświetlić zmienne, w których duszki zapamiętują swój czas i będziemy mieli podgląd jego upływu na żywo – podobnie jak w transmisji telewizyjnej. Jednocześnie ostatni zapamiętany w zmiennej czas, to czas osiągnięcia mety przez duszka. „Zegar” automatycznie zatrzyma się. Należy zwrócić uwagę, że trzeba utworzyć zmienną, np. o nazwie czas dla każdego duszka oddzielnie (dostępną tylko dla tego duszka, a nie wszystkich). Poprośmy o dokonanie odpowiednich modyfikacji w programie i jego przetestowanie. Zaprośmy pierwszego z uczniów, któremu uda się osiągnąć cel, by zaprezentował i objaśnił swoje rozwiązanie na tablicy. Następnie zapytajmy czy ktoś ma inny sposób i także omówmy go z całą grupą. Przykładowa modyfikacja programu może wyglądać następująco: Trzecie zadanie to dodanie rysowania torów, po których poruszają się duszki. Poprośmy, by przed rozpoczęciem biegu jeden z duszków narysował tory, po których oba duszki będą się poruszały. Zadanie ma na celu przypomnienie zasad posługiwania się pisakiem i rysowania zaplanowanych figur na ekranie przez duszka. Uczniowie podczas wcześniejszych zadań wykonywali już podobne ćwiczenia, więc nie powinni mieć większego problemu z jego realizacją. Możemy jedynie podpowiedzieć, że tory powinny być proste i schematyczne – np. w postaci trzech kresek wyznaczających granice torów, a każdy z duszków znajdzie się dokładnie po środku między dwoma z nich, jak na rysunku poniżej. Wskazówka To zadanie wymaga większej modyfikacji skryptów programu niż może się wydawać na pierwszy rzut oka. Wyścig nie może się bowiem zacząć wraz z naciśnięciem zielonej flagi, gdyż najpierw jeden z duszków musi narysować tory. Jeśli drugi rozpocząłby w tym czasie bieg, rysujący byłby na gorszej pozycji startowej. Dlatego skrypt rysujący tory powinien zostać wykonany po wciśnięciu zielonej flagi, a sam wyścig uruchomiony np. przez wciśnięcie klawisza S. Warto także zwrócić uwagę, że rysowanie torów polega na trzykrotnym powtórzeniu określonych czynności i pozostawić uczniom stworzenie odpowiedniego skryptu. Przykładowa modyfikacja skryptów może wyglądać następująco: Warto zwrócić uwagę, że w tej wersji dodane zostało ustawienie zmiennych czas dla każdego z duszków na 0 na początku programu, aby prawidłowo działał zegar. Jeśli nikt z uczniów nie zauważył wcześniej tego błędu, warto ich na niego naprowadzić.

Propozycje zadań dodatkowych do samodzielnej realizacji przez uczniów

  1. Dodanie trzeciego zawodnika.
  2. Dodanie publiczności, która jest aktywna podczas biegu.