Fragment blatu stołu na którym rozrzucone są kostki do gry.
Fragment blatu stołu na którym rozrzucone są kostki do gry.
Losowość i zmienne w Scratch
Losowanie liczb, zmienne i instrukcje warunkowe
Przygotujemy projekt, który będzie sprawdzać znajomość tabliczki mnożenia. Duszek będzie podawał wyrażenie do obliczenia, a następnie sprawdzał czy odpowiedź jest poprawna. Czynniki zostaną wylosowane z zakresu od 1 do 10, natomiast wynik będzie wpisany przez gracza za pomocą klawiatury.
W trakcie wykonywania zadania dowiesz się, co to jest zmienna oraz poznasz zastosowania niektórych bloków z kategorii Kontrola i Czujniki.
Zmienne
W programowaniu zmienna to nazwa, której przypisuje się jakość wartość. Tą wartością może być na przykład poziom gry, liczba żyć lub liczby, które wylosuje komputer. Obejrzyj film przedstawiający jak tworzy się zmienną w programie Scratch.
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 1
Możliwe odpowiedzi: 1. Zmienne, 2. Czujniki, 3. Zdarzenia
Źródło: GroMar, licencja: CC BY 3.0.
Domyślnie każda zmienna jest widoczna na scenie. Aby ją ukryć lub ponownie pokazać należy odpowiednio zaznaczyć pole przy jej nazwie.
R1BKi09sbTWGg
Zrzut ekranu przedstawiający wycinek okna programu Scratch. Wyróżniono opcję, która pozwala pokazywać na ekranie aktualną wartość danej zmiennej. Znajduje się ona w zakładce "Zmienne". Każda zmienna ma po swojej lewej stronie kwadratowe okienko, które należy zaznaczyć, jeżeli chce się włączyć podgląd aktualnej wartości zmiennej podczas trwania programu.
Pole do zmiany widoczności wartości zmiennej na scenie.
Źródło: GroMar, licencja: CC BY 3.0.
Polecenie 1
Utwórz w programie Scratch dwie zmienne, które wykorzystasz do zapamiętania wylosowanych przez duszka liczb. Nazwij je odpowiednio np. i
Ważne!
Nazwy zmiennych warto od samego początku zapisywać tak, aby było wiadomo jaką daną przechowują. Będzie możliwe sprawnie odróżnianie ich od siebie, co pozwoli na szybsze zrozumienie, do czego są one wykorzystywane w programie. Ta praktyka bardzo przyda ci się w skomplikowanych programach, gdzie zmiennych jest więcej.
Projekt: Tabliczka mnożenia
Załóżmy, że w przygotowywanym przez nas skrypcie duszek zadaje tak długo to samo pytanie (ten sam przykład do obliczenia), aż nie uzyska od grającego poprawnej odpowiedzi. Aby to zaprogramować, będziemy musieli wykorzystać jeden z bloków odpowiedzialnych za powtarzanie poleceń.
Ćwiczenie 1
Przejrzyj w grupie Kontrola bloki odpowiedzialne za powtarzanie innych poleceń. Który blok najlepiej będzie pasował do rozwiązania tego problemu? Odpowiedź uzasadnij.
R2tjdzmkah1O8
Źródło: GroMar, licencja: CC BY 3.0.
Spróbuj wykonać w myślach przykładowy skrypt podstawiając w odpowiednie miejsce każdy z bloków: powtarzaj aż, zawsze, powtórz ... razy.
Zadawanie pytań należy kontynuować tak długo, aż grający poda właściwą liczbę, czyli zgadnie, więc najlepiej wykorzystać blok powtarzaj aż.
Ćwiczenie 2
Zapisz w postaci listy kroków algorytm, który wylosuje dwie liczby z przedziału od do i poprosi zdającego o podanie wyniku mnożenia. Pytanie powinno być ponawiane aż do podania prawidłowego wyniku.
Zadanie można rozwiązać na kilka sposobów. Poniżej podano przykładową listę kroków do wykonania w celu utworzenia działającego skryptu.
Tworzymy zmienne i .
Losujemy dwie liczby z przedziału od 1 do 10 i przypisujemy ich wartości do zmiennych i .
Prosimy grającego o podanie wyniku mnożenia dwóch wylosowanych liczb.
Tworzymy pętlę powtarzaj aż: odpowiedź. 4.1. W przypadku podania złego wyniku skrypt zwraca informację o niepoprawnie podanej odpowiedzi i prosi o ponowne podanie wyniku.
W przypadku poprawnie odgadniętego wyniku skrypt się zatrzymuje.
Ćwiczenie 3
Zapisz skrypt realizujący algorytm z powyższego zadania. Pamiętaj o sprawdzeniu poprawności działania skryptu.
Zwróć uwagę, żeby wybrać odpowiedni blok odpowiedzialny za powtarzanie instrukcji. Pozostałe potrzebne bloki do pobrania i odczytania wartości, takie jak zapytaj i czekajiX7liXRCoZ_d357e155zapytaj i czekaj oraz odpowiedźiX7liXRCoZ_d357e164odpowiedź znajdziesz w kategorii Czujniki.
Do wyświetlenia w dymku komiksowym połączonych wartości dwóch zmiennych lub tekstu i wartości zmiennej użyj bloku połącziX7liXRCoZ_d357e198połącz.
Przykładowy skrypt:
Rvc60ZnKvbhvo
Zrzut ekranu przedstawia skrypt, w którym użytkownik jest proszony o podanie wyniku mnożenia dwóch wylosowanych liczb. Skrypt będzie wykonywany tak długo, aż użytkownik poda poprawną odpowiedź. Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Ustaw zmienną "liczba jeden" na losuj liczbę od jeden do dziesięć. Trzeci wiersz: Ustaw zmienną "liczba dwa" na losuj liczbę od jeden do dziesięć. Czwarty wiersz: Zapytaj Jaki jest wynik mnożenia zmiennej "liczba jeden" i zmiennej "liczba dwa"? Piąty wiersz: Powtarzaj aż zmienna "odpowiedź" jest równa zmiennej "liczba jeden" pomnożonej przez zmienną "liczba dwa". Szósty wiersz: Powiedz: "Niestety, nie podałeś poprawnego wyniku, spróbuj ponownie.". Siódmy wiersz: Zapytaj: "Jaki jest wynik mnożenia zmiennej "liczba jeden" i zmiennej "liczba dwa" i czekaj. Ósmy wiersz: Powiedz: "Brawo, podałeś poprawny wynik!". Dziewiąty wiersz: Zatrzymaj ten skrypt przez jedną sekundę.
Przykładowe rozwiązanie zadania - skrypt.
Źródło: GroMar, licencja: CC BY 3.0.
iX7liXRCoZ_d357e155
RgI9OZm2PfXnU
Zrzut ekranu przedstawia blok z kategorii "czujniki": "zapytaj ... i czekaj". Blok ten pyta użytkownika o daną rzecz, którą należy wypełnić w pozostawionej luce, a następnie czeka na jego odpowiedź.
Blok "zapytaj ... i czekaj".
Źródło: GroMar, licencja: CC BY 3.0.
Blok wyświetla w dymku komiksowym podany tekst oraz pole edycyjne na dole sceny do wprowadzenia odpowiedzi. Dana podana w polu edycyjnym dostępna jest w skryptach jako wartość bloku odpowiedź.
Przykład:
R1NUtFH1kjjAY
Zrzut ekranu przedstawia przykładowe działanie skryptu opartego o blok: "zapytaj ... i czekaj". Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Zapytaj "Jak masz na imię?" i czekaj. Trzeci wiersz: Powiedz: "dzień dobry" i odpowiedź udzielona przez użytkownika. Czwarty wiersz: Zatrzymaj ten skrypt.
Przykład z użyciem bloku "zapytaj ... i czekaj".
Źródło: GroMar, licencja: CC BY 3.0.
iX7liXRCoZ_d357e164
RNjVCIc4i8Ifh
Zrzut ekranu przedstawia blok z kategorii "czujniki": "odpowiedź". Blok ten jest zmienną, w której przetrzymywana jest odpowiedź. Po lewej stronie bloku znajduje się kwadratowe okno, którego zaznaczenie powoduje pokazywanie się na ekranie aktualnej wartości tej zmiennej w trakcie działania programu.
Blok zmiennej "odpowiedź".
Źródło: GroMar, licencja: CC BY 3.0.
Wynik działania bloku Zapytaj i czekaj – podana przez użytkownika odpowiedź. Włączenie znacznika po lewej stronie bloku w obszarze wzorców powoduje wyświetlanie podanej odpowiedzi na scenie.
Przykład:
R1MggVylQ9I6e
Zrzut ekranu przedstawia działanie skryptu opartego o blok: "zapytaj ... i czekaj". Pierwszy wiersz: Zapytaj: "Jak masz na imię?" i czekaj. Drugi wiersz: Powiedz: "dzień dobry" i udzielona odpowiedź. Czwarty wiersz: Zatrzymaj ten skrypt.
Przykład z użyciem zmiennej "odpowiedź".
Źródło: GroMar, licencja: CC BY 3.0.
Zadanie uzupełniające
Ćwiczenie 4
Zaproponuj rozszerzenia poprzedniego projektu, np. niech grający odpowie na pytań, czyli różnych działań dla zestawów wylosowanych liczb. Wprowadź licznik poprawnych odpowiedzi.
Znamy liczbę pytań (powtórzeń) - zastanów się, jaki blok będzie najbardziej odpowiedni w tym przypadku.
Przykładowy skrypt:
RhCv5omg3wDhw
Zrzut ekranu przedstawia skrypt, w którym użytkownik proszony jest dziesięć razy o podanie wyniku mnożenia dwóch wylosowanych liczb. Ilość poprawnych odpowiedzi jest zliczana, a pod koniec skrypt zwraca ilość poprawnie udzielonych odpowiedzi. Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Ustaw zmienną "licznik" na zero. Drugi wiersz: Powtórz dziesięć razy. Trzeci wiersz: Ustaw zmienną "liczba jeden" na losuj liczbę od jeden do dziesięć. Piąty wiersz: Ustaw zmienną "liczba dwa" na liczbę od jeden do dziesięć. Szósty wiersz: Zapytaj: "Jaki jest wynik mnożenia zmiennej "liczba jeden" i zmiennej "liczba dwa"?" i czekaj. Siódmy wiersz: Jeżeli zmienna "liczba jeden" pomnożona przez zmienną "liczba dwa" równa się zmienna "odpowiedź" to: Ósmy wiersz: Zmień zmienną "licznik" o jeden. Dziewiąty wiersz: Powiedz: "Udało Ci się podać" zmienna "licznik" "poprawnych odpowiedzi". Dziesiąty wiersz: Zatrzymaj ten skrypt.
Przykładowe rozwiązanie zadania - skrypt.
Źródło: GroMar, licencja: CC BY 3.0.
iX7liXRCoZ_d357e198
R76qRzZ69wXgX
Blok z kategorii "Wyrażenia": "połącz jabłko i banan".
Blok "połącz ... i ...".
Źródło: GroMar, licencja: CC BY 3.0.
Wynikiem działania bloku jest połączenie dwóch napisów w jeden. Wykorzystujemy go często do połączenia napisu wprowadzonego z klawiatury z wartością zwracaną przez inny blok.
Przykład:
Rhbt3nqeVkQV1
Zrzut ekranu przedstawiający skrypt używający bloku "połącz". Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Zapytaj: "Jak się nazywasz?" i czekaj. Trzeci wiersz: Powiedz: "Dzień dobry, " wraz ze zmienną "odpowiedź".
Przykład z użyciem bloku "połącz ... i ...".
Źródło: GroMar, licencja: CC BY-SA 3.0.
Poniżej znajduje się pole tekstowe przeznaczone do zapisywania notatek. Możesz w nim zapisać wszystkie informacje, które uważasz za potrzebne.
R1HNULu2rxzCg
Pole tekstowe do zapisywania odpowiedzi i notatek.