Nr 3/2018 (LXII) ISSN 2083-7321




Łukasz Brudnik
Dział Instrukcyjno-Metodyczny WBP w Opolu

Kodowanie w bibliotece: Scratch


Wstęp
Scratch to język obiektowy, zaprojektowany z myślą o nauczaniu najmłodszych programowania. Stworzony został przez Mitchela Resnicka pomysłodawcę między innymi serii Lego Mindstorms. Scratch to również darmowe narzędzie, przy pomocy którego można tworzyć pierwsze programy.

Poniższy artykuł jest tylko przyczynkiem do programowania w Scratchu. Próbą pokazania, że programować może każdy, że nie jest to skomplikowane i można przy tym dobrze się bawić.

1. Budowa programu Scratch










)


2. Rysowanie kwadratu
W tym zadaniu duszek narysuje kwadrat.

Na początku ustalimy od którego momentu duszek ma zacząć rysować. W tym celu z grupy „Ruch” wybieramy blok „idź do”, w którym w polach „x” i „y” podajemy współrzędne początkowe rysowanego przez duszka kwadratu.


Następnie z grupy „Pisak” wybieramy bloki „przyłóż pisak” oraz „ustaw kolor pisaka na”, aby duszek wiedział, że ma rysować i w jakim kolorze.


Teraz określmy, po jakim czasie duszek narysuje pierwszą linię. W tym celu w grupie „Kontrola” odszukujemy blok „czekaj” i ustawiamy w nim po jakim czasie duszek ma wykonać pierwszy ruch.


Aby duszek narysował linię, musi wiedzieć, w jaką stronę ma pójść i jak ona ma być długa. Dlatego wracamy do grupy ruch i wybieramy bloki „ustaw kierunek na” i „przesuń o”.


W bloku „ustaw kierunek” określamy kierunek skoku duszka, o odległość zdefiniowaną w bloku „przesuń o”.


W sporządzanym skrypcie duszek wykonywać będzie ruch w prawo. Teraz analogicznie musimy ustalić kolejne kierunki ruchu duszka, tak by w ostateczności narysował on kwadrat.


Na koniec informujemy program, że ma zakończyć działanie (blok „zatrzymaj” w grupie „Kontrola”).


Ostatecznie program wygląda następująco:


Efekt działania programu:


3. Rysowanie przy pomocy strzałek
W tym zadaniu sami będziemy przy pomocy strzałek decydować co będzie rysować duszek.

Na początek z grupy „Pisak” wybieramy bloki „przyłóż pisak” oraz „ustaw kolor na”.


Następnie zdefiniujemy odległości i kierunki, w jakich będzie poruszał się duszek po naciśnięciu strzałek. W tym celu z grupy „Kontrola” wybieramy blok „jeżeli”.


W nim zamieszczamy blok „klawisz” z grupy „Czujniki” i wybieramy „strzałka w górę”.




Zdefiniowaliśmy warunek: jeżeli naciśniemy na klawiaturze klawisz górna strzałka to coś ma się wydarzyć.

Teraz musimy ustalić co musi zrobić duszek, gdy będziemy przyciskać górną strzałkę. Z grupy „Ruch” wybieramy „ustaw styl obrotu” (gdzie z listy rozwijanej wybieramy opcję „dookoła”), „ustaw kierunek na” (gdzie wybieramy opcję „(0) góra”) i „przesuń o” (gdzie ustalamy długość skoku duszka).


Następnie tworzymy warunki dla pozostałych strzałek. Należy jednak pamiętać, że jeżeli chcemy by duszek odwracał się twarzą w lewo trzeba w bloku „ustaw styl obrotu” ustawić „lewo-prawo”.


Aby można było przy pomocy klawiszy sterować duszkiem należy na sam koniec poinformować program by cały czas oczekiwał na naciśniecie, któregoś z zdefiniowanych wcześniej klawiszy. W tym celu wszystkie warunki „jeżeli” zamieścimy w pętli. W grupie „Kontrola” odszukujemy blok „zawsze” i w nim umieszczamy wszystkie warunki.

Ostatecznie program wygląda:



Zadanie do wykonania samemu:
Należy w programie przypisać komendy dla trzech klawiszy „r”, „n” i „c”, tak by po naciśnięciu odpowiednio „r” duszek rysował, „n” nie rysował, „c” ekran czyszczony był z rysunku duszka.

4. Tabliczka mnożenia
Tym razem napiszemy program do nauki tabliczki mnożenia.

Na początku duszek zapyta się, czy uczeń jest gotowy odpowiedzieć na pytanie. W tym celu z grupy „Wygląd” wybieramy blok „powiedz przez” i ustawiamy w nim czas, jak długo ma trwać pytanie.


Następnie definiujemy dwie zmienne, „liczba1” i „liczba2” (grupa „Dane”) i umieszczamy bloki „ustaw” dla „liczby1” oraz „liczby2”.


W kolejnym kroku przechodzimy do grupy „Wyrażenia”, umieszczamy blok „losuj od do” w blokach „ustaw” dla „liczby1” oraz „liczby2” i ustawiamy z jakiego zakresu mają być losowane liczby. W ten sposób program będzie losował dowolne dwie liczby od 1 do 10.


Teraz w grupie „Czujniki” wybieramy blok „zapytaj i czekaj” przy pomocy którego zadajemy pytanie o wynik mnożenia.


W tym momencie program zatrzymuje swoje działanie na tak długo, aż nie otrzyma jakiejkolwiek odpowiedzi. Aby mógł odpowiednio zareagować musimy utworzyć warunek (grupa „Kontrola”), który wykona jakąś czynność w zależności, czy mamy do czynienia z prawdą czy fałszem.


W polu „jeżeli to” umieszczamy blok „jedna strona równa się drugiej stronie” z grupy „Wyrażenia”.


Następnie w polu po prawej stronie znaku „=” umieszczamy blok mnożenia.


W bloku z mnożeniem zamieszczamy zmienne „liczba1” oraz „liczba2” (grupa „Dane”), zaś w polu po lewej stronie znaku „=” zamieszczamy blok „odpowiedź” (grupa „Czujniki”).


Jeżeli wynik mnożenia jest prawidłowy ustawmy by pojawił się komunikat „dobrze”, jeżeli nie, to ustalmy komunikat informujący o tym.


Na koniec zadamy pytanie, czy gracz chce dalej kontynuować zabawę. Na początku ustalmy czas po jakim zostaniemy zapytani o dalszą kontynuację (blok „czekaj” w grupie „Kontrola”), a następnie przy pomocy bloku „zapytaj i czekaj” poinformujemy program, czy chcemy by zadał kolejne pytanie z tabliczki mnożenia.


Teraz utwórzmy warunek sprawdzający, czy wpisana została litera „t”. Jeżeli tak, to pojawi się komunikat „super”, jeżeli nie, to program zakończy działanie.


Aby program, po wpisaniu litery „t” po raz kolejny zadał pytanie z tabliczki mnożenia, należy całość umieścić w niekończącej się pętli.




Zadanie do wykonania samemu:
Należy utworzyć poziomy trudności, tak by można było wybrać opcję łatwiejszą (losowanie liczb z zakresu 1-5) i trudniejszą (losowania liczba z zakresu 6-10).

5. Pierwsza gra
W tym zadaniu będziemy unikać duszkiem przeszkód na drodze.

Na początku wybierzmy tło. Można wykorzystać własne zdjęcie, albo skorzystać z materiałów dostępnych w bibliotece scen. Na potrzeby zadania skorzystamy z drugiej opcji, gdzie znajduje się obraz przedstawiający drogę.






Następnie z biblioteki nowych duszków wybierzmy auto, piłkę i dwa razy linię.






Teraz umieśćmy wszystkie wybrane elementy (duszki) na tle.


Na zamieszczonym powyżej obrazku widać, że w przypadku samochodu i piłki należy zmienić ich wielkość, z kolei kotka nie powinno być w ogóle. Na początku więc usuńmy kotka. Naciśnijmy literkę „i” na miniaturce duszka.


Pojawią informacje (m.in. współrzędne aktualnego położenia duszka) i opcje (m.in. jak ma obracać się duszek) związane z daną postacią. Odklikujemy opcję „pokaż:”, dzięki czemu kotek nie będzie widoczny w naszym programie.


W drugiej kolejności zmniejszymy rozmiar samochodu i piłki. Przejdźmy do zakładki „Kostiumy” i kliknijmy dwa razy lewym przyciskiem myszy na samochód. Obrazek pojazdu przedstawiony jest w trybie bitmapowym, aby móc dowolnie zmieniać jego rozmiar trzeba przejść w tryb wektorowy. Dlatego w prawym dolnym rogu należy przycisnąć „Przekształć w rysunek wektorowy”.


Po przekształceniu obrazka w tryb wektorowy możemy dowolnie zmieniać jego wielkość. Podobnie postępujemy w przypadku piłki.




Po zaprojektowaniu tła nadszedł czas na napisanie programu.

W oknie z duszkami wybierzmy samochód. Na początku ustalmy gdzie on ma się znajdować, przy każdym uruchomieniu programu.


Dalej zdefiniujemy jak chcemy sterować pojazdem. W naszym programie będzie poruszał się przy pomocy strzałek do góry i na dół bez odwracania się.


W tym momencie auto porusza się od jednej krawędzi do drugiej, jednak my chcemy aby poruszał się tylko po drodze, a każde zjechanie z niej kończyło program. Dlatego w pętli tworzymy kolejne dwa warunki, w których sprawdzane będzie, czy auto dotyka którąś z linii wyznaczających trasę. Blok sprawdzający dotknięcie linii znajduje się w grupie „Czujniki”.


Ruch samochodu mamy ustalony, czas na piłkę. Chcemy aby poruszała się ona w linii pionowej, w kierunku samochodu, ale za każdy razem na różnej wysokości.

W oknie z duszkami wybieramy piłkę. Dalej w pętli ustalamy punkt początkowy, od którego zacznie poruszać się piłka oraz zdefiniujmy jak długo piłka będzie przemieszczać się od jednego końca, do drugiego.


Powyższy skrypt powoduje, że piłka co trzy sekundy będzie się przemieszczać od prawej strony do lewej. Jednak cały czas będzie robić to na tej samej wysokości, a nam zależy, by za każdym razem ta wysokość była inna (zmieniała się zmienna „y”). Musimy więc wprowadzić element losowości.

Zaczynamy od zdefiniowania zmiennej „losuj”. W grupie „Dane” klikamy na „Utwórz zmienną”.


Wyskakuje okienko, a w nim ustalamy nazwę dla zmiennej, resztę pozostawiamy bez zmian.


Po zatwierdzeniu pojawiają się nowe bloki w grupie „Dane” związane z utworzoną zmienną.


Domyślnie wartość zmiennej wyświetlana jest w lewym górnym rogu programu. Jeżeli nie chcemy by była widoczna odklikujemy ptaszka przy bloku „losuj”.


Następnie pozostając w tej samej grupie odszukujemy blok „ustaw na” i umieszczamy go w pętli odpowiedzialnej za ruch piłki.


Przechodzimy teraz do grupy „Wyrażenia”, odszukujemy blok „losuj od do” i umieszczamy go w bloku „ustaw na”.


Na sam koniec ustalamy na jakiej najniższej i najwyższej wysokości ma poruszać się piłka i wpisujemy te dane do bloku „losuj od do”. W wyniku tego działania w zmiennej „losuj” przypisana zostanie wylosowana wysokość.


Umieszczenie w polach „y” mieszczących się w blokach „idź do” i „leć przez” zmiennej „losuj” sprawi, iż piłka za każdym razem zacznie poruszać się z innego miejsca.


Wróćmy do skryptu utworzonego dla samochodu i stwórzmy w nim warunek, że po dotknięciu przez auto piłki program zakończy się.


Na sam koniec utwórzmy kolejną zmienną i nazwijmy ją „punkty”. Następnie w skrypcie odpowiedzialnym za ruch piłki przed pętlą wstawmy blok „ustaw na” (z listy rozwijanej wybieramy nazwę zmiennej „punkty”), a na końcu pętli blok „zmień o” (z listy rozwijanej wybieramy nazwę zmiennej „punkty”), gdzie ustalamy o ile punktów będzie zwiększane każde ominięcie piłki przez samochód.


Zadanie do wykonania samemu:
Należy w programie ustalić tak szybkość poruszanej piłki, by po zdobyciu określonej liczby punktów zmieniała się.


   



"Bibliotekarz Opolski" jest dostępny na licencji Creative Commons Uznanie autorstwa - Na tych samych warunkach 3.0 Polska