Pewnie nie raz bawiliście się grą, w której bohater musiał przejść przez jakiś labirynt, wykonując określone zadania - np. zebrać skarby, uniknąć spotkania z groźnymi przeciwnikami i dotrzeć do określonego celu. Twoje zadanie będzie polegało na stworzeniu podobnej gry w programie Scratch.
Jeżeli potrzebujesz przypomnieć sobie podstawy środowiska Scratch, skorzystaj z tego materiałuP9AYGQXHJtego materiału.
Najpierw zastanów się nad scenariuszem gry, bohaterami, którzy w niej wystąpią, nad tym, co będzie ich zadaniem i jakie przeszkody napotkają. Musisz także pomyśleć, jak będzie wyglądała plansza gry, a następnie opisać wszystkie czynności, które powinien wykonywać komputer.
Zacznij od projektu, w którym występuje mysz (steruje nią gracz). Jej zadanie polega na pokonaniu labiryntu i zdobyciu jabłka. Sceneria gry będzie przypominać szachownicę. Gracz będzie mógł przesunąć mysz za każdym razem o jedno pole oraz zmienić kierunek, w którym mysz będzie się poruszała. Na planszy wystąpią pola w dwóch kolorach - zielonym i czerwonym. Zielony będzie oznaczał korytarz, czyli pola, po których mysz będzie mogła się poruszać, a czerwony - ściany, czyli pola, niedostępne dla myszy. Gracz wygrywa, gdy doprowadzi mysz do jabłka ukrytego w labiryncie.
R1WWY7TXxyKj7
Na ilustracji widoczna jest plansza składająca się z czerwonych i zielonych kwadratów. Zielone kwadraty tworzą labirynt. Na początku labiryntu (na zielonym polu) ustawiona jest szara myszka. Na przedostatnim kwadracie labirynu (również na zielonym polu) znajduje się czerwone jabłko.
Podgląd gry labirynt.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
Wykorzystaj poniższy dzienniczek na zapisanie swoich notatek i przemyśleń.
Ry23rlC3Kd8uq
Źródło: GroMar, licencja: CC BY 3.0.
1
Ćwiczenie 1
Określ, czym powinno być jabłko, które ma zdobyć mysz. Rysunkiem, który wykonasz na scenie, czy drugim duszkiem – a może masz inne pomysły?
Rur7jrfT0XAoo
Źródło: GroMar, licencja: CC BY 3.0.
Zastanów się, jakie zalety będzie miało przedstawienie jabłka jako duszka. Możesz porównać swój pomysł z pomysłami kolegów i koleżanek.
Jeśli jabłko będzie dodatkowym duszkiem, można będzie łatwo zmieniać jego położenie na planszy i rozbudować grę o dodatkowe poziomy - np. o labirynt o innym układzie ścian. Grę będzie można również utrudnić przez zmianę pozycji jabłka po ustalonym czasie, jeśli mysz nie zdąży do niego dotrzeć wcześniej.
Oczywiście jabłko może również być rysunkiem wykonanym na planszy, ale niesie to ze sobą pewne konsekwencje, jak na przykład konieczność wykrywania zmiany koloru na planszy, zamiast wykrywania kontaktu z innym duszkiem. W późniejszych ćwiczeniach będziemy się opierać o strategię korzystającą z jabłka jako duszka - pamiętaj, że twoja gra może być inna.
1
Polecenie 1
Uruchom program Scratch i wczytaj do niego planszę z labiryntem jako nowe tło sceny. Pamiętaj o usunięciu domyślnego, białego tła.
Poniżej możesz pobrać plik graficzny, którego możesz użyć jako planszy z labiryntem. W kolejnych ćwiczeniach będziemy korzystać z tej planszy, ale możesz również stworzyć własną grafikę.
Usuń domyślnego duszka – kotka. Dodaj z galerii duszki z postaciami myszy oraz jabłka. Zmień ich nazwy odpowiednio na: Mysz oraz Jabłko. Ustaw ich rozmiar w taki sposób, by w całości mieściły się na pojedynczym polu planszy.
Duszka możesz usunąć klikając na ikonę kosza, która pojawi się po zaznaczeniu wybranego aktora.
Rozmiar i nazwę duszka możesz zmienić w menu, które znajduje się pod sceną.
RgS3zI8KJXrK5
Grafika przedstawia okienko programu Scratch. W górnej części znajduję się pasek nawigacyjny. Począwszy od lewej, jest na nim logo Scratch, ikonka planety z rozwijaną listą do wyboru języka interfejsu, przyciski "Plik" i "Edycja", odnośnik do samouczków i pole do wpisania nazwy projektu z domyślną wartością "Projekt Scratch". Poniżej znajduję się główny obszar programu. Jest on podzielony na trzy sekcje. Pierwsza z nich to boczne menu. Składa się ono z trzech zakładek, w których możemy wybrać interesujący nas klocek skryptu, zmienić lub edytować kostium, a także zmienić dźwięki. W załączonej grafice wybrana jest zakładka "Skrypt". W niej mamy do wyboru bloki z instrukcjami. Podzielone są na 9 kategorii, każdy innego koloru. Zaczynając od góry są nimi odpowiedni "Ruch", "Wygląd", "Dźwięk", "Zdarzenia", "Kontrola", "Czujniki", "Wyrażenia", "Zmienne" i "Moje bloki". Dodatkowo w lewym dolnym ekranie znajduje się niebieski kwadratowy przycisk umożliwiający rozbudowanie naszych kategorii o nowe moduły. Na środku sceny jest obszar roboczy. To tutaj budujemy skrypt poprzez łączenie bloków. Przeciągamy je z lewego panelu lub kopiujemy już istniejące. W dolnej części obszaru wyróżnione są trzy okrągłe przyciski. Pierwszy z nich oznaczony jest ikoną lupy z plusem. Umożliwia przybliżenie widoku sceny. Druga ikona to lupa z minusem i pozwala oddalić widok. Natomiast trzecia to znak "=", dzięki któremu możemy przywrócić widok do domyślnej wartości. Ostatni panel, czyli ten po prawej jest najbardziej rozbudowany. Zaczynając od góry po lewej stronie panelu znajdują się dwa przyciski: "zielona flaga" do uruchamiania skryptu i "czerwony ośmiokąt foremny" do zatrzymania uruchomionego skryptu. Po prawej stronie są trzy przyciski - "zmniejszenie rozmiaru panelu", "zwiększenie rozmiaru panelu" i "wyświetlenie obrazu na pełnym ekranie". Poniżej jest okienko z podglądem działania programu. Na samym dole jest panel umożliwiający wybór duszka, zmianę jego nazwy oraz innych parametrów, jak chociażby położenie czy rozmiar.
Okno programu Scratch z widocznym podglądem gry.
Źródło: GroMar, licencja: CC BY 3.0.
Odpowiednim rozmiarem dla myszy, tak żeby mieściła się w pojedynczym polu planszy będzie 35 lub mniej. Dla jabłka maksymalny rozmiar wynosi 50.
R1bIxTeb1WB5q
Ćwiczenie 2
Zastanów się, jak zmienić rozmiar duszka w programie Scratch? Możliwe odpowiedzi: 1. Po prawej stronie, pomiędzy sceną a obszarem wyboru duszków znajduje się pole "rozmiar"., 2. Po lewej stronie, tuż obok kategorii znajduje się pole edycji duszków., 3. Wywołując menu kontekstowe klikając prawym przyciskiem myszy na wybranego duszka.
Źródło: GroMar, licencja: CC BY 3.0.
Uwaga!
Pamiętaj, żeby zapisać swój projekt - np. pod nazwą Labirynt 1. Następne wersje projektu możesz zapisywać, zmieniając jedynie numer w nazwie na kolejny. Dzięki temu możliwe będzie ewentualne wrócenie do dowolnej, wcześniejszej wersji.
Zasady gry i przepis dla komputera
Mając gotowy scenariusz, musisz uszczegółowić wszystkie czynności, które będzie wykonywał komputer. To znaczy, że należy określić, kiedy i w jaki sposób komputer ma reagować, aby gra działała dokładnie tak, jak chcesz.
2
Ćwiczenie 3
Określ, jakie czynności powinien wykonywać komputer w tej grze, czyli co trzeba zaprogramować. Podziel je na trzy kategorie:
czynności startowe (wszystkie czynności wykonywane przed rozpoczęciem gry, np. po wciśnięciu zielonej flagi),
sterowanie (jak gracz będzie poruszał myszą),
zdarzenia w grze (co ma się stać, np. gdy mysz dotrze do jabłka).
R1ayjTdYGk7K9
Źródło: GroMar, licencja: CC BY 3.0.
Czynności startowe odpowiadają za początkowe ustawienia, które co grę powinny być restartowane. Taką czynnością może być, np. ustawienie duszków na odpowiednich miejscach.
Sterowanie odpowiada za sposób, w jaki gracz będzie sterował swoją postacią (myszą). Przykładowym sposobem sterowania duszkiem może być poruszanie się strzałkami.
Ostatnia kategoria powinna opisywać akcje, które będą wymagały sprecyzowanych odpowiedzi ze strony gry. Taką akcją może być, np. dotarcie myszy do jabłka.
Czynności startowe:
ustawienie myszy na polu startowym,
ustawienie jabłka na wybranym polu.
Sterowanie:
przesunięcie myszy o jedno pole do przodu,
obrót myszy w lewo,
obrót myszy w prawo.
Zdarzenia:
co się stanie, gdy mysz zostanie wprowadzona na czerwone pole,
co się stanie, gdy mysz dotrze do jabłka.
2
Ćwiczenie 4
Do ustawienia duszków myszy oraz jabłka na pozycjach startowych możesz wykorzystać blok idź do : … : …m53f8e5c73a23293b_d811e140idź do : … : … . Oblicz wartości oraz , które pozwolą umieścić postaci na środku tych samych pól, co na przykładowej planszy poniżej. Wpisz i sprawdź swoją odpowiedź.
Zdjęcie numer . Pojedynczy blok algorytmu.
Na zdjęciu widać pojedynczy blok algorytmu. W bloku znajduje się napis: idź do x: 0 y: 0.
Zdjęcie numer . Przykładowy algorytm programu.
Na zdjęciu widać przykładowy algorytm programu. W pierwszym bloku programu znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. W drugim bloku algorytmu widoczny jest pisak za którym umieszczony jest napis: ustaw rozmiar pisaka na trzy. W trzecim bloku algorytmu widoczny jest pisak za którym jest napis: przyłóż pisak. W czwartym bloku algorytmu znajduje się napis: idź do x: 100 y: 100. W piątym bloku algorytmu znajduje się rysunek pisaka oraz napis: podnieś pisak. W szóstym bloku algorytmu znajduje się napis: zatrzymaj ten skrypt. Po prawej stronie algorytmu znajduje się animowany kot Scratch. Skierowany jest on w prawą stronę i zostawia niebieski ślad po przejściu.
RJ0m3yewCxwZy
Na ilustracji widoczna jest siatka zielonych i czerwonych kwadratów o wielkości dwanaście na dwanaście pól. Zielone pola tworzą ścieżki labiryntu, a czerwone reprezentują ściany. Na początku labiryntu znajduje się myszka a na jednym z końcowych pól jabłko.
Plansza gry - labirynt.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
RDPXmye6rBoyP
Mysz powinna zostać umieszczona na pozycji Tu uzupełnij Tu uzupełnij , Jabłko powinno zostać umieszczone na pozycji Tu uzupełnij Tu uzupełnij.
Mysz powinna zostać umieszczona na pozycji Tu uzupełnij Tu uzupełnij , Jabłko powinno zostać umieszczone na pozycji Tu uzupełnij Tu uzupełnij.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
Scena w środowisku Scratch ma punktów szerokości i wysokości. Wiedząc z rysunku, że kolumna powinna mieć kratek, a wiersz kratek jesteśmy w stanie łatwo obliczyć wielkość pojedynczej kratki.
Pojedyncza kratka powinna mieć zatem punktów szerokości i punktów wysokości.
RhFo8ebuDA3o7
Ćwiczenie 5
Zastanów się, o ile kroków powinna przesunąć się myszka, aby znaleźć się dokładnie na środku następnego pola? Wpisz i sprawdź swoją odpowiedź. Myszka powinna przesunąć się o Tu uzupełnij kroków, aby znaleźć się na środku sąsiedniego pola.
Zastanów się, o ile kroków powinna przesunąć się myszka, aby znaleźć się dokładnie na środku następnego pola? Wpisz i sprawdź swoją odpowiedź. Myszka powinna przesunąć się o Tu uzupełnij kroków, aby znaleźć się na środku sąsiedniego pola.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
RckSKPrTrVIS51
Ćwiczenie 6
Zastanów się, o ile stopni powinien obracać się duszek - mysz w lewą lub w prawą stronę, by mógł poruszać się tylko pionowo (w górę lub w dół) lub poziomo (w prawo lub lewo) między sąsiednimi polami. Załóż, że duszek patrzy w prawo. Duszek powinien obracać się o Tu uzupełnij stopni.
Zastanów się, o ile stopni powinien obracać się duszek - mysz w lewą lub w prawą stronę, by mógł poruszać się tylko pionowo (w górę lub w dół) lub poziomo (w prawo lub lewo) między sąsiednimi polami. Załóż, że duszek patrzy w prawo. Duszek powinien obracać się o Tu uzupełnij stopni.
Źródło: Janusz Wierzbicki, licencja: CC BY 3.0.
1
Ćwiczenie 7
Określ, co ma się stać, gdy mysz wejdzie na czerwone pole.
R1OPQXHln4dCM
Źródło: GroMar, licencja: CC BY 3.0.
Domyślnie mysz może poruszać się jedynie po zielonych polach. Zastanów się jak poinformować gracza, że popełnił błąd oraz jakie powinien ponieść za to konsekwencje.
Przygotujemy rozwiązanie, w którym przyjmiemy, że duszek myszy: wyda dźwięk (np. pop z biblioteki dźwięków) oraz wróci na poprzednie pole.
Zachowaj swoje pomysły - przydadzą się później.
1
Ćwiczenie 8
Określ, co ma się stać, gdy mysz dotrze do jabłka.
RhkDKl1GWe1Y5
Źródło: GroMar, licencja: CC BY 3.0.
Dotarcie do jabłka jest równoznaczne ze skończeniem gry. Gracz powinien zostać powiadomiony, że skończył (wygrał) grę. Następnie wszystkie skrypty powinny zostać zakończone i program powinien skończyć działanie.
Przyjmiemy, że kiedy mysz dotrze do jabłka:
mysz wyświetli w komiksowym dymku napis: „Hura - wygrałam”,
zakończy się działanie wszystkich skryptów.
Zachowaj swoje pomysły - przydadzą się później.
2
Ćwiczenie 9
Określ, jakie klawisze wykorzystasz do sterowania duszkiem - myszą.
R1Mm5vfzk7JZx
Źródło: GroMar, licencja: CC BY 3.0.
Możesz wykorzystać strzałkiklawiatura_strzalkistrzałki, aby sterowanie było intuicyjne i spójne z innymi grami. Nic oczywiście nie stoi na przeszkodzie, żeby skorzystać z innych klawiszy, ale większość gier korzysta ze strzałek lub klawiszy WASDklawiatura_wasdWASD, więc zastosowanie jednego z podanych sposobów sterowania zapewni uniwersalność.
Przyjmiemy, że:
strzałka w prawo: obróć o 90 stopni w prawo,
strzałka w lewo: obróć o 90 stopni w lewo,
spacja: przesuń o jedno pole (40 kroków).
m53f8e5c73a23293b_d811e140
R10Avdqa9ReIg
Na ilustracji widoczny jest kolorowy klocek z napisem Idź do i dwoma polami do wstawiania współrzędnych x i y, obie współrzędne wynoszą zero.
Blok "Idź do x: 0 y: 0" z kategorii "Ruch".
Źródło: GroMar, Pojedynczy blok algorytmu, licencja: CC BY 3.0.
Przesuwa duszka do punktu określonego liczbami zgodnie z aktualnymi ustawieniami pisaka (przyłożony/podniesiony, kolor, grubość).
Przykład:
R14D10B9WwkDg
Na ilustracji widoczny jest schemat blokowy programu komputerowego w postaci sześciu kolorowych, położonych jeden nad drugim klocków tworzących wieżę. Program wykonuje się od góry. Kolory klocków i rodzaje ikon na nich odzwierciedlają rodzaje instrukcji. Od góry są to: pomarańczowy "kiedy kliknięto z zieloną flagę", zielony "Ustaw rozmiar pisaka na 3" z ikoną pisaka, zielony "przyłóż pisak" z ikoną pisaka, niebieski "Idź do punktu o wartościach x 100 y 100", zielony "podnieś pisak" z ikoną pisaka, pomarańczowy "zatrzymaj" z polem wyboru ustawionym na Ten skrypt. Obok schematu blokowego znajduje się linia ukośna poprowadzona w prawo i w dół pod kątem czterdziestu pięciu stopni odzwierciedlająca przemieszczenie kota oraz rysunek kota.
Przykładowy skrypt z wykorzystaniem bloku "Idź do x: ... y: ...".
Źródło: GroMar, Przykładowy skrypt, licencja: CC BY 3.0.
Tworzenie skryptów duszków
W trakcie poprzednich zadań, ustalono następujące reguły dotyczące gry:
Czynności startowe
Ustawienie myszy na polu startowym (np. , ),
Ustawienie jabłka na odpowiednim polu (np. , ),
Sterowanie
Strzałka w prawo: obróć o stopni w prawo,
Strzałka w lewo: obróć o stopni w lewo,
Spacja: przesuń o jedno pole (czyli kroków),
Zdarzenia
Jeśli mysz zostanie wprowadzona na czerwone pole:
wyda dźwięk pop (dostępny w galerii dźwięków),
cofnie się na poprzednie pole.
Jeśli mysz dotrze do jabłka:
wyświetli w dymku komiksowym „Hura! Wygrałam”,
zakończy działanie wszystkich skryptów.
Należy jeszcze ustalić, w którym miejscu skryptów powinna nastąpić kontrola zdarzeń, czyli sprawdzenie, czy mysz nie weszła na czerwone pole lub nie znalazła jabłka. Zacznij jednak od utworzenia skryptów, które zrealizują czynności startowe oraz sterowanie. Później dodasz obsługę zdarzeń.
2
Ćwiczenie 10
Stwórz skrypty dla myszy oraz jabłka, które po wciśnięciu zielonej flagi ustawią duszki na pozycjach startowych. Przetestuj działanie skryptów i sprawdź, czy duszki znalazły się na pozycjach startowych po wciśnięciu zielonej flagi.
Wykorzystaj obliczenia z poprzednich ćwiczeń. Nie zapomnij zakończyć działania tych skryptów.
RVz5E2qAQIcqq
Na zdjęciu widać przykładowy skrypt programu w postaci bloku algorytmów. W pierwszym bloku programu znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. W drugim bloku algorytmu widoczny jest napis: idź do x: minus sto osiemdziesiąt y: sto dwadzieścia. W trzecim bloku algorytmu znajduje się napis: zatrzymaj ten skrypt.
Skrypt odpowiedzialny za ustawienie myszy na polu startowym.
Źródło: GroMar, licencja: CC BY 3.0.
R1UZEJLfc3kWE
Na zdjęciu widać przykładowy skrypt programu w postaci bloku algorytmów. W pierwszym bloku programu znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. W drugim bloku algorytmu widoczny jest napis: idź do x: minus sto osiemdziesiąt y: minus osiemdziesiąt W trzecim bloku algorytmu znajduje się napis: zatrzymaj ten skrypt.
Skrypt odpowiedzialny za ustawienie jabłka na odpowiednim polu.
Źródło: GroMar, licencja: CC BY 3.0.
RX8QJBsa5CZNN
Ćwiczenie 10
Jak nazywa się blok który pozwala ustawić duszka w wybranym miejscu? Możliwe odpowiedzi: 1. ustaw kierunek na ..., 2. Idź do x: ... y: ..., 3. Zmień X o ..., 4. Ustaw Y na ...
Źródło: GroMar, licencja: CC BY 3.0.
2
Ćwiczenie 11
Stwórz skrypty sterujące duszkiem - myszą zgodnie z ustaleniami z poprzednich zadań.
Strzałka w prawo: obróć o stopni w prawo,
Strzałka w lewo: obróć o stopni w lewo,
Spacja: przesuń o jedno pole (czyli kroków).
Przetestuj działanie skryptów. Sprawdź, czy możesz obracać duszka (mysz) oraz przesuwać na planszy.
Każdy ze skryptów zacznij od klocka kiedy klawisz … naciśniętym53f8e5c73a23293b_d811e245kiedy klawisz … naciśnięty. Pamiętaj również, by każdy ze skryptów prawidłowo zakończyć.
RDYMuqleDzE0x
Grafika przedstawia 3 skrypty stworzone w języku Scratch.
Pierwszy z nich zaczyna się od bloku "kiedy klawisz strzałka w lewo naciśnięty". Dołączony jest do niego klocek "obróć w lewo o 90 stopni". Ostatni blok w tym skrypcie to "zatrzymaj ten skrypt".
Drugi zestaw poleceń zaczyna blok "kiedy klawisz strzałka w prawo naciśnięty", po którym występuje "obróć w prawo o 90 stopni", a następnie "zatrzymaj ten skrypt".
Trzeci skrypt tak jak pozostałe składa się z 3 bloków. Są nimi odpowiednio: "kiedy klawisz spacja naciśnięty", "przesuń o 40 kroków" i "zatrzymaj ten skrypt".
Przykładowe skrypty z blokiem "kiedy klawisz ... naciśnięty".
Źródło: GroMar, licencja: CC BY 3.0.
R1GOSkGp7NS2C
Ćwiczenie 11
Zastanów się, jakim blokiem możesz rozpocząć skrypt wciskając jeden z wybranych klawiszy? Możliwe odpowiedzi: 1. Kiedy klawisz ... naciśnięty, 2. Kiedy ten duszek kliknięty, 3. Kiedy kliknięto zieloną flagę
Źródło: GroMar, licencja: CC BY 3.0.
Zwróć uwagę, że duszek - mysz może w tej chwili poruszać się nie tylko po zielonych polach, ale także po czerwonych.
1
Ćwiczenie 12
Wskaż bloki, które można byłoby wykorzystać do zbadania, czy mysz weszła na pole oznaczone kolorem czerwonym. Który z nich będzie najlepiej pasował?
Sprawdź bloki znajdujące się w kategorii Czujniki.
RzOLSBkipNRWw
Na ilustracji widoczny jest bloczek z pytaniem „dotyka koloru” i zaznaczonym kolorem jest czerwony.
Blok Scratch z kategorii "Czujniki" - "dotyka koloru ... ?".
Źródło: GroMar, licencja: CC BY 3.0.
W kategorii Czujniki znajduje się blok dotyka koloru … ?m53f8e5c73a23293b_d811e263dotyka koloru … ? . Dzięki niemu możemy sprawdzić, czy duszek (mysz) dotyka koloru czerwonego, czyli, czy wszedł na zakazane pole (ścianę labiryntu).
Zdjęcie numer . Pojedynczy blok akcji.
Na zdjęciu przedstawiono pojedynczy blok algorytmu sprawdzający czy duszek dotyka koloru. W bloku algorytmu znajduje się napis: dotyka koloru. Za napisem wstawiony jest kolor czerwony.
Zdjęcie numer . Przykładowy skrypt z zastosowanym blokiem akcji.
Na zdjęciu widać przykładowy skrypt z zastosowanym blokiem sprawdzenia czy duszek dotyka koloru. W pierwszym bloku programu znajduje się napis: kiedy kliknięto. Za napisem widoczna jest zielona flaga. W drugim bloku algorytmu widoczny jest napis: idź do x: zero y: zero. Trzeci blok jest blokiem warunku. W bloku znajduje się napis: powtarzaj aż dotyka koloru. Za słowem koloru znajduje się czerwony kolor. Sformułowanie dotyka koloru czerwonego? Znajduje się w bloku akcji. W pierwszym wewnętrznym bloku warunku znajduje się napis: przesuń o pięć kroków. W drugim wewnętrznym bloku znajduje się napis: następny kostium. W trzecim wewnętrznym bloku warunku znajduje się napis: czekaj zero i trzy dziesiąte sekundy. W czwartym bloku algorytmy znajduje się napis: powiedz: doszedłem do ściany! W piątym bloku algorytmu znajduje się napis: zatrzymaj ten skrypt.
1
Ćwiczenie 13
Określ zdarzenia, w których powinniśmy sprawdzić, czy duszek - mysz znajduje się na czerwonym polu?
RRbWnJRJbTyqc
Źródło: GroMar, licencja: CC BY 3.0.
Zastanów się, w którym momencie skryptu odpowiedzialnego za przesuwanie duszka należy sprawdzić, czy ów duszek znajduje się na czerwonym polu.
Jeżeli duszek (mysz) został ustawiony dokładnie na środku pola, to dotknąć czerwonego pola może jedynie po przesunięciu go na pole sąsiednie. Dlatego badanie powinno być wykonane zaraz po przesunięciu duszka - czyli w skrypcie reagującym na naciśnięcie klawisza spacja.
3
Ćwiczenie 14
Zmodyfikuj skrypt wywoływany klawiszem spacja w taki sposób, aby po przesunięciu duszka badał, czy nie znalazł się na czerwonym polu. W tym celu wykorzystaj klocek dotyka koloru … ?m53f8e5c73a23293b_d811e263dotyka koloru … ? oraz klocek jeżeli … tom53f8e5c73a23293b_d811e296jeżeli … to . Połącz je odpowiednio ze sobą. Jeżeli duszek dotyka koloru czerwonego, to zgodnie z planem powinien:
wydać dźwięk pop,
cofnąć się na poprzednie pole.
W celu cofnięcia duszka możesz wykorzystać klocek przesuń o … krokówm53f8e5c73a23293b_d811e306przesuń o … kroków, w którym wpiszesz wartość ujemną. Będzie ona oznaczała ruch do tyłu. Duszek powinien zostać cofnięty dokładnie tyle kroków, o ile przesunął się do przodu. Po zmodyfikowaniu skryptu, przetestuj jego działanie - duszek nie może być na czerwonym polu.
Algorytm działania skryptu powinien wyglądać w następujący sposób.
Kiedy klawisz spacja naciśnięty:
Przesuń o 40 kroków,
Jeżeli dotyka koloru czerwonego: 2.1. Zagraj dźwięk pop, 2.2. Przesuń o -40 kroków.
Zakończ ten skrypt.
Uwaga!
Żeby wybrać dźwięk pop na liście klocka Zagraj dźwięk …m53f8e5c73a23293b_d811e315Zagraj dźwięk … , wcześniej musisz go odszukać w galerii dźwięków i dodać w zakładce Dźwięki.
Uwaga!
Zapoznaj się z filmem ilustrującym, w jaki sposób ustawić prawidłowy kolor dla klocka dotyka koloru … ?m53f8e5c73a23293b_d811e263dotyka koloru … ? tak, aby mysz wiedziała kiedy dotyka ścian labiryntu.
R123KjE7oBpTF
Film przedstawia działanie bloku "dotyka koloru" w środowisku Scratch.
Film przedstawia działanie bloku "dotyka koloru" w środowisku Scratch.
Film przedstawia działanie bloku "dotyka koloru" w środowisku Scratch.
Film przedstawia działanie bloku "dotyka koloru" w środowisku Scratch.
Źródło: GroMar, licencja: CC BY 3.0.
Film przedstawia działanie bloku "dotyka koloru" w środowisku Scratch.
R1OCh2MFQzOMP
Skrypt języka Scratch składający się z 4 głównych bloków. Pierwszy z nich to "kiedy klawisz
Przykładowy skrypt.
Źródło: GroMar, licencja: CC BY 3.0.
R1Xp8QFjIaTu4
Ćwiczenie 14
Zastanów się, w jakiej kategorii znajduje się blok "Jeżeli ... to". Możliwe odpowiedzi: 1. Kontrola, 2. Czujniki, 3. Zdarzenia
Źródło: GroMar, licencja: CC BY 3.0.
Teraz mysz nie może już przebywać na czerwonym polu. Pozostało jeszcze zaprogramować, co ma się stać, gdy dotrze do jabłka.
3
Ćwiczenie 15
Zmodyfikuj skrypt reagujący na naciśnięcie klawisza spacja, w taki sposób, aby sprawdzał po przesunięciu duszka - myszy, czy nie dotyka on duszka - jabłka.
Zgodnie z ustaleniami, jeśli dotyka, to duszek wyświetla napis w komiksowym dymku: „Hura! Wygrałam!” i kończy działanie wszystkich skryptów.
R1FLJ3hOV3xIC
Na ilustracji widoczny jest schemat blokowy. Na pierwszym bloczku jest napis "kiedy klawisz spacja naciśnięty". Pod nim znajduje się bloczek z napisem „przesuń o 40 kroków”. Kolejny bloczek z napisem „jeżeli dotyka koloru czerwonego to”. W pętli umieszczone są kolejne następujące po sobie bloczki z napisami „zagraj dźwięk bird” i „przesuń o -40 kroków”. Następny bloczek z napisem „jeżeli dotyka jabłko to”. W pętli umieszone są kolejne następujące po sobie bloczki z napisami „powiedź Hura! Wygrałam!” przez 2 s” oraz „zatrzymaj wszystko”. Ostatni bloczek w tym schemacie z napisem „zatrzymaj ten skrypt”.
Przykładowy skrypt Scratch z blokiem "powiedz ... przez ... sekund".
Źródło: GroMar, licencja: CC BY 3.0.
R1IQJisTGlc8Y
Ćwiczenie 15
Zastanów się, jak nazywa się kategoria w której możesz znaleźć bloki zwią Możliwe odpowiedzi: 1. Kontrola, 2. Czujniki, 3. Zdarzenia
Źródło: GroMar, licencja: CC BY 3.0.
Ważne!
Zapisz swój projekt pod kolejną nazwą, np. Labirynt 2.
m53f8e5c73a23293b_d811e245
RW1BD4ghhVIcg
Na ilustracji widoczny jest żółty bloczek z napisem „kiedy klawisz spacja naciśniety”.
Przykładowy blok języka Scratch "kiedy klawisz spacja naciśnięty".
Źródło: GroMar, licencja: CC BY 3.0.
Skrypt rozpoczynający się od klocka jest uruchamiany po naciśnięciu wybranego z listy rozwijalnej klawisza na klawiaturze.
Przykład:
RmSvSsGSsMHAk
Na ilustracji widoczny jest schemat blokowy. Pierwszy bloczek z napisem „kiedy klawisz strzałka w prawo naciśniety”. Poniżej bloczek „powiedź Naciśnięto klawisz strzałki w prawo”. Ostatni bloczek „zatrzymaj ten skrypt”. Pod schematem blokowym widoczny jest kot, od którego odchodzi dymek z napisem „Naciśnięto klawisz strzałki w prawo!”.
Przykładowy skrypt z blokiem "kiedy klawisz strzałka w prawo naciśnięty".
Źródło: GroMar, licencja: CC BY 3.0.
m53f8e5c73a23293b_d811e263
RvgT7W3ymmkL0
Na ilustracji widoczny jest bloczek z pytaniem „dotyka koloru” i zaznaczonym kolorem jest fioletowy.
Blok "dotyka koloru ... ?" z kategorii "Czujniki".
Źródło: GroMar, licencja: CC BY 3.0.
Czujnik sprawdza, czy duszek dotyka wybranego koloru na scenie. Aby wybrać kolor, należy kliknąć myszą w kwadracik z kolorem w bloku, następnie wskazać kursorem myszy kolor na ekranie.
Przykład:
Ric0ctu6lho3C
Na ilustracji widoczny jest schemat blokowy. Na pierwszym bloczku znajduje się zielona flaga i napis "kiedy kliknięto". Poniżej na kolejnym bloczku „idź do x:0, y:0”. Kolejny bloczek z napisem „powtarzaj aż dotyka koloru czerwonego?”. W pętli umieszczone są kolejne trzy bloczki z napisami „przesuń o 5 kroków”, „następny kostium” oraz „czekaj 0,3 s”. Następny bloczek „powiedz Doszedłem do ściany”. Ostatni bloczek w tym schemacie z napisem „zatrzymaj ten skrypt”. Obok schematu blokowego znajduje się kot stojący przy ścianie, od którego odchodzi dymek z napisem „Doszedłem do ściany”.
Przykładowy skrypt z zastosowanym blokiem z kategorii "Czujniki".
Źródło: GroMar, licencja: CC BY 3.0.
m53f8e5c73a23293b_d811e296
R4cfacz5oBRSs
Na ilustracji widoczny jest bloczek pętli z napisem „jeżeli żółty to”. Pętla nie zawiera wewnątrz żadnych bloczków.
Bloczek "jeżeli ... to" z kategorii "Kontrola" języka Scratch.
Źródło: GroMar, licencja: CC BY 3.0.
Blok instrukcji warunkowej, zostanie wykonany raz zestaw instrukcji, jeżeli warunek logiczny wstawiony po słowie jeżeli jest prawdziwy. Warunki budujemy z bloczków kategorii Czujniki i Wyrażenia.
Przykład:
R1QYje8fRtxFK
Na ilustracji widoczny jest schemat blokowy. Na pierwszym bloczku znajduje się zielona flaga i napis "kiedy kliknięto". Kolejny jest bloczek z napisem „zawsze”. Jest to bloczek pętli. W pętli umieszczone są kolejne cztery bloczki z napisami „następny kostium”, „czekaj 0,2 s”, „jeżeli klawisz spacja naciśnięty? to” oraz ostatni bloczek „zatrzymaj ten skrypt”.
Przykładowy skrypt.
Źródło: GroMar, licencja: CC BY 3.0.
m53f8e5c73a23293b_d811e306
R1EZNOJVHpjGN
Na ilustracji widoczny jest niebieski bloczek z napisem „przesuń o 10 kroków”.
Pojedynczy blok "przesuń o 10 kroków".
Źródło: GroMar, licencja: CC BY 3.0.
Przesuwa duszka o podaną odległość zgodnie z aktualnym kierunkiem oraz aktualnymi ustawieniami pisaka (przyłożony/podniesiony, kolor, grubość). Jeśli chcemy przesunąć duszka do tyłu, należy podać wartość ujemną. Przykład:
RabAZDTCxOevx
Na ilustracji znajduje się linia pozioma symbolizująca przemieszczenia kota o 100 kroków i rysunek kota. Po lewej stronie ilustracji umieszczony jest schemat blokowy. Na pierwszym bloczku znajduje się zielona flaga i napis "kiedy kliknięto". Poniżej znajduje się bloczek „przyłóż pisak”. Pod nim jest bloczek z napisem „ustaw rozmiar pisaka na 3”. Kolejny bloczek „przesuń o 100 kroków”. Ostatni klocek w tym schemacie to polecenie z napisem „zatrzymaj ten skrypt”.
Przykładowy skrypt z zastosowanym blokiem "przesuń o ... kroków".
Źródło: GroMar, licencja: CC BY 3.0.
m53f8e5c73a23293b_d811e315
RWoJVbRJLdaZF
Na ilustracji widoczny jest bloczek z napisem „zagraj dźwięk” i polem wyboru ustawionym na Miau.
Pojedynczy blok języka Scratch "zagraj dźwięk ...".
Źródło: GroMar, licencja: CC BY 3.0.
Powoduje odtworzenie pliku dźwiękowego wybranego z listy rozwijalnej. Kolejne instrukcje skryptu wykonywane są niezależnie od odtwarzanego dźwięku. W zakładce Dźwięki można dodawać nowe dźwięki z biblioteki lub z pliku oraz nagrać własne. Przykład:
RytNV6IAwnZq4
Na ilustracji po lewej stronie widoczny jest schemat bloczkowy. Na pierwszym bloczku znajduje się zielona flaga i napis "kiedy kliknięto". Poniżej jest bloczek "zagraj dźwięk" z polem wyboru ustawionym na "Miau". Kolejny klocek jest z poleceniem "powiedz" z polem, w którym wpisano z klawiatury "Miauczę!". Ostatni blok to "zatrzymaj" z polem wyboru ustawionym na " ten skrypt". Po prawej stronie ilustracji znajduje się kot, od którego odchodzi dymek z napisem „Miauczę!”.
Przykładowy skrypt z blokiem "zagraj dźwięk ...".
Źródło: GroMar, licencja: CC BY 3.0.
Dodanie licznika żyć myszy
W celu uatrakcyjnienia gry zmień nieco jej scenariusz. Dodaj licznik żyć dla myszy. Przy starcie wartość licznika ustal na przykład na życia. Każde wejście na ścianę będzie odejmowało jedno życie. Jeżeli licznik osiągnie wartość zero, wówczas gra skończy się przegraną.
Realizacja powyższego scenariusza wymaga przechowania informacji o liczbie żyć, czyli danej. Dane mogą być przechowywane przez program w zmiennych.
W uproszczeniu zmienna to skrytka (szufladka), w której przechowuje 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ę.
1
Ćwiczenie 16
Stwórz zmienną i nazwij ją Licznik żyć. Zmienna powinna być dostępna dla wszystkich duszków.
Żeby stworzyć zmienną, należy przejść do kategorii Zmienne.
Skorzystaj, w razie potrzeby, z zamieszczonego poniżej filmu, ilustrującego dodawanie nowej zmiennej.
R1eOV2EIPpq00
Film przedstawiający tworzenie nowej zmiennej w środowisku Scratch.
Film przedstawiający tworzenie nowej zmiennej w środowisku Scratch.
Film przedstawiający tworzenie nowej zmiennej w środowisku Scratch.
Film przedstawiający tworzenie nowej zmiennej w środowisku Scratch.
Źródło: GroMar, licencja: CC BY 3.0.
Film przedstawiający tworzenie nowej zmiennej w środowisku Scratch.
R19d2h4Mqdnml
Ćwiczenie 16
Możliwe odpowiedzi: 1. Zmienne, 2. Czujniki, 3. Zdarzenia
Źródło: GroMar, licencja: CC BY 3.0.
3
Ćwiczenie 17
Zmodyfikuj skrypty w taki sposób, aby uwzględniony został licznik żyć myszy, który na początku przyjmie wartość, np. . Za każdym razem, gdy mysz wejdzie na ścianę, jego wartość zmniejsz o . Gdy wartość osiągnie , wyświetl napis „Koniec gry” przez sekundy, następnie zatrzymaj wszystkie skrypty.
Dodaj polecenie, które ustawi po kliknięciu zielonej flagi wartość licznika np. na życia.
Następnie, w miejscu, w którym sprawdzasz, czy mysz weszła w ścianę, wykonaj instrukcje:
Zmniejsz wartość zmiennej Licznik żyć o .
Sprawdź czy zmienna Licznik żyć jest równa , jeżeli tak to: 2.1. Pokaż komiksowy dymek z komunikatem „Koniec gry!” przez sekundy. 2.2. Zakończ wszystkie skrypty.
RdpSsDMgFNfr9
Na ilustracji widoczne są dwa schematy blokowe znajdujące się po lewej i prawej stronie.
Po lewej jest 6 blokowy schemat. Na pierwszym bloczku znajduje się zielona flaga i napis "kiedy kliknięto". Kolejne bloczki z napisami to „ustaw Licznik żyć na 3”, „idź do x:-180, y:120”, „ustaw rozmiar na 35%”, „na wierzch” oraz ostatni „zatrzymaj tej skrypt.”
Prawa strona rozpoczyna się od bloczku „kiedy klawisz spacja naciśnięty”. Kolejny bloczek jest z napisem „przesuń o 40 kroków”. Poniżej „jeżeli dotyka koloru czerwonego? to”. W nim znajdują się kolejne trzy bloczki „zmień Licznik żyć o -1”, „zagraj dźwięk bird”, „przesuń o -40 kroków”. Kolejny blok z napisem „jeżeli Licznik żyć = 0 to”. Do niego wchodzą dwa kolejne bloczki „powiedz koniec gry :( przez 2 s” i „zatrzymaj wszystko”. Pod nimi znajduje się blok z napisem „jeżeli dotyka jabłko? to”. W nim znajdują się kolejne dwa bloczki: „powiedz Hura! Wygrałam! przez 2 s” oraz „zatrzymaj wszystko”. Ostatni bloczek z tym schemacie to „zatrzymaj ten skrypt”.
Przykładowy skrypt.
Źródło: GroMar, licencja: CC BY 3.0.
Rdc5uetTqTit0
Ćwiczenie 17
Który blok/-i pozwala na edycję wartości zmiennej? Zaznacz prawidłową odpowiedź.
Źródło: GroMar, licencja: CC BY 3.0.
Sprawdź podczas testowania zmian, że nawet gdy mysz straci wszystkie życia, można nią dalej poruszać, a gdy dojdzie do jabłka - wyświetli napis „Hurra! Wygrałam!”. Dalsze poruszanie myszy, wynika z działania środowiska Scratch. Jednak możesz oprogramować grę w taki sposób, aby uniemożliwić wygraną, jeśli mysz nie ma więcej żyć, na przykład poprzez ukrycie jabłka lub zatrzymanie skryptu programowo dodając w skrypcie warunek, który nigdy nie będzie spełniony, np. liczba żyć > 0.
2
Ćwiczenie 18
Jeżeli gra zakończy się, ponieważ mysz wykorzystała wszystkie życia, ukryj jabłko. Wykorzystaj w tym celu zmienną Licznik żyć i zmodyfikuj odpowiednio skrypty duszka - jabłka.
Uwaga!
Nie zapomnij pokazać duszka - jabłka za każdym razem, gdy zostanie naciśnięta zielona flaga!
Duszek - jabłko powinien cały czas sprawdzać, czy zmienna Licznik żyć jest równa . Jeśli jest równa, wówczas powinien zostać ukryty.
R19tZ3PvfbUgW
Na grafice znajdują się 2 skrypt. Pierwszy z nich utworzony jest z 4 bloków. Rozpoczyna się od polecenia "kiedy kliknięto w zieloną flagę". Do klocka dołączony jest kolejny z tekstem "Idź do x: -180 y: -80", po którym natomiast jest klocek "pokaż". Schemat zakończony jest akcją "zatrzymaj wszystko".
Drugi schemat umiejscowiony jest pod pierwszym i zaczyna się blokiem "kiedy klawisz spacja naciśnięty". Następnie dołączony jest klocek "zawsze". Jest on ostatnim głównym klockiem w skrypcie. Zagnieżdżony w nim jest blok "jeżeli
Przykładowy skrypt realizujący wyświetlanie jabłka w zależności od liczby żyć myszy.
Źródło: GroMar, licencja: CC BY 3.0.
R1B3Auw4R9AZR
Ćwiczenie 18
Zastanów się, w jakiej kategorii znajdują się bloki służące do pisania równań matematycznych. Możliwe odpowiedzi: 1. Wyrażenia, 2. Czujniki, 3. Zdarzenia
Źródło: GroMar, licencja: CC BY 3.0.
Ważne!
Zapisz swój projekt pod kolejną nazwą, np. Labirynt 3.
Ciekawostka
Tworząc zmienne, możesz zdecydować, czy chcesz, aby dostęp do danej zmiennej miały tylko skrypty wybranego duszka, czy też wszystkie skrypty, niezależnie od tego, do którego z duszków zostały przypisane. Jeśli w twoim projekcie dwie postaci poruszałyby się po labiryncie, należy stworzyć dwie zmienne na przykład o nazwie Liczba żyć. Jednak każda z tych zmiennych powinna być przypisana w tym przypadku do konkretnego duszka. Dzięki temu obie zmienne nazywałyby się tak samo, ale przechowywały wartość dostępną tylko dla wybranego duszka. Jeżeli chcesz, aby duszki mogły sprawdzić, ile żyć pozostało temu drugiemu, należy utworzyć zmienne o różnych nazwach i udostępnić je wszystkim duszkom. Pamiętaj, żeby nadawać zmiennym takie nazwy, które mówią, co w danej zmiennej jest przechowywane. Unikaj nazw typu Zmienna1, Zmienna2; A, B - zazwyczaj nic one nie znaczą i po pewnym czasie, gdy zajrzysz do skryptów, nie będzie wiadomo do czego były wykorzystane.
Zadania uzupełniające
2
Polecenie 2
Podstawowa wersja gry już działa, jednak sterowanie myszą jest dość trudne. Warto je uprościć, wykorzystując w tym celu na przykład klawisze strzałek w lewo, do góry, w prawo, na dół. Wciśnięcie każdego z tych klawiszy powinno przesunąć duszka w kierunku zgodnym z wciśniętą strzałką. Zastanów się, jak zmodyfikować skrypt reagujący na naciśnięcie klawisza spacji w taki sposób, aby reagował na naciśnięcie klawisza strzałka w dół, a przed przesunięciem duszka ustawił go w kierunku do dołu. Popraw skrypt i przetestuj jego działanie. Następnie zbuduj skrypty, które reagując na klawisze pozostałych strzałek, skierują i przesuną duszka odpowiednio: w górę, w lewo lub w prawo. Pamiętaj, że każdy ze skryptów musi kontrolować, czy w wyniku przesunięcia mysz weszła na czerwone pole lub dotarła do jabłka. Możesz zduplikować skrypt reagujący na klawisz strzałki w dół i przerobić go tak, by reagował na inny klawisz strzałki.
Uwaga!
Usuń skrypty obracające duszka. Nie będą dłużej potrzebne!
Wskazówka
Duplikowanie skryptów: Możesz powielić dowolny skrypt i na jego podstawie stworzyć nowy, wprowadzając odpowiednie zmiany. W tym celu wykonaj poniższe czynności.
Kliknij na pierwszym klocku skryptu od góry prawym klawiszem myszy.
Z menu wybierz opcję duplikuj. Przesuń kursor myszy - będzie się przesuwał razem z powielonym skryptem.
Kliknij lewym klawiszem myszy w miejscu, gdzie będzie znajdował się cały skopiowany skrypt.
2
Polecenie 3
Dodaj drugi kostium dla duszka - jabłka, który będzie wyglądał jak ugryzione jabłko. Następnie dodaj skrypt, który cały czas będzie badał, czy jabłko nie dotyka myszy. Jeżeli dotyka, to kostium zostanie zmieniony na ogryzek, a np. po sekundzie duszek zostanie ukryty.
Uwaga!
Nie zapomnij ustawić kostiumu duszka - jabłka na całe jabłko oraz pokazać duszka za każdym razem, gdy zostanie wciśnięta zielona flaga!
1
Polecenie 4
Dodaj drugie tło z innym labiryntem. Gdy gracz przejdzie przez pierwszy labirynt, zmień tło na następne. Pamiętaj, aby w tym przypadku ponownie ustawić wszystkie duszki na pozycjach startowych. Pozycje te mogą być inne niż na pierwszej planszy.
1
Polecenie 5
Podobnie jak został dodany licznik żyć, można wprowadzić zdobywanie punktów. Punkty dodajemy na przykład za liczbę zebranych jabłek. W tym wypadku warto dodać kilka dodatkowych jabłek na planszy. Gra może kończyć się zwycięstwem, gdy gracz zbierze wszystkie jabłka.
2
Polecenie 6
Zrealizuj własne pomysły, co ma się stać, gdy mysz wejdzie na ścianę lub dotrze do jabłka. Zmodyfikuj projekt zgodnie z nimi.
3
Polecenie 7
Dodaj do gry nowe duszki, które będą przeszkadzały myszy dotrzeć do jabłka. Mogą one poruszać się w określonych miejscach labiryntu, przenikać przez ściany lub działać tak, jak to zaplanujesz. Zastanów się również, w jaki sposób mysz powinna reagować na spotkanie z nimi, czy na przykład zakończyć grę, czy wrócić do punktu startowego? A może tylko stracić punkty lub zareagować w inny sposób?
2
Polecenie 8
Dodaj plansze (nowe tła sceny), które pokazane zostaną, gdy gra się zakończy - zwycięstwem lub przegraną myszy.
klawiatura_strzalki
RWPjGNdDyQQEn
Grafika przedstawia klawiaturę z wyróżnionymi klawiszami strzałek w kolorze żółtym.
Klawiatura z wyróżnionymi klawiszami strzałek.
Źródło: Tomiĉo | Wikimedia, licencja: CC BY 3.0.
klawiatura_wasd
RzvdHiojaNUkg
Grafika przedstawia klawiaturę z wyróżnionymi klawiszami WASD w kolorze niebieskim.