Zmiany

Skocz do: nawigacji, wyszukiwania

Akwarium

Dodane 14 438 bajtów, 20:38, 5 lis 2016
[[Plik:a09.jpg]]
 
 
====Dodajemy(ruch(dla(rybki((====
Zaglądamy do naszych notatek, co robią rybki w akwarium i wybieramy punkt dotyczący ich ruchu. Na początek będziemy chcieli, żeby rybki zaczęły pływać. Prosimy, by uczestnik(cy) odnaleźli kategorię dotyczącą ruchu i odpowiedni klocek.
 
[[Plik:a10.jpg]]
 
Zwracamy uwagę, że mogą zmienić liczbę kroków, o jaką duszek będzie się przysuwał - np. na 20. Prosimy, aby kliknęli go parę razy i sprawdzili co się dzieje (przesuwa się). Następnie prosimy, żeby klocek przesuń o (10) kroków przesunięty został w obszar skryptu. Pytamy, co trzeba zrobić, aby uruchomić program (kliknąć znaczek zielonej flagi). Pytamy, czy rybka teraz się porusza? (nie). Zadajemy pytanie, czy czegoś nam brakuje? (klocek nie jest z niczym połączony - ani od góry, ani od dołu - a jego wygląd sugeruje, że powinien). Prosimy, by uczestnik(cy) odnaleźli odpowiednie klocki pasujące z obu stron. Najpierw klocek reagujący na kliknięcie zielonej flagi.
'''''Wskazówka''' W razie potrzeby, podpowiadamy, gdzie ich szukać (w jakich kategoriach - odpowiednio Zdarzenia oraz Kontrola.''
 
[[Plik:a11.jpg]]
 
Prosimy, aby przesunęli i połączyli klocek z wcześniej dodanym.
 
[[Plik:a12.jpg]]
 
Następnie prosimy o odnalezienie klocka kończącego program, którego nie da się połączyć od do łu z żadnym innym klockiem. Podpowiadamy, że czasem nie widać wszystkich klocków i trzeba skorzystać z możliwości przewijania listy, na której się znajdują. Uczestnicy powinni odnaleźć klocek zatytułowany zatrzymaj wszystko oraz zauważyć, że można go przestawić na tryb zatrzymaj ten skrypt, lub zatrzymaj inne skrypty duszka.
 
 
[[Plik:a13.jpg]]
 
'''''Wskazówka''' Klocek zatrzymaj wszystko zatrzymuje wszystkie skrypty stworzone przez programistę. Klocek zatrzymaj ten skrypt zatrzymuje działanie skryptu, w którym został użyty, zaś zatrzymaj inne skrypty duszka zatrzymuje pozostałe skrypty z wyjątkiem tego, w którym został użyty. Przyda się to w dalszej części zajęć.''
 
Prosimy, aby przesunęli i połączyli klocek z wcześniej dodanym.
 
[[Plik:a14.jpg]]
 
Następnie prosimy o przetestowanie programu, tj. kliknięcie zielonej flagi. Rybka porusza się tylko o wpisaną liczbę kroków. Dyskutujemy, że my byśmy chcieli, by poruszała się cały czas.
Proponujemy odszukanie odpowiedniego klocka, który mógłby spowodować, że rybka będzie się poruszała cały czas - inaczej mówiąc zawsze.
 
'''''Wskazówka''' W razie potrzeby, podpowiadamy, gdzie go szukać (w jakiej kategorii - Kontrola)''
 
[[Plik:a15.jpg]]
 
Prosimy, aby przesunęli i połączyli klocek z wcześniej dodanymi. Pokazujemy jak rozłączać i łączyć klocki. Zauważamy, że jeden z klocków - Zatrzymaj ten skrypt nie da się (sensownie) ponownie połączyć, więc możemy go wyrzucić przesuwając nad klocki znajdujące się w środkowej kolumnie.
 
[[Plik:a16.jpg]]
 
Następnie prosimy o przetestowanie programu, tj. kliknięcie zielonej flagi. Rybka porusza się, aż dotrze do krawędzi sceny. Podpowiadamy, że możemy ją chwycić myszką i przesunąć w inne miejsce, ale zawsze będzie podążała do krawędzi sceny w tą samą stronę.
 
Proponujemy by odszukać w kategorii Ruch klocek, który umożliwił by jej zmianę kierunku ruchu po dotarciu do krawędzi sceny, czyli odbicie od krawędzi sceny.
 
[[Plik:a17.jpg]]
 
Zadajemy pytanie, gdzie powinniśmy wstawić ten klocek, a następnie prosimy by uczestnicy przetestowali jego działanie - jeżeli program nie był wcześniej zatrzymany - klocek zacznie działać automatycznie.
 
[[Plik:a18.jpg]]
 
Zauważamy, że rybka pływa bardzo szybko - zadajemy pytanie, co zrobić, by ją zwolnić (zmienić liczbę kroków, o jaką się przesuwa przy każdym wykonaniu polecenia - np. na 5).
Prosimy o spowolnienie rybki i przetestowanie programu.
Następnie zauważamy, jeżeli uczestnicy sami tego nie zrobili, że po odbiciu rybka płynie na plecach - brzuszkiem do góry. Prosimy by odnaleźli odpowiedni klocek w kategorii Ruch, który pozwoliłby zmienić sposób obracania się rybki.
[[Plik:a19.jpg]]
 
Dyskutujemy, gdzie należy umieścić ten klocek. W razie potrzeby tłumaczymy, że wystarczy go zamieścić przed pętlą zawsze, bo nie ma potrzeby za każdym razem powtarzać tego ustawienia. To jest także okazja, do wytłumaczenia pojęcia pętli oraz jak działa pętla zawsze (znajdujące się w niej polecenia są powtarzane po kolei bez końca - jak wykonane zostanie ostanie polecenie znajdujące się wewn ątrz pętli, wracamy do pierwszego z nich).
[[Plik:a20.jpg]]
 
Dyskutujemy, czego nam teraz brakuje w ruchu naszej rybki (żeby pływała bardziej chaotycznie - trochę do góry, trochę na dół).
Prosimy o odnalezienie klocka, który pozwoliłby na obrócenie rybki - czyli zmianę kierunku jej ruchu.
 
[[Plik:a21.jpg]]
 
Uczestnicy powinni znaleźć klocki obróć o 15 stopni. Zwracamy uwagę, że jeden obraca duszka zgodnie z ruchem wskazówek zegara, drugi w przeciwną stronę. Mogą zauważyć także inne klocki związane z kierunkiem ruchu np. ustaw kierunek na 90 stopni lub ustaw w stronę. Tłumaczymy jednak w razie potrzeby, że te klocki także można wykorzystać, lecz na razie zależy nam na obróceniu rybki. Różnica polega na tym, że w przypadku klocka obróć o 15 stopni, obrót nastąpi w zależności od aktualnego kierunku. W przypadku pozostałych klocków postać ustawi się niezależnie od niego.
 
'''''Uwaga''' !!! W tym miejscu, w zależności od wieku uczestników, możemy wyjaśnić co to są stopnie, że pełny obrót to 360 stopni, więc 15 stopni, to niewielki obrót. Nie wdajemy się jednak w zbyt wiele szczegółów - możemy to wyjaśniać na dalszym etapie, gdy dodamy klocek obróć o 15 stopni i rybka będzie kręciła się w kółko.''
 
Dyskutujemy, gdzie należy umieścić ten klocek (wewnątrz pętli zawsze). Prosimy o jego zamieszczenie i sprawdzenie, jak zachowuje się rybka.
 
[[Plik:a22.jpg]]
 
Rybka porusza się po okręgu - mniejszym lub większym, w zależności od liczby kroków podanej w klocku przesuń o (10) kroków. Możliwy jest również przypadek, gdzie rybka będzie odbijała się od brzegu - wówczas jej ruch będzie odbywał się „wężykiem” tuż przy krawędzi sceny.
Dyskutujemy, co by należało zmienić, by rybka zachowywała się bardziej losowo? Odpowiedzi mogą być różne - w razie potrzeby naprowadzamy uczestników, że rybka powinna zmieniać kierunek swojego ruchu o losowy kąt - inny za każdym wykonaniem pętli.
Prosimy by uczestnicy w kategorii Wyrażenie odnaleźli odpowiedni klocek, pozwalający wylosować wartość kąta, o jaki rybka zmieni kierunek ruchu po każdym przesunięciu się.
 
[[Plik:a23.jpg]]
 
Prosimy by wstawili go w odpowiednie miejsce i przetestowali działanie.
 
[[Plik:a24.jpg]]
Jest nieco lepiej, ale rybka porusza się dość monotonnie, a tor jej ruchu jest zawsze związany z pętlami zataczanymi w jedną stronę.
Wspólnie z uczestnikami zastanawiamy się, co powinniśmy zmienić, żeby ruch był jeszcze bardziej przypadkowy, a więc odpowiadał zachowaniu prawdziwej rybki w akwarium. Powinniśmy wspólnie dojść do wniosku, że rybka po każdym przesunięciu się, powinna losowo skręcić w lewą lub prawą stronę.
W zależności od wieku uczestników, możemy podać jedno z rozwiązań:
- dostawienie drugiego klocka obrotu, ale o przeciwnym zwrocie np. klocka obróć w lewo o (losuj od 1 do 10)
- zmienić wartości w dotychczas wstawionym klocku, by losowanie odbywało się między wartością -10 a 10.
Dość łatwo wyjaśnić, że obrót o -10 stopni, to obrót w przeciwnym kierunku, niż wskazuje strzałka na klocku obrotu. Warto o to zapytać uczestników i w razie potrzeby naprowadzić ich na prawidłową odpowied ź. Najlepiej poprosić by działanie liczby ujemnej wypróbowali w swoim programie, umieszczając taką wartość w odpowiednim klocku.
Oba rozwiązania będą miały podobne działanie.
 
[[Plik:a25.jpg]]
 
'''''Wskazówka''' Niezależnie od wybranego rozwiązania warto poprosić uczestników o poeksperymentowanie ze zmianą wartości losowanych i obserwowanie zmian w zachowaniu rybki.''
 
'''''Uwaga do realizacji zajęć !!!''' W tym miejscu możemy zakończyć etap tworzenia skryptu rybek i przejść do skopiowania go dla pozostałych duszków lub rozwijać dalej, w zależności od zainteresowania uczestników i czasu, jaki mamy do dyspozycji''
 
 
====Dodanie(reakcji(na(„puknięcie(w(ściankę(akwarium”(====
Wspólnie zastanawiamy się, jak rybka ma reagować na pukanie w ściankę akwarium, czyli klikniecie myszką w dowolny punkt sceny. Reakcje mogą by ć dwie, zgodnie z zapisanymi wcześniej punktami. Rybka może uciekać lub potraktować to jako coś interesującego (np. sygnał karmienia) i podpłynąć w kierunku pukania. Prostsze na tym etapie będzie skierowanie rybki w kierunku kliknięcia, więc takie rozwiązanie powinniśmy zasugerować uczestnikom.
Prosimy, by uczestnicy poszukali klocka reagującego na wciśnięcie klawisza myszy w kategorii Czujniki.
[[Plik:a26.jpg]]
 
Prosimy, by uczestnicy przenieśli znaleziony klocek do obszaru skryptów, ale na razie nie łączyli go z innymi.
Zadajemy pytanie, czy ten klocek możemy połączyć z jakimś innym, znajdującym się w naszym skrypcie (nie, sadząc po kształcie).
Prosimy, by w kategorii Kontrola uczestnicy odnaleźli klocek, pozwalający wykonać
!
Wersja beta instrukcji Strona 12 z 16!
jakieś polecenie, pod warunkiem, że został wciśnięty klawisz myszy? Sugerujemy, by kierowali się jego nazwą oraz możliwością połączenia z klockiem wciśnięty klawisz myszy? - wcześniej znalezionym.
 
[[Plik:a27.jpg]]
 
W razie potrzeby nakierowujemy uczestników na prawidłowe rozwiązanie.
 
'''''Wskazówka''' W zależności od wieku uczestników możemy wyjaśnić, że znaleziony klocek jest tzw. instrukcją warunkową, pozwalającą wykona ć okre ślone polecenia, pod warunkiem, że zaistniały określone okoliczności, czyli został spełniony określony warunek. W tym wypadku chodzi o skierowanie rybki w kierunku kursora myszki, gdy wykonane zostało kliknięcie - wciśnięcie lewego klawisza myszy, odpowiadające puknięciu w szybę akwarium.''
 
Prosimy, by uczestnicy przenieśli znaleziony klocek do obszaru skryptów, ale na razie nie łączyli go z innymi.
Następnie prosimy, by odnaleźli klocek pozwalający skierować rybkę w stronę kursora myszy. Uczestnicy mogą odnaleźć dwa klocki. W razie potrzeby należy wyjaśnić różnicę między nimi.
 
[[Plik:a28.jpg]]
 
'''''Wskazówka''' Jeśli ktoś wybra ł klocek idź do <wska źnik myszy>, należy omówić różnicę w efekcie dzia łania skryptów. W tym wypadku duszek rybki znajduje się dok ładnie tam, gdzie wskaźnik myszy komputerowej. Nie możemy więc nadać mu prędkości (ta zależy od tego, jak szybko poruszamy myszą komputerową). Duszek nie obraca się również w kierunku wskaźnika.''
 
Prosimy, by uczestnicy zastanowili się, jak: - połączyć znalezione klocki,
[[Plik:a29.jpg]]
w którym miejscu je wstawić w skrypcie.
 
[[Plik:a30.jpg]]
 
 
Najlepiej umieścić polecenie jeżeli wciśnięty klawisz myszy jako ostatnie w pętli zawsze. Można poprosić by uczestnicy przetestowali różne umiejscowienie i odpowiedzieli na pytanie - co się zmienia?
 
'''''Wskazówka''' Jeżeli chcielibyśmy, by rybka uciekała, to powinniśmy ją ustawić w stronę puknięcia, czyli wskaźnika myszy, a następnie obrócić o 180 stopni - czyli w kierunku przeciwnym.''
 
[[Plik:a31.jpg]]
 
====Skopiowanie(skryptu(dla(pozostałych(rybek(duszków((=====
Podpowiadamy, że przygotowany skrypt możemy skopiować dla pozostałych rybek poprzez jego przeciągnięcie i upuszczenie na ich postaci w obszarze duszków pod sceną.
Po skopiowaniu skryptów powinniśmy zatrzymać i ponownie uruchomić program - wówczas wszystkie rybki powinny zacząć pływać.
 
[[Plik:a32.jpg]]
 
====Dodanie(interakcji(między(rekinem(a(jedną(z(rybek((====
Kolejnym rozszerzeniem projektu może być zmodyfikowanie skryptu rekina w taki sposób, by reagował na spotkanie z jedną z rybek próbą zjedzenia jej. Możemy zwrócić uwagę, że rekin ma kilka kostiumów. W tym celu możemy poprosić o wybranie Rekinka i przejście następnie do zakładki Kostiumy w środkowej kolumnie.
 
[[Plik:a33.jpg]]
 
Sprawdzamy, że rekin ma trzy kostiumy. Dyskutujemy, co się stanie, jeśli zmienimy szybko trzykrotnie kostium rekina na następny (powstanie wrażenie, że rekin próbuje coś ugryźć, na koniec wracając do pierwszego kostiumu - czyli pierwotnego wyglądu).
Wspólnie zastanawiamy się w jaki sposób powinien wyglądać fragment skryptu powodującego, że jeśli rekin napotka inną rybkę (np. nazwaną Kasia) to będzie próbował ją ugryźć. Zapisujemy wnioski np.: Jeżeli dotyka Kasi, to trzykrotnie zmień kostium.
 
'''''Uwaga do realizacji zajęć !!!''' W tym miejscu możemy pozwolić na realizację zadania w sposób wymyślony przez uczestników, pomagając jedynie odnaleźć prawidłowe klocki i rozwiązać ewentualne problemy''
 
Następnie prosimy kolejno o odnalezienie i połączenie klocków, które pozwolą:
* sprawdzić, czy Rekinek dotyka Kasi
* powtórzyć jakąś operację określoną liczbę razy
* zmienić kostium
[[Plik:a34.jpg]]
 
Po przetestowaniu, okaże się, że animacja zachodzi bardzo szybko, więc dobrze jest
!
Wersja beta instrukcji Strona 16 z 16!
dodać klocek nieco ją spowalniający - np. wymuszający czekanie przed kolejną zmianą kostiumu np. przez 0.2 sekundy.
Kolejnym problemem może się okazać, że Rekinek próbuje zjeść rybkę b ędąc odwróconym do niej ogonem. W tym celu, przed wykonaniem animacji, możemy zmienić styl obrotu rekina na wszystko dookoła a następnie przed zmianą kostiumu ustawiać go w stronę rybki, którą próbuje ugryźć. Należy pamiętać, by po animacji ustawić ponownie styl obrotu na lewo-prawo.
 
 
[[Plik:a35.jpg]]
 
Możliwe dalsze modyfikacje projektu:
* dodanie licznika, ile razy rekin próbował zjeść rybkę (wymaga wprowadzenia pojęcia zmiennej)
* zmodyfikowanie skryptu rybki zjadanej przez rekina w taki sposób, by po zjedzeniu znikała i pojawiała się dopiero po pewnym czasie