Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał

Zasady gry

W klasie piątej przygotowywaliście projekt pt. „Zabawa w zgadywanie liczby”. Duszek losował liczbę naturalną, np. od 1 do 100, a zadaniem gracza było odgadnięcie tej liczby. Duszek pomagał graczowi, podpowiadając, czy jego liczba jest mniejsza, czy większa, od podanej.

Polecenie 1

Zagraj z komputerem w zgadywanie liczby. Uruchom poniższą aplikację. Postaraj się zgadnąć liczbę w jak najmniejszej liczbie prób.

R18oKA0tBe8Py1
Aplikacja: Zabawa w zgadywanie liczby
Źródło: Janusz Wierzbicki <janusz.wierzbicki@oeiizk.waw.pl>, licencja: CC BY 3.0.

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

Zapisz w postaci listy kroków algorytm zadawania pytań przez duszka. Możesz uruchomić poniższą aplikację, w której duszek zgaduje liczbę pomyślaną przez ciebie.

R1LFe6wKBSnW61
Interaktywna aplikacja, w której duszek zgaduje liczbę pomyślaną przez ciebie
Źródło: Janusz Wierzbicki, Maciej Borowiecki, licencja: CC BY 3.0.
Wskazówka

Ł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ł).

ibbyMZ8WPA_d5e211

Przygotowujemy aplikację

Ćwiczenie 2

Ustal zasady komunikacji z grającym. W przykładowej aplikacji komunikacja następowała za pomocą przycisków. W pierwszej wersji gry wygodniej będzie komunikować się za pomocą polecenia zapytaj i czekajibbyMZ8WPA_d403e140zapytaj i czekaj. Należy więc określić sposób odpowiadania przez gracza: jakich znaków, słów lub tekstów będzie używał jako odpowiedzi na zadawane pytania przez duszka.

Ćwiczenie 3

Zmodyfikuj zapis algorytmu w postaci listy kroków uwzględniając ustalenia z poprzedniego zadania. Należy także przewidzieć sytuację, że grający wpisze tekst niezrozumiały dla duszka – pomyli się, wpisując odpowiedź. Po uruchomieniu gry, np. zieloną flagą, daj 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.

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.

Wskazówka

Wyznaczając środek przedziału c=(a+b)/2 otrzymasz liczbę niecałkowitą dla a+b nieparzystego. Skorzystaj z klocka podłogaibbyMZ8WPA_d403e184klocka podłoga, aby uzyskać część całkowitą liczby. Do łączenia tekstu i wartości zmiennej w wyświetlanych dymkach skorzystaj z klocka połączibbyMZ8WPA_d403e190klocka połącz.

ibbyMZ8WPA_d403e140
ibbyMZ8WPA_d403e184
ibbyMZ8WPA_d403e190
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?

Ć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ę, w jakim przedziale ma poszukiwać liczbę. Wypróbuj działanie aplikacji dla różnych przedziałów, np. od 1 do 1000, od 1 do 10000. Obserwuj liczbę pytań zadawanych przez duszka.

Ćwiczenie 7

Przygotuj aplikację z wykorzystaniem przycisków do udzielania odpowiedzi.

Wskazówka

Przyciski powinny być duszkami. Do komunikacji pomiędzy duszkami możesz wykorzystać mechanizm nadawania i odbierania komunikatówibbyMZ8WPA_d403e224mechanizm nadawania i odbierania komunikatów.

ibbyMZ8WPA_d403e224