stycznia 03, 2018

Scratch - maszyna losująca

Od kilku już lat wykorzystuję podczas zajęć środowisko Scratch, najpierw na kółku, w ramach projektu Mistrzowie Kodowania, a później również podczas zajęć komputerowych, czy wreszcie teraz podczas informatyki. Uzbierało się kilkanaście projektów, którymi chciałabym się z Wami podzielić, być może któryś z nich Was zainteresuje...

Na początek przykład zastosowania losowania - na przykład losowania liczb

Poniższy skrypt pozwala stworzyć bardzo prostą maszynę losującą, niestety musimy w skrypcie ustawić z jakiego przedziału ma to być liczba, ponadto za każdym razem losowana jest tylko jedna liczba.



Efekt działania skryptu




Przyznacie, że taka maszyna losująca średnio nam się przyda. Oczywiście taki prosty przykład można wykorzystać w klasach młodszych, aby wyjaśnić zasady wykorzystania klocka losuj Poniżej pokażę jak rozbudować skrypt wykorzystując zmienne i listy, aby maszyna losowała dowolną ilość liczb z zadanego przez użytkownika przedziału i do tego w efektowny sposób je wyświetlała.

Skrypt:




Opiszę ten skrypt w krokach:

Tworzymy zmienne ile (określa ile liczb będziemy losować), zmienną wszystkie (określa zakres zbioru) oraz zmienną traf, która będzie przechowywać wartość wylosowanej w danym momencie liczby. Zmienna traf, nie będzie wyświetlana na scenie, więc została odznaczona na liście zmiennych:   

 

Tworzymy listę wyniki, która będzie przechowywała wylosowane liczby (ponieważ w tym skrypcie będzie ich więcej niż jedna, więc aby przechować wynik losowania niezbędna jest nam tablica)




Kolejny krok to wyzerowanie zmiennych, co zagwarantuje, że każde kolejne losowanie przebiegnie bezbłędnie. Czyścimy również listę, aby gotowa była na przyjęcie nowych, wylosowanych liczb. Na początku ukrywamy również listę, aby pokazała się dopiero w momęcie losowania liczb.



Kolejny etap, to ustawienie pytań dla duszka i wczytanie z klawiatury zakresu zbioru i ilości losowanych liczb. Wykorzystujemy w tym celu czujnik odpowiedź, aby wartość wpisaną na klawiaturze przypisać odpowiedniej zmiennej



Podczas wykonywania skryptu przyniesie nam to następujący efekt:





Teraz nastąpi losowanie kolejnych liczb - zmiennej traf zostanie przypisana losowa liczba z przedziału od 1 do wszystkie:





Następnie zostanie wyświetlona tablica wyniki, w której zaczną się pojawiać kolejno losowane liczby. Zauważcie, że pojawia się pętla, która będzie powtarzana ile razy, a kolejne wyniki losowania zostaną wpisane na listę i wyświetlone na scenie.





Na przykład, kiedy będziemy chcieli wylosować 5 liczb z 16, na scenie zobaczymy następujący wynik:





Możemy wykorzystać taką maszynę losującą dla ustalenia, kto w danym dniu będzie odpowiadać, ale gdybyśmy chcieli bardzie spersonalizować takie losowanie, można utworzyć dodatkową listę, która będzie przechowywać imiona i nazwiska uczniów. To z tej listy właśnie podczas losowania zostaną wylosowani konkretni uczniowie.

Poniżej umieszczam przykład takiego skryptu, postarajcie przeanalizować go samodzielnie.

Deklaracja zmiennych i list:





Stworzenie listy z nazwiskami uczniów:



Skrypt właściwy:



Efekt losowania:


 

8 komentarzy:

  1. jest sposób aby dodac wyniki z listy do siebie i aby sie wysswietliła ich suma?

    OdpowiedzUsuń
    Odpowiedzi
    1. Oczywiście, możemy do listy wczytać zarówno ciągi znaków jak i liczby. Możemy także wykonywać obliczenia na elementach listy...

      Usuń
    2. Postaram się przygotować wpis, który pokaże jak to zrobić...

      Usuń
  2. A jak zrobić losowanie pytań np. od 1 do 10 aż do wyczerpania się liczb i bez powtarzaznia się pytań oraz wyświetlania ich pojedynczo? :)

    OdpowiedzUsuń
  3. Można wyświetlać poszczególne elementy listy, a nie całą listę. Wyświetlane pytania usuwać, lub posłużyć się numerem elementu, aby sprawdzić, czy wcześniej nie został wyświetlony...

    OdpowiedzUsuń

Zachęcam do komentowania i dzielenia się spostrzeżeniami i opiniami na temat mojego bloga i tematyki postów.