Maszynka losująca

Z Zasoby CoderDojo
Skocz do: nawigacji, wyszukiwania

Materiały stworzone w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska

Informacje

Cel

Celem projektu jest stworzenie programu umożliwiającego losowanie liczby z podanego zakresu.

  1. Przypomnienie i utrwalenie poznanych wcześniej poleceń i konstrukcji języka Scratch,
  2. Wykorzystanie klocków z Bloku Dane (stwórz listę)
  3. 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:

  1. Pierwszy etap Maszynka losująca
  2. Wersja końcowa Lotto

Orientacyjny czas realizacji

45 minut

Etapy

Maszynka losująca

  1. Wybieramy lub rysujemy postać duszka, który będzie losował.
  2. Tworzymy "kostkę" - skrypt losujący liczbę z zakresu 1-6.
  3. 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.

Maszynka prosta.jpg

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 Blok wyglad.png i Blok wyrazenia.png oraz element losowania z bloku Blok czujniki.png. 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ę.

Maszynka losujaca skrypt 46.png

"Lotto"

Bazową wersję można rozwinąć o element losowania wielu liczb. Etapy rozwijania skryptu:

  1. Pytamy dodatkowo o to, ile liczb maszyna ma wylosować.
  2. 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)
  3. Powtarzamy zadaną liczbę razy (zmienna ile) sekwencję:
    • losuj liczbę,
    • dodaj do tabeli,
    • czekaj (dla stworzenia atmosfery napięcia).
  4. 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.
  5. 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).
  6. 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ę)

Lotto 1.png

Jeśli uczniowie są gotowi mogą przejść do budowy bardziej zaawansowanej maszyny losującej. (patrz scenariusz Maszynka losująca (wersja B).