Maszynka losująca: Różnice pomiędzy wersjami
K Jaworski (dyskusja | edycje) (→=Maszyna z wprowadzaną przez użytkownika ilością losów) |
|||
(Nie pokazano 12 wersji utworzonych przez 3 użytkowników) | |||
Linia 1: | Linia 1: | ||
− | '''Materiały stworzone w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska''' | + | [[Category:Scenariusze Scratch]] [[Category:Mistrzowie Kodowania]] |
+ | '''Materiały stworzone przez Fundację Coder Dojo Polska w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska, objęte licencją CC BY 3.0 PL "Creative Commons Uznanie Autorstwa 3.0 Polska".''' | ||
==Informacje== | ==Informacje== | ||
===Cel=== | ===Cel=== | ||
Celem projektu jest stworzenie programu umożliwiającego losowanie liczby z podanego zakresu. | 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=== | + | ===Poziom trudności i proponowane wersje=== |
Poziom trudności dla klas 4-6 ✪✪✰✰ | Poziom trudności dla klas 4-6 ✪✪✰✰ | ||
Linia 11: | Linia 15: | ||
Poziom trudności dla gimnazjum ✪✰✰✰ | Poziom trudności dla gimnazjum ✪✰✰✰ | ||
− | + | Przykładowe projekty: | |
− | #Pierwszy etap | + | #Pierwszy etap [http://scratch.mit.edu/projects/25276398/ Maszynka losująca] |
− | #Wersja końcowa | + | #Wersja końcowa [http://scratch.mit.edu/projects/25948365/ Lotto] |
+ | |||
+ | ===Orientacyjny czas realizacji=== | ||
+ | 45 minut | ||
==Etapy== | ==Etapy== | ||
Linia 31: | Linia 38: | ||
====Maszyna z wprowadzaną przez użytkownika ilością losów==== | ====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 potrzebna nam zmienna. | + | 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==== | ====Tworzymy maszynę losującą zestaw kilku liczb z określonego zakresu==== | ||
Linia 52: | Linia 59: | ||
'''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'''. 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 [[Kontrola wejścia (Scratch)|wprowadzono liczbę]]) | ||
[[Plik:Lotto_1.png]] | [[Plik:Lotto_1.png]] | ||
+ | |||
+ | Jeśli uczniowie są gotowi mogą przejść do budowy bardziej zaawansowanej maszyny losującej. (patrz scenariusz [[Maszynka losująca (wersja B)]]. |
Aktualna wersja na dzień 11:59, 7 lis 2014
Materiały stworzone przez Fundację Coder Dojo Polska w ramach Programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska, objęte licencją CC BY 3.0 PL "Creative Commons Uznanie Autorstwa 3.0 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).