Zmiany

Skocz do: nawigacji, wyszukiwania

Sumowanie

Dodane 2777 bajtów, 11:10, 7 lis 2014
[[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".'''
Link do gry: [http://scratch.mit.edu/projects/26090741/ Sumowanie]
Link do gry: [http://scratch.mit.edu/projects/25439415/ Sumowanie]
== Cel ==
Stworzenie gry polegającej na obliczaniu przez gracza sumy liczb proponowanych przez duszka
=== wprowadzenie ===
<small>Czas na realizację tej części: ok 15 min</small>
 
Proponujemy uczniom stworzenie gry według scenariusza:
# duszek - bohater prosi gracza o obliczenie sumy podanych przez niego losowo wybranych liczb,# następnie poczeka na wpisane przez gracza odpowiedzi, sprawdzi ją i poinformuje nas o poprawnej lub błędnej odpowiedzitym, czy odpowiedź jest dobra,czy też gracz popełnił błąd.# w przypadku poprawnej odpowiedzi naliczy graczowi punkt, w przypadku błędnej odpowiedzi punktu nie ma.
# duszek - bohater zada np.: 10 pytań i na koniec zabawy poinformuje nas o ilości zdobytych punktów za poprawne odpowiedzi.
=== tworzenie duszka ===
<small>Czas na realizację tej części: ok 10 min</small>
 
Nasza gra posiadała tylko jednego duszka. Możemy umieścić go w ciekawej scenerii.
Sposoby tworzenia nowego duszka i sceny są dokładnie opisane w scenariuszu '''Cykl życia motyla'''.
=== instrukcje dla duszka ===
<small>Czas na realizację tej części: ok 65 min</small>
Zaczniemy od stworzenia skryptu, w którym duszek będzie nas witał i zaprosi zaproszał do gry.
[[Plik:Sum5Sum5c.png]]
Następnie zaprogramujemy wybieranie przez duszka liczb w narzuconym zakresie. W tym celu musimy najpierw wprowadzić zmienne: '''Liczba a''' i '''Liczba b''', które będą przechowywały wylosowane liczby. Należy je rozumieć, jak szuflady w komodzie. Zmienna '''Liczba a''' - to pierwsza z szuflad, '''Liczba b''' - to ruga szuflada. W każdej z nich duszek ma do wybory pewną pulę liczb. Wysuwa szufladę pierwszą '''Liczba a''' i wyciąga kartonik z liczbą, to samo powtarza w przypadku szuflady nazwanej '''Liczba b'''. Po wykonaniu tych czynności duszek prosi nas o podanie sumy wylosowanych Widok na kartonikach liczb.scenie:
[[Plik:Sum5d.png|300px|]] ==== wprowadzenie zmiennych ==== W pierwszej kolejności zaprogramujemy wybieranie przez duszka liczb w określonym zakresie. W tym celu musimy najpierw wprowadzić zmienne: '''Liczba a''' i '''Liczba b''', które będą przechowywały wylosowane liczby. Zmienne możemy wytłumaczyć uczniom na zasadzie komody z szufladami. Zmienna '''Liczba a''' - to pierwsza z szuflad, '''Liczba b''' - to druga szuflada. Do każdej szuflady wrzucamy kartoniki z liczbami w ustalonym zakresie np. od 1 do 10. Duszek będzie losował po jednej liczbie z każdej szuflady. Wysuwa szufladę pierwszą '''Liczba a''' i wyciąga kartonik z liczbą, to samo powtarza w przypadku szuflady nazwanej '''Liczba b'''. Po wykonaniu tych czynności duszek prosi nas o podanie sumy wylosowanych na kartonikach liczb. Zmienną wprowadzamy w kategorii klocków '''dane''' poprzez wybranie opcji ''stwórz nową zmienną''. Musimy zaznaczyć odpowiednią opcję przypisania zmiennej o i zatwierdzić przyciskiem OK.
[[Plik:okn1a.png]]
Teraz ustawiamy zakresy losowania naszych zmiennych. Wykorzystamy do tego blok [[Plik:Los1.png|losuje w danym zakresie]].Jeśli ich suma dwóch liczb ma mieścić się w zakresie 20 , to każda z tych liczb musi być wybrana z przedziału od 1 do 10, zatem:
[[Plik:Sum2.png|dopisanie zmiennym ich zakresów losowania]]
==== pytanie i badanie odpowiedzi ==== Następnie tworzymy skrypty odpowiadające za zadawanie pytań pytania i sprawdzanie odpowiedzi. Musimy połączyć w nich wyświetlany tekst, losowane przez program liczby i wyrażenie matematyczne: arytmetyczne- ''dodawanie''. Użyjemy nowego klocka z kategorii wyrażenia:
[[Plik:Sum2a.png|pozwala tworzyć wyrażenie z użyciem zmiennych]]. Dzięki niemu program będzie mógł w wyświetlanym tekście wstawiać losowo wybrane przez siebie liczby:
[[Plik:Sum2b.png|zadaje pytanie i czeka na odpowiedź]]
Teraz zajmijmy się sprawdzaniem odpowiedzi podanej przez gracza. Program musi obliczyć wyrażenie matematyczne i porównać jego wynik z odpowiedzią wpisaną przez gracza. Następnie stwierdzić czy on jest poprawny czy błędny. Do porównania obliczeń programu i gracza użyjemy klocków z kategorii '''wyrażenia''': [[Plik:Sum2c.png]] i [[Plik:Sum2c1.png]] umożliwiających programowanie działań matematycznychoraz klocka '''kontroli''' [[Plik:Sum4c.png|badanie możliwych odpowiedzi]]- pozwalającego zbadać dwa przypadki odpowiedzi. Użycie ich w skrypcie, w przypadku naszego duszka, będzie następujące:
[[Plik:Sum3.png|porównywanie wyników]]
i dołączamy do niego Dołączamy reakcję duszka na możliwe odpowiedzi. Jeśli odpowiedź jest poprawna to np.: duszek powie '''super!''', w przypadku błędnej np.: zaproponuje przejście do kolejnego działania, może również zakomunikować błąd jakimś dźwiękiem:
[[Plik:Sum4.png|odpowiedzi pojawiające się po sprawdzeniu wyniku działania]]
'''Wskazówka:''' W powyśzych powyższych odpowiedziach możemy zaprezentować graczowi jeszcze raz postać działania wraz z poprawnym wynikiemcałość rozwiązania np.: '''Super! 8+4=12'''. Wiąże się to jednak z wielokrotnym łączenie klocka łączeniem klocków [[Plik:Sum2a.png]]. Skrypt odpowiedzi z zastosowaniem powyższej możliwości wygląda następująco:
[[Plik:Sum4a.png|==== odgraniczenie ilości pytań w tekście pojawia się wyrażenie z poprawnym wynikiem]]grze ====
Wkładając Jeżeli przyjmiemy, że w grze będzie ograniczona ilość pytań, np.: 10, to wszystkie omówione omawiane skrypty powinniśmy umieścić w pętlę bloku [[Plik:Ok9cSum4e.png|zapętla grępowtarzanie skryptów]] powstanie nam nie kończąca się gra. Skrypt będzie wyglądał następująco:  [[Plik:Sum5a.png]] ==== naliczanie punktów ====Do gry możemy wprowadzić licznik punktowania poprawnych odpowiedzi. W tym celu musimy utworzyć nową zmienną '''punkty''' - czyli kolejną szufladę, sprawdzająca umiejętność dodawania liczb z zakresu podanego w skrypcie duszka (której duszek będzie wyjmował punkty za poprawną odpowiedź. Postępujemy analogicznie jak w przypadku tego scenariusza jest to zakres tworzenia zmiennych '''Liczba a''' i '''Liczba b'''. Z tą różnicą, że zmienną punkty zostawiamy widoczną na scenie (nie odhaczamy zaznaczenia przy nowo powstałej zmiennej).  [[Plik:Okn1b.png]] Żeby punkty przy każdorazowym uruchomieniu gry naliczały się od początku - po uruchomieniu gry muszą się zerować, blok [[Plik:Sum6.png|zeruje licznik punktów]]. Aby po każdorazowej poprawnej odpowiedzi naliczały się - muszą zwiększać się o 1 do 20), blok [[Plik:Sum6a. png|zwiększa licznik punktów o 1]]. Wykorzystując te klocki można dokonać następującej modyfikacji:  [[Plik:Sum5b.png|naliczanie punktów w grze]] Po skończonej rundzie dziesięciu pytań nasz duszek - bohater może poinformować o końcu gry oraz ilości zdobytych punktów. Następnie zakończyć działanie gry. Kolejny raz pomocny będzie blok [[Plik:Sum2a.png]] umożliwiający połączenie wyświetlanego tekstu ze zmienną '''punkty''': [[Plik:Sum6b.png|wyświetla tekst i zapamiętaną wartość zmiennej]]
Cały skrypt duszka wygląda następująco:
[[Plik:Mm11pSum6c.png|1100pxcały skrypt duszka]] [[Plik:Sum6d.png|right|przykładowy urywek skryptu na scenie]]
== Co dalej? ==
* animację postaci duszka,
* dodanie zmiennej umożliwiającej graczowi określanie zakresu trudności gry (czyli zwiększania lub zmniejszania zakresu liczb do wyboru)
* dodanie zmiennej umożliwiającej graczowi wybór ilości pytań w grze,
* wyświetlanie w odpowiedziach duszka całego działania z poprawnym wynikiem,
* zmianę gry na wersję nieskończonej ilości pytań.
 
Grę sumowanie można zmienić na grę mnożenie dokonując niewielkiej modyfikacji skryptów.
 
http://scratch.mit.edu/projects/25978003/#editor