Gra interaktywna. Po naciśnięciu symbolu trójkąta na ekranie widać duszka znajdującego się na scenie. W lewym górnym okna gry widoczny jest przycisk uruchom. Po jego naciśnięciu nad duszkiem unosi się okno dialogowe z napisem: pomyślałem liczbę całkowitą od jeden do stu. Jaka to liczba. W górnej części okna, po prawej stronie przycisku zatrzymaj pojawiają się przyciski strzałka w lewo. Cyfra. Przykładowo jeden. Strzałka w prawo. Znak zatwierdzenia w kształcie ptaszka. Po zatwierdzeniu liczby duszek wydaje komunika przykładowo: moja liczba jest większa lub moja liczba jest mniejsza proszę wybierz ponownie. W przypadku odgadnięciu liczby w jak najmniejszej ilości prób pojawia się komunikat: brawo jesteś mistrzem. W przypadku odgadnięciu liczby przy większej ilości niż minimalna pojawia się przykładowy komunikat: odgadłeś liczbę w ósmej próbie. Możesz lepiej.
Teraz twoim zadaniem będzie przygotowanie aplikacji, w której role zostaną odwrócone. To duszek zgadnie liczbę pomyślaną przez ciebie.
ibbyMZ8WPA_d5e122
Algorytm zgadującego
Ćwiczenie 1
Uruchom poniższą aplikację, w której duszek zgaduje pomyślaną przez ciebie liczbę. Następnie zapisz w postaci listy kroków algorytm zadawania pytań przez duszka.
R1UnYkzZgpxII
Interaktywna aplikacja, w której duszek zgaduje liczbę pomyślaną przez ciebie
Interaktywna aplikacja, w której duszek zgaduje liczbę pomyślaną przez ciebie
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
Łatwo zauważyć, że duszek zawsze pyta się o liczbę będącą najbliżej połowy przedziału, w którym liczba na pewno się znajduje. W zależności od odpowiedzi odpowiednio zawęża przedział poszukiwań. Powinien więc pamiętać końce przedziału oraz wyznaczyć jego środek, a po otrzymaniu odpowiedzi zaktualizować jeden z końców. Jak dojdzie do sytuacji, że początek jest równy końcowi, to już wie jaka to liczba (chyba, że wcześniej przypadkowo zgadł).
Algorytm zgadującego liczbę naturalną z zakresu od do :
– dolna granica przedziału, w którym znajduje się poszukiwana liczba; – górna granica przedziału, w którym znajduje się poszukiwana liczba; – środek przedziału od do .
Przykładowy zapis algorytmu zgadującego:
Ustaw zmienną na .
Ustaw zmienną na .
Powtarzaj aż 3.1. Ustaw na środek przedziału od do . 3.2. Zapytaj się użytkownika, czy wybrana przez niego liczba to . 3.3. Jeżeli tak, to: ⠀ 3.3.1. Powiedz „Zgadłem!”. ⠀ 3.3.2. Zatrzymaj ten skrypt. 3.4. Jeżeli poszukiwana liczba jest większa to: ⠀ 3.4.1. Ustaw zmienną na . W przeciwnym przypadku: ⠀ 3.4.2. Ustaw zmienną na .
Powiedz „Wiem, Twoja liczba to: „ .
Zatrzymaj ten skrypt.
Ćwiczenie 1
Zapisz w postaci listy kroków algorytm najszybszego zgadywania wybranej liczby spośród podanego wcześniej przedziału.
Łatwo zauważyć, że duszek zawsze pyta się o liczbę będącą środkiem przedziału, w którym liczba na pewno się znajduje. W zależności od odpowiedzi odpowiednio zawęża przedział poszukiwań. Powinien więc pamiętać końce przedziału oraz wyznaczyć jego środek, a po otrzymaniu odpowiedzi zaktualizować jeden z końców. Jak dojdzie do sytuacji, że początek jest równy końcowi, to już wie jaka to liczba (chyba, że wcześniej przypadkowo zgadł).
Algorytm zgadującego liczbę naturalną z zakresu od do :
– dolna granica przedziału, w którym znajduje się poszukiwana liczba; – górna granica przedziału, w którym znajduje się poszukiwana liczba; – środek przedziału od do .
Przykładowy zapis algorytmu zgadującego:
Ustaw zmienną na .
Ustaw zmienną na .
Powtarzaj aż 3.1. Ustaw na środek przedziału od do . 3.2. Zapytaj się użytkownika, czy wybrana przez niego liczba jest większa, mniejsza czy równa . 3.3. Jeżeli równa, to: ⠀ 3.3.1. Powiedz „Zgadłem!”. ⠀ 3.3.2. Zatrzymaj ten skrypt. 3.4. Jeżeli poszukiwana liczba jest większa to: ⠀ 3.4.1. Ustaw zmienną na . W przeciwnym razie: ⠀ 3.4.2. Ustaw zmienną na .
Powiedz „Wiem, Twoja liczba to: „ .
Zatrzymaj ten skrypt.
REW4E0CRzlXwB
Tu zapisz swój algorytm.
Przygotowujemy aplikację
Ustalimy zasady komunikacji z grającym, czyli sposób w jaki gracz będzie odpowiadał na pytania duszka. Można do tego wykorzystać odpowiednio wcześniej wybrane słowa, znaki lub przyciski.
Możesz wykorzystać notatnik do zapisywania swoich odpowiedzi i komentarzy.
R11mJbWL00gY6
Ćwiczenie 2
Określ sposób komunikacji, czyli jak użytkownik będzie odpowiadał na pytania zadawane przez duszka.
Przykład 1: „tak” – to moja liczba, „mniej” – moja liczba jest mniejsza, „więcej” – moja liczba jest większa. Przykład 2: „” – to moja liczba, „” – moja liczba jest mniejsza, „” – moja liczba jest większa. Przykład 3: „tak” – to moja liczba, „za dużo” – moja liczba jest mniejsza, „za mało” – moja liczba jest większa.
W przykładowej aplikacji komunikacja następowała za pomocą przycisków. W pierwszej wersji gry możesz zastosować blok zapytaj i czekajibbyMZ8WPA_d403e140zapytaj i czekaj. Jest on prostszy do zastosowania, a komunikacja pomiędzy graczem i duszkiem będzie działać poprawnie.
Należy przewidzieć sytuację, że grający wpisze tekst niezrozumiały dla duszka – pomyli się, wpisując odpowiedź. Po uruchomieniu gry, np. zieloną flagą, dać czas graczowi na pomyślenie liczby, niech zadawanie pytań przez duszka rozpocznie się po określonym czasie lub po wciśnięciu wybranego klawisza na klawiaturze.
Ćwiczenie 3
Zmodyfikuj zapis algorytmu w postaci listy kroków uwzględniając wszystkie poprzednie ustalenia.
Dla ułatwienia tego ćwiczenia, pomińmy fakt, że środek przedziału nie jest zawsze liczbą całkowitą. Ten problem zostanie rozwiązany w późniejszych ćwiczeniach.
Przykładowe modyfikacje:
Kiedy kliknięto zieloną flagę:
Powiedz „Pomyśl liczbę całkowitą od do , a ją zgadnę! Naciśnij spację, jak będziesz gotowy.”.
Czekaj aż klawisz spacja naciśnięty.
Ustaw zmienną na .
Ustaw zmienną na .
Powtarzaj aż : 5.1. Ustaw na środek przedziału od do . 5.2. Zapytaj użytkownika, czy wybrana przez niego liczba to . 5.3. Jeżeli odpowiedź = tak to: ⠀ 5.3.1. Powiedz „Zgadłem!”. ⠀ 5.3.2. Zatrzymaj ten skrypt. 5.4. Jeżeli odpowiedź = więcej to: ⠀ 5.4.1. Ustaw zmienną na . W przeciwnym razie: ⠀ 5.4.2. Jeżeli odpowiedź = mniej to: ⠀ 5.4.2.1. Ustaw zmienną na . ⠀ W przeciwnym razie: ⠀ 5.4.2.2. Powiedz „Nie rozumiem..., odpowiedz mi: tak, mniej lub więcej”.
Powiedz „Wiem! Twoja liczba to:⠀” .
Zatrzymaj ten skrypt.
Przygotuj interfejs użytkownika do gry, czyli wybierz scenę (lub zaprojektuj własną), dobierz duszka, który będzie zadawał pytania. Utwórz też zmienne, które będą potrzebne przy realizacji algorytmu zgadywania liczby.
Ćwiczenie 4
Utwórz skrypt realizujący algorytm zgadywania liczby przez duszka.
Wyznaczając środek przedziału otrzymasz liczbę niecałkowitą dla nieparzystego. Skorzystaj z klocka podłogaibbyMZ8WPA_d403e184podłoga, aby uzyskać część całkowitą liczby. Do łączenia tekstu i wartości zmiennej w wyświetlanych dymkach skorzystaj z klocka połączibbyMZ8WPA_d403e190połącz.
Rw0G6voDC4gcr
Skrypt realizujący algorytm zgadywania liczby przez duszka. Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Powiedz: "Pomyśl liczbę całkowitą od jeden do sto, a ja ją zgadnę! Naciśnij spację, kiedy będziesz gotowy." Trzeci wiersz: Czekaj aż klawisz: "spacja" będzie naciśnięty. Czwarty wiersz: Ustaw zmienną: "zakres dolny" na jeden. Piąty wiersz: Ustaw zmienną: "zakres górny" na sto. Szósty wiersz: Powtarzaj aż zmienna: "zakres dolny" będzie równa zmiennej: "zakres górny". Siódmy wiersz: Ustaw zmienną: "zgadywana liczba" na podłogę z sumy zmiennych: "zakres dolny" i "zakres górny" podzielony przez dwa. Ósmy wiersz: Zapytaj: "Czy Twoja liczba to:" zmienna: "zgadywana liczba" i czekaj. Dziewiąty wiersz: Jeżeli zmienna: "odpowiedź" równa się: "tak" to. Dziesiąty wiersz: Powiedz: "Wiem! Twoja liczba to: zmienna: "zgadywana liczba".". Jedenasty wiersz: "Zatrzymaj ten skrypt". Dwunasty wiersz: "Jeżeli zmienna: "odpowiedź" równa się: "więcej" to. Trzynasty wiersz: Ustaw zmienną: "zakres dolny" na zmienną: "zgadywana liczba" plus jeden. Czternasty wiersz: W przeciwnym razie, jeżeli zmienna: "odpowiedź" równa się: "mniej" to. Piętnasty wiersz: Ustaw zmienną: "zakres górny" na zmienną: "zgadywana liczba" minus jeden. Szesnasty wiersz: przeciwnym razie powiedz: "Nie rozumiem... Odpowiedz mi "tak", "więcej" lub "mniej" przez dwie sekundy. Siedemnasty wiersz: Powiedz: "Wiem! Twoja liczba to:" i zmienna: "zakres dolny". Osiemnasty wiersz: Zatrzymaj ten skrypt.
Przykładowy skrypt do zgadywania liczby przez duszka.
Źródło: GroMar, licencja: CC BY 3.0.
ibbyMZ8WPA_d403e140
R1S3q3HOiKFxH
Zrzut ekranu przedstawia blok z kategorii "czujniki": "Zapytaj ... i czekaj". Po utworzeniu zapytania, w tej samej kategorii znajduje się blok: "odpowiedź" w którym przetrzymywana będzie odpowiedź na zadane pytanie.
Blok "zapytaj ... i czekaj" z kategorii "Czujniki".
Źródło: GroMar, licencja: CC BY 3.0.
ibbyMZ8WPA_d403e184
RuTTNIKkDkfZm
Zrzut ekranu przedstawia bloki z kategorii "wyrażenia": "Podłoga z .." i "Sufit z ...". Pierwszy blok zaokrągla podaną w środku liczbę w dół do liczby całkowitej. Drugi blok zaokrąglą liczbą podaną w środku do góry do liczby całkowitej.
Bloki wyrażeń "podłoga z ..." oraz "sufit z ...".
Źródło: GroMar, licencja: CC BY 3.0.
Funkcja podłoga zaokrągla liczbę rzeczywistą „w dół”, a funkcja sufit „w górę”. Wartością funkcji podłoga jest największa liczba całkowita mniejsza lub równa od parametru, a wartością funkcji sufit najmniejsza liczba całkowita większa od parametru. Funkcję należy wybrać z listy rozwijalnej.
R1cKFREsqJa1d
Zrzut ekranu przedstawia blok z kategorii "wyrażenia": "podłoga z ...". Poniżej zostało rozwinięte menu kontekstowe z wszystkimi funkcjami jakie blok może reprezentować. Znajdują się tam: "wartość bezwzględna", "podłoga", "sufit", "pierwiastek kwadratowy", "sinus", "cosinus", "tangens", "arcus sinus", "arcus cosinus", "arcus tangens", "logarytm naturalny", "logarytm dziesiętny", "liczba eulera podniesiona do potęgi ...", "dziesięć do potęgi ...".
Blok "podłoga z ..." z rozwiniętą listą opcji.
Źródło: GroMar, licencja: CC BY 3.0.
Przykłady:
RnAVHPFDfbzua
Zrzut ekranu przedstawia przykładowe działanie skryptu opartego o blok: "podłoga". Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Powiedz: "Podłoga z liczby dwa przecinek osiem". Zatrzymaj ten skrypt. W wyniku tego skryptu duszek powie liczbę dwa.
Przykładowy skrypt z wykorzystaniem bloku "podłoga z ...".
Źródło: GroMar, licencja: CC BY 3.0.
RaSNHkXRWfpWx
Zrzut ekranu przedstawia przykładowe działanie skryptu opartego o blok: "podłoga". Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Powiedz: "Podłoga z liczby minus dwa przecinek osiem". Zatrzymaj ten skrypt. W wyniku tego skryptu duszek powie liczbę minus trzy.
Przykładowy skrypt z wykorzystaniem bloku "podłoga z ...".
Źródło: GroMar, licencja: CC BY 3.0.
R7GxsGOPK0gDl
Zrzut ekranu przedstawia przykładowe działanie skryptu opartego o blok: "sufit". Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Powiedz: "Sufit z liczby dwa przecinek dwa". Zatrzymaj ten skrypt. W wyniku tego skryptu duszek powie liczbę trzy.
Przykładowy skrypt z wykorzystaniem bloku "sufit z ...".
Źródło: GroMar, licencja: CC BY 3.0.
RdqNvwOhTZmox
Zrzut ekranu przedstawia przykładowe działanie skryptu opartego o blok: "sufit". Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Powiedz: "Sufit z liczby minus dwa przecinek dwa". Zatrzymaj ten skrypt. W wyniku tego skryptu duszek powie liczbę minus dwa.
Przykładowy skrypt z wykorzystaniem bloku "sufit z ...".
Źródło: GroMar, licencja: CC BY 3.0.
ibbyMZ8WPA_d403e190
RWGRoB7qLCa5R
Zrzut ekranu przedstawia blok z kategorii "wyrażenia": "połącz ... i ...". Ten blok pozwala połączyć na przykład tekst mówiony przez duszka z wartością zmiennej.
Blok z kategorii "Wyrażenia" - "połącz ... i ...".
Źródło: GroMar, licencja: CC BY 3.0.
ibbyMZ8WPA_d5e406
Zadania uzupełniające
Ćwiczenie 5
Wprowadź do aplikacji licznik pytań. Uruchom kilkukrotnie aplikację. Ile pytań maksymalnie zada duszek, aby zgadnąć liczbę pomyślaną przez ciebie? Podanie niezrozumiałej dla duszka odpowiedzi nie powinno zwiększać licznika.
Postaraj się wymyślić taką liczbę, której duszek będzie szukał najdłużej. Zastanów się, w jakim przedziale powinieneś takich liczb szukać.
W najgorszym przypadku duszek zgadnie twoją liczbę w siódmej próbie.
R7J8NMroC792T
Skrypt realizujący algorytm zgadywania liczby przez duszka. Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Powiedz: "Pomyśl liczbę całkowitą od jeden do sto, a ja ją zgadnę! Naciśnij spację, kiedy będziesz gotowy." Trzeci wiersz: Czekaj aż klawisz: "spacja" będzie naciśnięty. Czwarty wiersz: Ustaw zmienną: "zakres dolny" na jeden. Piąty wiersz: Ustaw zmienną: "zakres górny" na sto. Szósty wiersz: Ustaw zmienną: "licznik" na zero. Siódmy wiersz: Powtarzaj aż zmienna: "zakres dolny" będzie równa zmiennej: "zakres górny". Ósmy wiersz: Ustaw zmienną: "zgadywana liczba" na podłogę z sumy zmiennych: "zakres dolny" i "zakres górny" podzielony przez dwa. Dziewiąty wiersz: Zapytaj: "Czy Twoja liczba to:" zmienna: "zgadywana liczba" i czekaj. Dziesiąty wiersz: Jeżeli zmienna: "odpowiedź" równa się: "tak" to. Jedenasty wiersz: Powiedz: "Wiem! Twoja liczba to: zmienna "zgadywana liczba". Udało mi się ją zgadnąć w próbie numer: zmienna "licznik".". Dwunasty wiersz: "Zatrzymaj ten skrypt". Trzynasty wiersz: "Jeżeli zmienna: "odpowiedź" równa się: "więcej" to. Czternasty wiersz: Ustaw zmienną: "zakres dolny" na zmienną: "zgadywana liczba" plus jeden. Piętnasty wiersz: Zmień zmienną: "licznik" o jeden. Szesnasty wiersz: W przeciwnym razie, jeżeli zmienna: "odpowiedź" równa się: "mniej" to. Siedemnasty wiersz: Ustaw zmienną: "zakres górny" na zmienną: "zgadywana liczba" minus jeden. Osiemnasty wiersz: Zmień zmienną: "licznik" o jeden. Dziewiętnasty wiersz: przeciwnym razie powiedz: "Nie rozumiem... Odpowiedz mi "tak", "więcej" lub "mniej" przez dwie sekundy. Dwudziesty wiersz: Powiedz: "Wiem! Twoja liczba to:" i zmienna: "zakres dolny. Udało mi się ją zgadnąć w próbie numer: zmienna "licznik".". Dwudziesty pierwszy wiersz: Zatrzymaj ten skrypt.
Przykładowy skrypt zgadywania liczby przez duszka uzupełniony o licznik pytań.
Źródło: GroMar, licencja: CC BY 3.0.
Ćwiczenie 6
Zmień przedział, w którym znajduje się pomyślana liczba. Najlepiej, niech duszek się zapyta na początku o dolną i górną granicę przedziału, w którym ma poszukiwać liczby. Wypróbuj działanie aplikacji dla różnych przedziałów, np. od do , od do . Obserwuj liczbę pytań zadawanych przez duszka.
Aby wprowadzić dynamicznie ustalany dolny i górny zakres przedziału, w jakim duszek ma szukać twojej liczby użyć bloku: zapytaj ... i czekaj. Znajdziesz go w kategorii Czujniki.
RLteh0xXvQG8H
Skrypt realizujący algorytm zgadywania liczby przez duszka. Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Zapytaj: "Pomyśl liczbę całkowitą, a ja ją zgadnę! Muszę jedynie znać przedział, wewnątrz jakiego mam jej szukać. Podaj mi jego dolną granicę." i czekaj. Trzeci wiersz: Ustaw zmienną: "zakres dolny" na zmienną: "odpowiedź". Czwarty wiersz: Zapytaj: "Podaj mi jego górną granicę." i czekaj. Piąty wiersz: Ustaw zmienną: "zakres górny" na zmienną: "odpowiedź". Szósty wiersz: Powiedz: "Naciśnij spację, kiedy będziesz gotowy. Siódmy wiersz: Czekaj aż klawisz: "spacja" będzie naciśnięty. Ósmy wiersz: Ustaw zmienną: "licznik" na zero. Dziewiąty wiersz: Powtarzaj aż zmienna: "zakres dolny" będzie równa zmiennej: "zakres górny". Dziesiąty wiersz: Ustaw zmienną: "zgadywana liczba" na podłogę z sumy zmiennych: "zakres dolny" i "zakres górny" podzielony przez dwa. Jedenasty wiersz: Zapytaj: "Czy Twoja liczba to:" zmienna: "zgadywana liczba" i czekaj. Dwunasty wiersz: Jeżeli zmienna: "odpowiedź" równa się: "tak" to. Trzynasty wiersz: Powiedz: "Wiem! Twoja liczba to: zmienna "zgadywana liczba". Udało mi się ją zgadnąć w próbie numer: zmienna "licznik".". Czternasty wiersz: "Zatrzymaj ten skrypt". Piętnasty wiersz: "Jeżeli zmienna: "odpowiedź" równa się: "więcej" to. Szesnasty wiersz: Ustaw zmienną: "zakres dolny" na zmienną: "zgadywana liczba" plus jeden. Siedemnasty wiersz: Zmień zmienną: "licznik" o jeden. Osiemnasty wiersz: W przeciwnym razie, jeżeli zmienna: "odpowiedź" równa się: "mniej" to. Dziewiętnasty wiersz: Ustaw zmienną: "zakres górny" na zmienną: "zgadywana liczba" minus jeden. Dwudziesty wiersz: Zmień zmienną: "licznik" o jeden. Dwudziesty pierwszy wiersz: przeciwnym razie powiedz: "Nie rozumiem... Odpowiedz mi "tak", "więcej" lub "mniej" przez dwie sekundy. Dwudziesty drugi wiersz: Powiedz: "Wiem! Twoja liczba to:" i zmienna: "zakres dolny. Udało mi się ją zgadnąć w próbie numer: zmienna "licznik".". Dwudziesty trzeci wiersz: Zatrzymaj ten skrypt.
Przykładowy skrypt zgadywania liczby przez duszka z podaniem przedziału.
Źródło: GroMar, licencja: CC BY 3.0.
Ćwiczenie 7
Przygotuj aplikację z wykorzystaniem przycisków do udzielania odpowiedzi.
Przyciski powinny być duszkami. Do komunikacji pomiędzy duszkami możesz wykorzystać mechanizm nadawania i odbierania komunikatówibbyMZ8WPA_d403e224mechanizm nadawania i odbierania komunikatów.
Skrypty głównego duszka, który zadaje pytania:
RGVpJlvm57eDY
Zrzut ekranu przedstawia 4 skrypty duszka odpowiedzialnego za zadawanie pytań, czy zgadywana przez niego liczba jest poprawna. Pierwszy skrypt: Pierwszy wiersz: Kiedy kliknięto. Drugi wiersz: Zapytaj: "Pomyśl liczbę całkowitą, a ja ją zgadnę! Muszę jedynie znać przedział, wewnątrz jakiego mam jej szukać. Podaj mi jego dolną granicę." i czekaj. Trzeci wiersz: Ustaw zmienną: "zakres dolny" na zmienną: "odpowiedź". Czwarty wiersz: Zapytaj: "Podaj mi jego górną granicę." i czekaj. Piąty wiersz: Ustaw zmienną: "zakres górny" na zmienną: "odpowiedź". Szósty wiersz: Powiedz: "Naciśnij spację, kiedy będziesz gotowy.". Siódmy wiersz: Czekaj, aż klawisz: "spacja" naciśnięty. Ósmy wiersz: Ustaw zmienną: "licznik" na jeden. Dziewiąty wiersz: Ustaw zmienną: "zgadywana liczba" na podłogę z sumy zmiennych: "zakres dolny" i "zakres górny" podzielony przez dwa. Dziesiąty wiersz: Powiedz: "Czy Twoja liczba to:" zmienna: "zgadywana liczba". Drugi skrypt odpowiada za akcję jaką podejmuje duszek, kiedy naciśniemy przycisk mówiący, że duszek zgadł poprawną liczbę. Pierwszy wiersz: Kiedy otrzymam wiadomość: "Tak". Drugi wiersz: Powiedz: "Wiem! Twoja liczba to: zmienna: "zgadywana liczba". Udało mi się ją zgadnąć w próbie numer: zmienna: "licznik". Trzeci skrypt odpowiada za akcję jaką podejmuje duszek, kiedy naciśniemy przycisk mówiący, że liczba podana przez duszka jest za duża. Pierwszy wiersz: Kiedy otrzymam wiadomość: "więcej". Drugi wiersz: Ustaw zmienną: "zakres dolny" na zmienną: "zgadywana liczba" plus jeden. Trzeci wiersz: Zmień zmienną: "licznik" o jeden. Czwarty wiersz: Ustaw zmienną: "zgadywana liczba" na podłogę z sumy zmiennych: "zakres dolny" i "zakres górny" podzielony przez dwa. Piąty wiersz: Powiedz: "Czy Twoja liczba to:" zmienna: "zgadywana liczba". Szósty wiersz: Jeżeli zmienna: "zakres dolny" równa się zmiennej: "zakres górny" to. Siódmy wiersz: Powiedz: "Wiem! Twoja liczba to: zmienna: "zakres dolny". Udało mi się ją zgadnąć w próbie numer: zmienna: "licznik".". Czwarty skrypt odpowiada za akcję jaką podejmuje duszek, kiedy naciśniemy przycisk mówiący, że liczba podana przez duszka jest za mała. Pierwszy wiersz: Kiedy otrzymam wiadomość: "mniej". Drugi wiersz: Ustaw zmienną: "zakres dolny" na zmienną: "zgadywana liczba" minus jeden. Trzeci wiersz: Zmień zmienną: "licznik" o jeden. Czwarty wiersz: Ustaw zmienną: "zgadywana liczba" na podłogę z sumy zmiennych: "zakres dolny" i "zakres górny" podzielony przez dwa. Piąty wiersz: Powiedz: "Czy Twoja liczba to:" zmienna: "zgadywana liczba". Szósty wiersz: Jeżeli zmienna: "zakres dolny" równa się zmiennej: "zakres górny" to. Siódmy wiersz: Powiedz: "Wiem! Twoja liczba to: zmienna: "zakres dolny". Udało mi się ją zgadnąć w próbie numer: zmienna: "licznik".".
Główny skrypt duszka, który jest odpowiedzialny za ustawienia początkowe.
Źródło: GroMar, licencja: CC BY 3.0.
R1U5nm0ANDjLx
Na zdjęciu przedstawiono algorytm skryptu odpowiedzialnego za wyświetlenie odgadniętej liczby oraz poinformowanie użytkownika o liczbie prób. W pierwszym bloku algorytmu znajduje się napis: kiedy otrzymałem. Za napisem znajduje się słowo Tak. Za słowem tak widoczny jest rozwijalny trójkąt wyboru opcji. W drugim bloku algorytmu znajduje się napis: powiedz. Za nim znajduje się wewnętrzny blok połącz i. Pomiędzy słowami połącz i znajduje się napis: Wiem! Twoja liczba to. Za literą i znajduje się kolejny blok połącz i. Pomiędzy słowami widać napis: zgadywana liczba. Za słowem i znajduje się kolejny blok z napisem połącz i. Pomiędzy słowami znajduje się napis: Udało mi się ją zgadnąć w próbie. Za literą i znajduje się napis: licznik. W trzecim bloku algorytmu znajduje się napis zatrzymaj ten skrypt. Słowo ten skrypt jest w rozwijalnym polu wyboru.
Skrypt odpowiedzialny za wyświetlenie odgadniętej liczby oraz poinformowanie użytkownika o liczbie prób.
Źródło: GroMar, licencja: CC BY 3.0.
R1Wiy7Mv4aV12
Na zdjęciu przedstawiono algorytm skryptu odpowiedzialnego za szukanie liczby użytkownika. W pierwszym bloku algorytmu znajduje się napis: kiedy otrzymałem. Za napisem znajduje się słowo Tak. Za słowem tak widoczny jest rozwijalny trójkąt wyboru opcji. W drugim bloku algorytmu znajduje się napis: ustaw zakres dolny na: Słowo zakres dolny umieszczony jest w polu wyboru. Za słowem na znajduje się wewnętrzny blok z napisem zgadywana liczba plus jeden. W trzecim bloku skryptu znajduje się napis: zmień licznik o jeden. Słowo licznik jest w rozwijalnym polu wyboru. W czwartym bloku skryptu znajduje się napis: ustaw licznik na. Słowo licznik znajduje się w rozwijalnym polu wyboru. Za słowem na widoczny jest wewnętrzny blok z napisem: podłoga z zakres dolny plus zakres górny podzielić na dwa. Słowo podlega znajduje się w rozwijalnym polu wyboru. W piątym blok skryptu znajduje się napis: powiedz. Za nim w wewnętrznym bloku znajduje się napis: połącz i. Pomiędzy słowami widać napis: czy twoja liczna to. Za słowem i znajduje się zmienna: zgadywana liczba. Szósty blok skryptu jest blokiem warunkowym jeżeli to. Pomiędzy napisami znajduje się napis: zakres dolny równa się zakres górny. Niżej znajduje się pierwszy blok warunku: powiedz. Za słowem powiedz znajduje się wewnętrzny blok połącz i. Pomiędzy słowami widoczny jest napis: wiem! Twoja liczba to. Za literką i znajduje się wewnętrzny blok połącz i. Pomiędzy słowami znajduje się napis: zakres dolny. Za literką i znajduje się kolejny blok z napisem połącz i. Pomiędzy słowami znajduje się napis: Udało mi się ją zgadnąć w próbie. Za literą i znajduje się napis: licznik. W szóstym bloku algorytmu znajduje się napis zatrzymaj ten skrypt. Słowo ten skrypt jest w rozwijalnym polu wyboru.
Skrypt odpowiedzialny za szukanie liczby użytkownika po otrzymaniu komunikatu "więcej".
Źródło: GroMar, licencja: CC BY 3.0.
RB9EMT8FWJcsX
Na zdjęciu przedstawiono algorytm skryptu odpowiedzialnego za szukanie liczby użytkownika. W pierwszym bloku algorytmu znajduje się napis: kiedy otrzymałem. Za napisem znajduje się słowo mniej. Za słowem mniej widoczny jest rozwijalny trójkąt wyboru opcji. W drugim bloku algorytmu znajduje się napis: ustaw zakres górny na: Słowo zakres dolny umieszczony jest w polu wyboru. Za słowem na znajduje się wewnętrzny blok z napisem zgadywana liczba minus jeden. W trzecim bloku skryptu znajduje się napis: zmień licznik o jeden. Słowo licznik jest w rozwijalnym polu wyboru. W czwartym bloku skryptu znajduje się napis: zgadywana liczba na. Słowo zgadywana liczba znajduje się w rozwijalnym polu wyboru. Za słowem na widoczny jest wewnętrzny blok z napisem: podłoga z zakres dolny plus zakres górny podzielić na dwa. Słowo podlega znajduje się w rozwijalnym polu wyboru. W piątym blok skryptu znajduje się napis: powiedz. Za nim w wewnętrznym bloku znajduje się napis: połącz i. Pomiędzy słowami widać napis: czy twoja liczna to. Za słowem i znajduje się zmienna: zgadywana liczba. Szósty blok skryptu jest blokiem warunkowym jeżeli to. Pomiędzy napisami znajduje się napis: zakres dolny równa się zakres górny. Niżej znajduje się pierwszy blok warunku: powiedz. Za słowem powiedz znajduje się wewnętrzny blok połącz i. Pomiędzy słowami widoczny jest napis: wiem! Twoja liczba to. Za literką i znajduje się wewnętrzny blok połącz i. Pomiędzy słowami znajduje się napis: zakres dolny. Za literką i znajduje się kolejny blok z napisem połącz i. Pomiędzy słowami znajduje się napis: Udało mi się ją zgadnąć w próbie. Za literą i znajduje się napis: licznik. W szóstym bloku algorytmu znajduje się napis zatrzymaj ten skrypt. Słowo ten skrypt jest w rozwijalnym polu wyboru.
Skrypt odpowiedzialny za szukanie liczby użytkownika po otrzymaniu komunikatu "mniej".
Źródło: GroMar, licencja: CC BY 3.0.
Skrypty duszków, które działają jako przyciski:
RW6IiuzxqvcPB
Na zdjęciu przedstawiono skrypt przycisku odpowiedzialnego za informowanie o poprawnym odgadnięciu liczby. W pierwszym bloku skryptu znajduje się napis: kiedy ten duszek kliknięty. W drugim bloku skryptu znajduje się napis: nadaj komunikat tak. Słowo tak znajduje się w rozwijalnym polu wyboru. W trzecim bloku skryptu znajduje się napis: zatrzymaj ten skrypt. Słowo ten skrypt znajduje się w rozwijalnym polu wyboru oznaczonym trójkątem.
Skrypt przycisku odpowiedzialnego za informowanie o poprawnym odgadnięciu liczby.
Źródło: GroMar, licencja: CC BY 3.0.
R10FYGEpKi0Gn
Zrzut ekranu przedstawia skrypt odpowiedzialny za przycisk, który naciskamy, kiedy chcemy przekazać duszkowi, że zgadywana przez niego liczba jest za mała. Pierwszy wiersz: Kiedy ten duszek kliknięty. Drugi wiersz: Nadaj komunikat: "Więcej". Trzeci wiersz: Zatrzymaj ten skrypt.
Skrypt przycisku odpowiedzialnego za informowanie o tym, że podana przez duszka liczba jest za mała.
Źródło: GroMar, licencja: CC BY 3.0.
RvY3yYG4Slt8O
Zrzut ekranu przedstawia skrypt odpowiedzialny za przycisk, który naciskamy, kiedy chcemy przekazać duszkowi, że zgadywana przez niego liczba jest za duża. Pierwszy wiersz: Kiedy ten duszek kliknięty. Drugi wiersz: Nadaj komunikat: "Mniej". Trzeci wiersz: Zatrzymaj ten skrypt.
Skrypt przycisku odpowiedzialnego za informowanie o tym, że podana przez duszka liczba jest za duża.
Źródło: GroMar, licencja: CC BY 3.0.
ibbyMZ8WPA_d403e224
Przykładowe wykorzystanie mechanizmu nadawania i odbierania komunikatów na przykładzie projektu w którym duszek, który bierze udział w wyścigu. Obok każdego z duszków biorących udział w wyścigu znajduje się kilka innych duszków (widownia), które dopingują swojego ulubionego sportowca. Reakcja widzów uzależniona jest od rezultatu wyścigu. Jeżeli duszek, którego dopingują wygra - będą się cieszyć. Jeżeli duszek przegra - będą smutni (przykład obejmuje skrypty odpowiedzialne za działanie pierwszego zawodnika oraz duszki, które mu kibicują):
Skrypt odpowiedzialny za działanie duszka biorącego udział w wyścigu:
Kiedy wciśnięto klawisz spacja:
Powtarzaj, aż dotyka mety: 1.1 Przesuń o wylosowaną liczbę kroków.
Ustaw zmienną Miejsce pierwszego zawodnika na (Miejsce drugiego zawodnika ).
Nadaj komunikat: Zawodnik nrna mecie.
Zatrzymaj ten skrypt.
Mechanizm nadawania i odbierania komunikatów w Scratchu, jak w tym przykładzie z duszkami, służy do interakcji między różnymi skryptami i duszkami. Może to być porównane do systemu wysyłania wiadomości między różnymi częściami programu.
Duszek na początku wyścigu (po naciśnięciu klawisza spacji), zaczyna się przemieszczać o losową ilość kroków. Gdy osiągnie metę, wysyła komunikat do wszystkich innych duszków (w tym przypadku do duszków kibicujących), że dotarł do mety.
Przykładowe algorytmy odpowiadające za działania duszka kibicującego pierwszemu zawodnikowi:
Kiedy kliknięto zieloną flagę:
Idź do pozycji startowej.
Zawsze: 2.1. Czekaj sekundy. 2.2. Zmień kostium na następny.
Kiedy otrzymam komunikat: Zawodnik nr 1 na mecie:
Jeżeli Miejsce pierwszego zawodnika = „1” to: 1.1. Powiedz „Hura! Wygraliśmy!”. W przeciwnym razie: 1.2. Powiedz „Buuu! Przegraliśmy!”. 1.3. Zatrzymaj inne skrypty duszka.
Zatrzymaj ten skrypt.
Duszek kibicujący reaguje na te komunikaty. Na początku (kiedy zaczyna się program po kliknięciu na zieloną flagę), ustawia się w określonym miejscu i zmienia kostium co jakiś czas. Kiedy odbierze komunikat, że duszek, któremu kibicuje, dotarł do mety, sprawdza, na jakim miejscu ten duszek zakończył wyścig. Jeśli był pierwszy, duszek kibicujący wyraża radość. Jeśli nie był pierwszy, duszek kibicujący wyraża rozczarowanie.
To pokazuje, jak komunikaty w Scratchu pozwalają duszkom na interakcję i reagowanie na działania innych duszków. Dzięki temu możesz tworzyć skomplikowane i interaktywne projekty.
Poniżej znajduje się pole tekstowe przeznaczone do zapisywania notatek. Możesz w nim zapisać wszystkie informacje, które uważasz za potrzebne.
R1EkSDYvxdTT5
Pole tekstowe do zapisywania odpowiedzi i notatek.