Wstęp
Prowadzący pyta dzieci, czy wiedzą, gdzie przydaje się szybki czas reakcji, czy znają przykłady gdzie się go stosuje np. telewizyjne quizy i teleturnieje, wyścigi samochodowe i inne zawody sportowe.
Celem zajęć jest stworzenie programu - gry dla dwóch osób, które rywalizowały będą między sobą w tym, która z nich ma szybszy czas reakcji. Wykorzystamy trzy roboty:
- jeden będzie pełnił funkcję sędziego - będzie wyświetlał różne kolory za pomocą swoich czułek i oczu.
- dwa posłużą za urządzenia do pomiaru czasu reakcji. W przypadku wyświetlenia konkretnego koloru przez sędziego, dzieci będa miały za zadanie jak najszybciej zasłonić czujnik odległości swojego robota. Na potrzeby zajęć załóżmy, że kolorem tym będzie czerwony.
Zasłonięcie czujnika szybciej niż zrobi to przeciwnik, spowoduje nadanie punktu dla zwycięzcy i przejście dalej do sekwencji wyświetlania się losowych kolorów. Dla utrudnienia i podniesienia emocji kolory mogą się również wyświetlać w losowych odstępach czasu.
Zadanie 1 - Interfejs programu
- Zadaniem pierwszym jest stworzenie tła programu, tak, by odpowiednio wyświetlały się punkty zdobyte przez każdego gracza. Jednocześnie należy stworzyć też dwie zmienne np. robot1 i robot2, które będą przechowywały punkty zdobyte przez każdego gracza oraz wprowadzić skrypt rozpoczątkujący działanie programu:
-
- wyzerować wartości zmiennych
- ustawić początkowe kolory, które pozwolą odróżnić sędziego od urządzeń do pomiaru czasu reakcji.
- Można wykorzystać tło z załączników (Załacznik 1: Tło)
Przykładowe rozwiązanie:
Zadanie 2 - Losowanie kolorów
- Zadaniem drugim jest stworzenie skryptu, który w losowych odstępach czasu wyświetlał będzie również losowy kolor i przypisywał do zmiennej, jaki kolor został wybrany. Zmienna ta pozwoli w przyszłości sprawdzić, czy gracz zareagował na właściwy kolor.
- Możemy wykorzystać narzędzie tworzenia własnych bloków (zakładka Moje bloki / Utwórz blok) do stworzenia funkcji LosujKolor
Przykładowe rozwiązanie:
Zadanie 3 - Badanie czasu reakcji
- Ostatnim zadaniem jest określenie, który z graczy zareagował szybciej oraz czy zareagował na poprawny kolor. W tym celu wykorzystamy czujnik odległości robota.
- Domyślnie, gdy nic go nie zasłania, pokazuje on wartości w okolicach 200, w momencie zasłonięcia staje się bardziej czuły i jest w stanie zwrócić przybliżoną wartość odległości w centymetrach.
- Wykorzystamy zagnieżdżone instrukcje warunkowe, by sprawdzić najpierw:
- czy gracz w ogóle zareagował,
- a następnie czy zareagował, gdy kolor wskazany przez sędziego był czerwony.
- W momencie, gdy pierwszy gracz zareaguje i zasłoni czujnik, dostaje punkt i mimo, że jego przeciwnik zapewne zareagował prawie w tym samym momencie, to jednak był on wolniejszy o ułamek sekundy.
- Robot wolniejszego gracza wskazuje mu, że przegrał aktualne starcie, a zwycięzcę informuje o wygranej za pomocą odpowiedniego dźwięku emocji.
- Aby móc sprawdzić, czy gracz przegrał, należy zmienić wartość zmiennej, która służy do sprawdzenia aktualnego koloru:
Uwaga: należy to zrobić w pierwszej kolejności, robot wykonując dźwięk emocji czy wyświetlając kolor "wstrzymuje" program, do czasu aż dana czynność zostanie wykonana.
Przykładowe rozwiązanie:
- Roboty otrzymują swój numer w kolejności połączenia z Magic Dongle. By rozpoznać "który jest który", wykorzystaj lupę przy numerze robota.
Czas na zabawę!
Najwyższy czas rozpocząć rywalizację! Uruchamiamy program, określamy, ile punktów trzeba zdobyć by wygrać i wyłaniamy mistrza reakcji!
Podsumowanie
Czy dzieci mają jakiś pomysł na rozbudowanie programu? Można na przykład:
- określić liczbę punktów, która wyłoni zwycięzcę.
- wprowadzić ujemne punkty za złą reakcję.
- rozbudować interfejs programu w środowisku Scratch.
Jeśli masz do dyspozycji większą liczbę robotów, możesz zawsze rozbudować program o kolejne stanowiska i włączyć do gry kilka osób :)