Kodu, zbierzesz dla mnie trochę jabłek?

Z Zasoby CoderDojo
Skocz do: nawigacji, wyszukiwania

Cele

Na dzisiejszych zajęciach uczniowie poznają mechanizmy przyznawania i naliczania punktów za wykonywanie określonych czynności, co jest bardzo powszechne w grach, zarówno komputerowych, jak i tych tradycyjnych.

Założenia

Tym razem stworzymy również drugiego Kodu, który zachęca nas do wspólnego zbierania jabłek z drzewa. Należy więc stworzyć drzewo, na którym będą rosły jabłka oraz dwóch Kodu, między którymi będą zachodziły odpowiednie interakcje.

Kodu, zbierzesz dla mnie trochę jabłek?

Stworzenie drzewa, na którym rosną jabłka.

Tym razem nie potrzebujemy skomplikowanej mapy. Wystarczy nam zwykły, podstawowy świat, ale odrobinę większy, niż świat domyślny, czyli ten, który widzimy po uruchomieniu nowego świata.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 1.jpeg

Na początek użyjmy więc narzędzia Rysuj, dodaj lub usuń podłoże i powiększmy nieco obszar naszego świata, czyli dorysujmy trochę trawy.
Teraz, kiedy nasz świat jest już gotowy, umieśćmy na nim drzewo. W tym celu wybierzmy narzędzie Dodaj i programuj obiekty, kliknijmy w miejscu, gdzie chcemy umieścić drzewo i z menu wybierzmy element Drzewo.
Następnie, z grupy drzew widocznej w kolejnym menu wybierzmy dowolne z nich - dla naszego zadania nie ma znaczenia, które drzewo wybierzemy. Kolejnym krokiem będzie zaprogramowanie drzewa tak, by rosły na nim jabłka - w Kodu Game Lab jabłka będą po prostu pojawiały się pod drzewem.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 2.jpeg

Aby zaprogramować drzewo, tak jak zawsze klikamy na nie prawym przyciskiem myszy i z rozwijanej listy wybieramy Program.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 3.jpeg

Gotowa instrukcja powinna wyglądać dokładnie tak, jak na ilustracji poniżej. Spójrzmy na kolejne strony, w jaki sposób wykonać tę instrukcję krok po kroku.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 4.jpeg

Jabłko, jak każdy owoc, potrzebuje czasu, by urosnąć i dojrzeć. Dlatego my, zgodnie z tą podstawową zasadą natury, również zaprogramujemy drzewo tak, by jabłka rosły zgodnie z biegiem czasu.
Zatem podstawowym warunkiem naszej funkcji będzie upływ czasu, dlatego po kliknięciu na żółty plus w polu Kiedy wybierzmy opcję Czas.
Warto wyjaśnić uczniom, dlaczego wybraliśmy właśnie czas, jako podstawowy warunek wzrostu jabłek. Wbrew pozorom, podczas programowania, zwłaszcza przy tworzeniu gier, należy zwracać dużą uwagę na zjawiska zachodzące w przyrodzie oraz logikę, z czego uczniowie, nie tylko najmłodsi, mogą nie zdawać sobie sprawy. Natomiast ten fakt może dodatkowo zainteresować ich również innymi przedmiotami, takimi jak przyroda i matematyka, a na późniejszych etapach edukacji, również fizyka, czy chemia.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 5.jpeg

Po kliknięciu na Czas kliknijmy jeszcze raz na żółty plus, aby ustawić dodatkowe parametry tego warunku. Do wyboru mamy kilka opcji dotyczących długości czasu. My wybieramy opcję Losowo.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 6.jpeg

Ponownie kliknijmy na żółty plus i ustawmy jeszcze jeden parametr. Tym razem wybierzmy 30 sekund.
Taka konfiguracja sprawiła, że jabłka będą pojawiały się i spadały z drzewa losowo, w przedziale czasowym od 0 do 30 sekund. Zatem ich pojawianie się będzie nieregularne - komputer sam będzie losował, kiedy będą pojawiały się kolejne jabłka, jednak nie rzadziej, niż co 30 sekund.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 7.jpeg

Warunek jest już ustawiony. Teraz przejdziemy do stworzenia zdarzenia, czyli sprawimy, by jabłka pojawiały się zgodnie z ustalonym przed chwilą upływem czasu.
Klikamy więc w tym momencie na żółty plus w polu Wykonaj i wybieramy Akcje, a następnie, w kolejnym menu klikamy na Utwórz.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 8.jpeg

Został nam już ostatni krok - klikamy ponownie na żółty plus w polu Wykonaj i z dostępnego menu, w którym widzimy opcje dla zdarzenia Utwórz, wybieramy Jabłko.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 9.jpeg

Gotowe. Teraz kliknijmy w menu głównym świata na przycisk Graj grę i sprawdźmy, czy jabłka rzeczywiście pojawiają się pod drzewem.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 10.jpeg

Zadanie ukończone.

Zaprogramowanie Kodu, by zbierał jabłka i przekazywał je drugiemu Kodu.

Instrukcja 1

Na drzewie rosną już jabłka. Teraz stworzymy i zaprogramujemy pierwszego Kodu, by ten mógł jabłka zbierać i przekazywać je drugiemu Kodu. Przyjrzyjmy się, jak powinny wyglądać kompletne instrukcje do realizacji tych czynności:

Kodu zbierzesz dla mnie troche jabłek kzdmtj 11.jpeg

Czyli:

  1. Zaprogramowanie ruchu Kodu - ta instrukcja była już realizowana dwukrotnie na poprzednich zajęciach, zatem uczniowie powinni stworzyć ją samodzielnie.
  2. Gdy Kodu zderzy się z [warunek] obiektem - jabłko [parametr warunku], to jabłko zostanie podniesione [zdarzenie].
  3. Gdy Kodu zderzy się z [warunek] obiektem - Kodu [parametr warunku], to jabłko zostanie mu przekazane [zdarzenie].

Gdy tylko wszyscy uczniowie samodzielnie wykonają instrukcję ruchu dla pierwszego Kodu, należy przejść do wspólnego wykonania instrukcji nr 2. W tym celu kliknijmy na żółty plus w polu Kiedy, w drugim rzędzie naszych instrukcji i wykonajmy wszystkie czynności zaprezentowane na kolejnych stronach.

Instrukcja 2

Ta instrukcja pozwoli Kodu zbierać jabłka, by nasza postać mogła przemieszczać się razem z nimi. Po kliknięciu na żółty plus w polu Kiedy, wybieramy opcję Zderzenie. Kodu może przenosić jabłka tylko pojedynczo. Nie ma możliwości przeniesienia dwóch i więcej jabłek jednocześnie.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 12.jpeg

Po wybraniu opcji Zderzenie, teraz musimy ustalić, z czym konkretnie Kodu ma się zderzyć. Ponownie klikamy więc na żółty plus i wybieramy pozycję Obiekty, bo w tej grupie znajduje się nasze jabłko.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 13.jpeg

Po kliknięciu na Obiekty otwarty został kolejny poziom menu - tutaj wybieramy Jabłko.
Nasz warunek, polegający na zderzeniu z jabłkiem, jest już gotowy. Teraz ustawimy zdarzenie dla stworzonego właśnie warunku, czyli zbieranie jabłek.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 14.jpeg

W polu Wykonaj klikamy na żółty plus i z menu wybieramy Złap.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 15.jpeg

Po kliknięciu na Złap otwarty został kolejny poziom menu, gdzie wybieramy opcje dla wybranego zdarzenia. Tutaj klikamy Podnieś.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 16.jpeg

Instrukcja 2 jest już wykonana. Teraz nasz panel programowania obiektu powinien wyglądać następująco:

Kodu zbierzesz dla mnie troche jabłek kzdmtj 17.jpeg

Przejdźmy do wykonania instrukcji nr 3.

Instrukcja 3

Kolejna, ostatnia już instrukcja dla pierwszego Kodu sprawi, że ten będzie mógł przekazywać jabłka drugiemu Kodu.
Przechodzimy więc do trzeciego rzędu instrukcji i tam, w polu Kiedy klikamy na żółty plus, po czym wybieramy Zderzenie, czyli opcję, którą wykorzystaliśmy przed chwilą.
Następnie klikamy ponownie na żółty plus, by ustawić parametr zderzenia. Tutaj wybieramy pozycję Kodu.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 18.jpeg

Teraz przechodzimy do pola Wykonaj. Klikamy tutaj żółty plus i klikamy Złap. Następnie, z grupy dostępnych opcji, tym razem wybieramy Przekaż.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 19.jpeg

To koniec tworzenia instrukcji dla Kodu. Przyciskiem Graj grę włączmy program i sprawdźmy, czy Kodu może zbierać oraz przenosić jabłka. Jeśli tak, możemy przejść do następnego zadania, czyli stworzenia drugiego Kodu, który będzie te jabłka odbierał i naliczał punkty dla naszego Kodu.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 20.jpeg

Zadanie ukończone.

Zaprogramowanie drugiego Kodu, by odbierał jabłka i przyznawał punkty.

Na drzewie rosną jabłka, zaś pierwszy Kodu potrafi je zbierać i może przekazywać owoce drugiemu Kodu. Zatem, jak łatwo się domyślić, brakuje nam już tylko drugiego Kodu, który mógłby te jabłka odbierać i w zamian przyznawać nam punkty. Ta część będzie najbardziej skomplikowana, jednak przy omówieniu w schemacie krok-po-kroku nie powinna sprawić uczniom problemów w zrozumieniu działania tych instrukcji.
Na początku zacznijmy od dodania drugiego Kodu. Uczniowie wiedzą już, jak to zrobić, więc nie ma potrzeby omawiania szerzej tej czynności. Tym razem zmienimy jednak kolor Kodu, czego wcześniej nie robiliśmy. Dzięki temu odróżnimy obie postacie. Po dodaniu drugiego Kodu, kiedy ten jest aktywny (wystarczy najechać kursorem myszy), za pomocą strzałek w prawo i w lewo zmieńmy jego kolor na dowolny.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 21.jpeg

Spójrzmy, jak powinny wyglądać wszystkie kompletne instrukcje dla drugiego Kodu:

Kodu zbierzesz dla mnie troche jabłek kzdmtj 22.jpeg

Czyli:

  1. Gdy do Kodu podejdzie [warunek] blisko pierwszy Kodu [parametr warunku], to drugi Kodu wypowie zdanie [zdarzenie] jeden raz [parametr zdarzenia].
  2. Gdy Kodu posiada [warunek] jabłko [parametr warunku], to jabłko zostanie przez niego zjedzone [zdarzenie].
  3. (Tylko wtedy, gdy instrukcja nr 2 zostanie wykonana) Zawsze [warunek] przyznaj punkty [zdarzenie] czerwonej grupie [parametr zdarzenia] losowo [parametr zdarzenia] z przedziału od 1 do 5 [parametr zdarzenia] jeden raz [parametr zdarzenia].
  4. Kiedy liczba punktów [warunek] będzie większa niż [parametr warunku] 10 punktów [parametr warunku] to drugi Kodu wypowie zdanie [zdarzenie] jeden raz [parametr zdarzenia].
  5. (Tylko wtedy, gdy instrukcja nr 4 zostanie wykonana) Gdy upłynie czas [warunek] o długości 5 sekund [parametr warunku], to nastąpi Wygrana [zdarzenie].

Instrukcje nr 3 oraz 5 są zależne od innych instrukcji, w tym wypadku kolejne są to 2 oraz 4. Czyli instrukcja 3 wystąpi tylko wtedy, kiedy wykona się instrukcja 2, zaś instrukcja 5 wystąpi tylko wtedy, gdy wykona się instrukcja 4. Dlatego te dwie instrukcje są „wsunięte” pod te, od których zależy ich uruchomienie.
Innymi słowy punkty zostaną przyznane tylko wtedy, gdy Kodu utrzyma jabłko zaś gra zostanie zakończona tylko wtedy, gdy liczba punktów przekroczy 10 - w programowaniu funkcja opisywana jest jako if (ang. jeśli).

Instrukcja 1

Przejdźmy więc do stworzenia instrukcji - zaczniemy od instrukcji nr 1, gdzie drugi Kodu mówi do pierwszego, jeśli ten podejdzie blisko. Podobną instrukcję wykonywaliśmy w scenariuszu 2.
Klikamy prawym klawiszem na drugiego Kodu, wybieramy Program i w polu Kiedy, po kliknięciu na żółty plus, wybieramy Oczy.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 23.jpeg

Ponownie klikamy na żółty plus, by ustawić teraz parametr dla warunku Oczy. Z menu wybieramy pozycję Kodu.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 24.jpeg

Kolejny raz klikamy na żółty plus, ponieważ pozostał nam do ustawienia jeszcze jeden parametr. W otwartym menu wybieramy Opcje, a następnie klikamy Blisko.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 25.jpeg

Warunek jest już ustawiony, przejdźmy teraz zatem do stworzenia zdarzenia. W polu Wykonaj kliknijmy na żółty plus i wybierzmy Akcje, a następnie Powiedz.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 26.jpeg

W oknie ustawień mowy wpiszmy dwie kwestie, jak na poniższej ilustracji. Ich wyświetlanie ustawmy jako Dymek, wskaż linię losowo i kliknijmy na Zapisz.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 27.jpeg

Teraz pozostało nam tylko ustawienie, by Kodu mówił tylko jeden raz, gdy zbliży się do niego pierwszy Kodu. Tak więc po kliknięciu na żółty plus, wybieramy Raz.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 28.jpeg

Instrukcja 2

Poprzednia instrukcja jest już zakończona, czas więc przejść do kolejnej. Druga instrukcja mówi o tym, że Kodu będzie zjadał jabłko, jak tylko je dostanie.
W drugim rzędzie instrukcji klikamy na żółty plus w polu Kiedy. Następnie z menu wybieramy więcej i klikamy na Posiada.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 29.jpeg

Teraz ponownie kliknijmy na żółty plus i wybierzmy Obiekty, a następnie Jabłko.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 30.jpeg

Kolejny, ostatni już krok w tej instrukcji, to ustalenie, co Kodu ma zrobić z jabłkiem. Kliknijmy więc na żółty plus w polu Wykonaj i z menu wybierzmy Jedz.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 31.jpeg

Instrukcja 3

Ta instrukcja zależna jest od wystąpienia instrukcji nr 2 i to ona przyznaje nam punkty za jabłka. Tak więc w trzecim rzędzie, w polu Kiedy kliknijmy na żółty plus i wybierzmy Więcej, a następnie Zawsze. Zawsze dlatego, to ta instrukcja ma uruchamiać się zawsze, jeśli uruchomi się instrukcja 2.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 32.jpeg

Teraz w polu Wykonaj kliknijmy na żółty plus i wybierzmy element Gra, a następnie +Punkt.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 33.jpeg

Widzimy kolejny poziom menu, gdzie do dyspozycji mamy ilości punktów do przyznania. My wybierzemy jednak pozycję Wyniki, która przeniesie nas do jeszcze jednego poziomu menu.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 34.jpeg

Tutaj wybierzmy Czerwony. Poszczególne kolory oznaczają grupy punktów. Ta opcja przydaje się zwłaszcza wtedy, gdy w jednej grze uczestniczy kilku graczy - każdy gracz ma na ekranie widoczne swoje punkty, oznaczone indywidualnym kolorem.

Teraz ponownie kliknijmy na żółty plus i wybierzmy Losowo. Oznacza to, że punkty będą przydzielane losowo z przedziału, który za chwilę ustalimy. Zasada działania tej części instrukcji jest taka sama, jak w przypadku drzewa i czasu potrzebnego na dojrzewanie jabłek.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 36.jpeg

Ponownie klikamy na żółty plus, tym razem po to, by ustalić wielkość przedziału liczbowego, z którego przyznawane będa punkty, o czym wspomniałem wcześniej.
Z widocznych na ekranie opcji wybieramy 5 Punktów.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 37.jpeg

Jeszcze raz, już ostatni, klikamy na żółty plus. Teraz wybieramy Raz, bo przecież chcemy, by punkty były przyznawane jednorazowo za każde jabłko.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 38.jpeg

Kiedy nasza instrukcja jest już skończona, możemy przyporządkować ją do instrukcji nr 2, czyli „wsunąć” ją pod tę instrukcję. W tym celu klikamy lewym przyciskiem myszy na liczbę 3, oznaczającą numer instrukcji i kiedy zobaczymy dwie strzałki, jak na poniższej ilustracji, przytrzymując lewy przycisk myszy na liczbie 3, przeciągamy instrukcję w prawa stronę.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 39.jpeg

Instrukcja 4

Teraz przechodzimy do instrukcji nr 4, czyli do mechanizmu, który będzie sprawdzał, czy liczba punktów przekroczy 10. Jeśli tak to uruchomi się instrukcja nr 5, ale o niej za chwilę. W czwartym rzędzie kliknijmy na żółty plus w polu Kiedy. Następnie wybierzmy Punkty.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 40.jpeg

Po kliknięciu na punkty, ponownie wybierzmy żółty plus i w dostępnym menu wybierzmy Porównaj, a następnie Nad. Czyli naszym warunkiem jest, by ilość punktów była większa od jakiejś ustalonej przez nas wartości.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 41.jpeg

Teraz musimy więc ustalić wartość, po przekroczeniu której warunek zostanie spełniony. Kliknijmy żółty plus i wybierzmy 10 punktów.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 42.jpeg

Kolejnym krokiem będzie skonfigurowanie kwestii wypowiadanej przez drugiego Kodu po tym, jak zbierzemy więcej, niż 10 punktów. Zatem klikamy na żółty plus w polu Wykonaj, następnie wybieramy Akcje, później Powiedz i w oknie ustawień mowy wpisujemy następujące zdanie:

Kodu zbierzesz dla mnie troche jabłek kzdmtj 43.jpeg

Wybierzmy Dymek, wskaż linię sekwencyjnie, ponieważ mamy tylko jedną linię tekstu i następnie kliknijmy Zapisz.
Ustawmy jeszcze, by kwestia ta była wypowiadana tylko jeden raz. Co prawda nie będzie możliwości wypowiedzenia jej kolejny raz, po gra dobiegnie końca, jednak z pewnością nie zaszkodzi, by uczniowie powtórzyli sobie jeszcze raz ten schemat. Zatem klikamy na żółty plus i wybieramy Raz.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 44.jpeg

Instrukcja 5

Do wykonania została nam już tylko ostatnia instrukcja. Ta, która odpowiada za ukończenie gry po zdobyciu więcej, niż 10 punktów. Oczywiście ten pierwszy warunek, czyli zdobycie wymaganej ilości punktów, warunkuje instrukcja nr 4 i dopiero po jej wykonaniu uruchomi się instrukcja nr 5, czyli ta, która zakończy rozgrywkę.
W instrukcji zawrzemy warunek, by gra kończyła się dopiero po kilku sekundach od momentu zebrania punktów. Dzięki temu drugi Kodu zdąży wypowiedzieć swoją kwestię.
Tak więc w piątym rzędzie, w polu Kiedy klikamy na żółty plus i wybieramy Czas.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 45.jpeg

Następnie po ponownym kliknięciu na żółty plus wybieramy 5 sekund.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 46.jpeg

Teraz, w polu Wykonaj klikamy na żółty plus, dalej wybieramy Gra, a następnie Wygrana.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 47.jpeg

Teraz musimy jeszcze „wsunąć” tę instrukcję pod instrukcję nr 4. Dokładnie tak, jak zrobiliśmy to w przypadku instrukcji nr 3. Gotowe. Zadanie jest już zakończone, możemy teraz w menu głównym świata wybrać Graj grę i zagrać w grę, którą stworzyliśmy.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 48.jpeg

Gdy podejdziemy do drugiego Kodu, ten zada nam pytanie, czy możemy pomóc zbierać mu jabłka:

Kodu zbierzesz dla mnie troche jabłek kzdmtj 49.jpeg

Po zebraniu odpowiedniej ilości punktów drugi Kodu powie nam, że wykonaliśmy nasze zadanie:

Kodu zbierzesz dla mnie troche jabłek kzdmtj 50.jpeg

Po upływie 5 sekund na ekranie pojawi się komunikat o zakończonej grze.

Kodu zbierzesz dla mnie troche jabłek kzdmtj 51.jpeg

Zadanie ukończone.