Maszynka losująca
Materiały stworzone w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska
Spis treści
Informacje
Cel
Celem projektu jest stworzenie programu umożliwiającego losowanie liczby z podanego zakresu.
- Przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka Scratch,
- Wykorzystanie klocków z Bloku Dane (stwórz listę)
- Implementacja w środowisku Scratch
Poziom trudności i proponowane wersje
Poziom trudności dla klas 4-6 ✪✪✰✰
Poziom trudności dla gimnazjum ✪✰✰✰
Przykładowe projekty:
- Pierwszy etap Maszynka losująca
- Wersja końcowa Lotto
Orientacyjny czas realizacji
45 minut
Etapy
Maszynka losująca
- Wybieramy lub rysujemy postać duszka, który będzie losował.
- Tworzymy "kostkę" - skrypt losujący liczbę z zakresu 1-6.
- Tworzymy urządzenie losujące numer ucznia w dowolnej klasie - skrypt losowania liczby z podanego zakresu (pytanie o liczbę uczniów w klasie).
Wprowadzenie
Pokazujemy uczniom kostkę do gry. Rozmawiamy na temat jej funkcjonalności i użyteczności. Staramy się, aby uczniowie doszli do wniosku, że kostka jest prostą maszyną losującą. Ilość możliwych wyników losowania zależy od ilości ścianek danej kostki. Pytamy uczniów w jaki sposób mogą wylosować jedną z sześciu liczb, kiedy nie mają przy sobie kostki (mogą np. zaproponować sześć losów na których znajduje się sześć kolejnych liczb). Taką wirtualną maszynę losującej o zmiennej ilości wyników będziemy mieli przygotować w Scratchu.
Maszyna ze stałą ilością losów
Prosimy uczniów o to, aby wybrali duszka (w naszym przypadku jest to duszek Jay), który będzie pełnił funkcję maszyny losującej. W pierwszym kroku maszyna ma losować – podobnie jak kostka do gry – spośród sześciu liczb. Pytamy uczniów jakie czynności powinien zrobić taki program. (1. Uruchomienie programu, 2. Losowanie jednej z sześciu liczb, 3. Wyświetlenie liczby). Upewniamy się czy uczniowie wiedzą z jakich klocków skorzystać. Daje im czas na stworzenie rozwiązania.
Maszyna z wprowadzaną przez użytkownika ilością losów
Kiedy uczniowie przygotują ten prosty skrypt prosimy ich, aby zastanowili się w jaki sposób rozbudować kod, aby to użytkownik wprowadzał górną wartość losowanej liczby. Zbieramy przykładowe rozwiązań i prosimy uczniów, aby wykorzystali swoje pomysły. Warto pozwolić im, aby sami poszukali swojego rozwiązania. Warto stworzyć przestrzeń do tego, aby uczniowie prezentowali innym uczniom swoje rozwiązania i zastanawiali się nad tym jak można je udoskonalić. Dopiero kiedy żaden z nich nie znajdzie optymalnego rozwiązania można zapytać w jaki sposób program będzie pobierał od użytkownika górny zakres losowanej liczby. W przypadku korzystania z funkcji „pytania” i „odpowiedzi”, ten drugi klocek może być traktowany jako potrzebna nam zmienna.
Tworzymy maszynę losującą zestaw kilku liczb z określonego zakresu
Skrypt zawiera pola dialogowe z bloków i oraz element losowania z bloku . Wybrany w tej wersji duszek Jay informuje o możliwości wylosowania liczby, następnie zadaje pytanie o zakres liczb i czeka na odpowiedź. Po uzyskaniu odpowiedzi podaje krótki komunikat Losuję.. aby dodać nieco przerwy między podanym zakresem a wylosowaną odpowiedzią. W ostatnim punkcie duszek podaje losowo wybraną liczbę.
"Lotto"
Bazową wersję można rozwinąć o element losowania wielu liczb. Etapy rozwijania skryptu:
- Pytamy dodatkowo o to, ile liczb maszyna ma wylosować.
- Ponieważ o ilości liczb każdorazowo będzie decydował gracz, zamiast tworzyć wiele zmiennych, tworzymy listę Wyniki. ------> Uwaga: (W Bloku Dane wybieramy opcję stwórz listę, zadajemy nazwę (np.: wyniki) oraz oznaczamy ustawienie tylko dla tego duszka. W oknie sceny pojawi się pusta lista, którą możemy ukryć po rozpoczęciu gry, a wyświetlić po wylosowaniu liczb)
- Powtarzamy zadaną liczbę razy (zmienna ile) sekwencję:
- losuj liczbę,
- dodaj do tabeli,
- czekaj (dla stworzenia atmosfery napięcia).
- Liczby mogłyby się powtarzać, więc stosujemy "powtarzaj tak długo aż wylosujesz liczbę, której nie ma na liście" i dopiero wtedy dodajemy do listy.
- Taki program działałby prawidłowo tylko raz, gdyż liczby zapamiętane w pierwszym losowaniu pozostają na liście. W związku z tym po kliknięciu flagi powinniśmy wyczyścić listę (usunąć wszystko).
- Można początkowo ukryć pustą listę i pokazać ją dopiero gdy zaczną pojawiać się wyniki.
Uwaga. Przed pętlą powtarzającą n-razy, należy wylosować liczbę na określonych zasadach, gdyż pominięcie tego bloku może spowodować dodanie liczby spoza zakresu (gdy wcześniej zakres był większy).
Uwaga. Warto w program wbudować zabezpieczenie przed użytkownikami stawiającymi przed programem niemożliwe do wykonanie zadania:
- wylosowania 3 unikalnych liczb spośród 2 (zabezpieczenie to sprawdzenie czy liczba liczb do wylosowania jest mniejsza lub równa od liczby elementów z których losujemy) - w przeciwnym razie program zapętli się i nigdy nie skończy
- wprowadzenia zamiast liczby elementów tekstu lub liczb ujemnych (rozwiązanie to sprawdzenie, czy podana liczba jest większa o zera ORAZ czy wprowadzono liczbę)
Jeśli uczniowie są gotowi mogą przejść do budowy bardziej zaawansowanej maszyny losującej. (patrz scenariusz Maszynka losująca (wersja B).