Odgadywanie daty urodzin

Materiały stworzone przez trenerów programu „Mistrzowie Kodowania” finansowanego przez Samsung Electronics Polska, objęte licencją CC BY SA 3.0 PL "Creative Commons Uznanie Autorstwa 3.0 Polska".

aplikacja opisana w scenariuszu: https://scratch.mit.edu/projects/92705957/

Część I


Założenia projektu: Odgadnienia była to ulubiona rozrywka matematyczna w XVII i XVIII wieku. Zdolność odgadywania pomyślanej liczby, rezultatu pewnych kombinacji arytmetycznych, uważano wówczas za przejaw czarnoksięstwa :-) Projekt polega na odgadnięciu daty urodzenia użytkownika gry, jedynie na podstawie wykonania przez niego pewnych działań matematycznych. Inspiracją do stworzenia projektu była książka Szczepana Jeleńskiego “LILAVATI”.

Opis projektu:

“Odgadywanie daty urodzin” to projekt, w którym występuje jeden duszek - przewodnik całej gry. Na początku nasz bohater wita się z graczem, a następnie informuje uczestnika zabawy, jakie powinien wykonać kolejno działania, aby z uzyskanej przez niego liczby “odgadnąć” jego datę urodzin.

Część II

Realizacja: Tworzenie sceny, duszków oraz skryptów


Zacznijmy od przygotowania sceny. Wybieramy duszka oraz dobieramy tło gry, która zostanie uruchomiona poprzez naciśnięcie zielonej flagi.

Ur1.PNG

Rys. 1 Ustawienie tła sceny


Na początku duszek wita się z uczestnikiem i prosi go o wykonanie następujących działań matematycznych:

  1. Liczbę, która oznacza dzień twoich urodzin, pomnóż przez 20 i dodaj 77.
  2. Sumę pomnóż przez 5 i dodaj liczbę oznaczającą miesiąc, w którym przyszedłeś na świat.
  3. Pomnóż tę sumę przez 20 i znów dodaj 77.
  4. Pomnóż przez 5, dodaj liczbę złożoną z dwóch ostatnich cyfr roku, w którym się urodziłeś.

Na koniec prosi gracza, aby ten podał mu, jaką otrzymał liczbę.

Ur2.PNG

Rys. 2 Kolejne działania matematyczne


Zasada odgadnięcia daty urodzenia jest bardzo prosta. Wystarczy, że od otrzymanego wyniku odejmiemy liczbę 38885. Wówczas otrzymany wynik oznajmi nam datę urodzenia gracza, gdzie dwie ostatnie cyfry wskazują rok, dwie środkowe - miesiąc, a pozostałe - dzień urodzenia.

Załóżmy, że gracz urodził się 22 października 1976 roku. Wykonując kolejno wskazane działania, otrzyma następujące rezultaty pośrednie:

20 * 22 + 77 = 517

5 * 517 + 10 = 2595

20 * 2595 + 77 = 51977

5 * 51977 + 77 = 259961

A zatem odpowiedź, którą poda duszkowi, jest liczba: 259961. Po odjęciu od niej liczby 38885 otrzymamy 221076.

Problemem jest tutaj, w jaki sposób pokazać na scenie tę datę? Podanie np. wyniku 221076 nie będzie z pewnością zbyt łatwe do odczytania jako 22 października 1976 roku. A może 2076 roku?

W tym celu należy rozważyć dwa przypadki:

  • gracz urodził się w XX wieku - wówczas początkowymi cyframi roku będą 19;
  • gracz urodził się w XXI wieku- wówczas początkowymi cyframi roku będą 20.

Oczywiście bardzo łatwo można zmodyfikować program w przypadku gracza, który urodził się w innym wieku :-)

Zatem po uruchomieniu programu duszek pyta użytkownika, w jakim wieku się urodził:

Ur3.PNG

Rys. 3 Zapytanie o wiek, w którym urodził się gracz


Kolejnym problemem, który możemy zauważyć jest sytuacja, gdy użytkownik urodził się w dniu złożonym z liczby jednocyfrowej. Wówczas otrzymany ostateczny wynik będzie liczbą pięciocyfrową. Zatem dwie ostatnie cyfry wskażą rok urodzenia, druga i trzecia - miesiąc, a pierwsza cyfra - dzień urodzenia.


W celu poprawnego wyświetlenia na scenie daty urodzin, stwórzmy pięć zmiennych:

  1. wynik - tutaj zapiszemy liczbę, którą gracz otrzyma po wykonaniu wszystkich działań matematycznych (czyli jego odpowiedź na pytanie duszka: “Jaką liczbę otrzymałeś?”)
  2. data - wynik, który otrzymamy po wykonaniu działania: “odpowiedź - 38885”
  3. dzień - to będzie zmienna wskazująca dzień urodzin
  4. miesiąc - to będzie zmienna wskazująca miesiąc urodzin
  5. rok - to będzie zmienna wskazująca rok urodzin



Freepik.jpeg
Ostatnio zmodyfikowano 13:23, 23 mar 2017