Moduł interaktywny game
Transkrypt
Moduł interaktywny game
Moduł interaktywny game Prowadzący: Łukasz Dunaj, strona kółka: atinea.pl/kolko Bardzo często nieodzowna jest znajomość obecnego czasu systemu bądź okresu, jaki upływa pomiędzy pewnymi zdarzeniami w programie. Ponadto w niektórych zastosowaniach przydatna jest możliwość generowania losowych liczb, które mogą przykładowo służyć do testowania pewnych części programu. Aby sprostać tym wymaganiom programistów w NianioLangu z pomocą przychodzi moduł game. Przegląd funkcji bibliotecznych dla modułu game: game::random(liczba); game::time(); zwraca losową liczbę naturalną z przedziału [0; liczba – 1], czyli od 0 do liczba - 1 włącznie zwraca czas w milisekundach jaki upłynął od 1 stycznia 1970 r Uruchom i przeanalizuj poniższy program, który losuję liczbę x z przedziału od 0 do 9, a następnie czeka x sekund. use console; use game; def test::main() { var x = game::random(10); var t = game::time(); while (game::time() < t + x * 1000) { } console::print('Koniec :)'); } Zadania Zadanie 1 Napisz program, który wczyta liczbę n, a następnie wypisze losową liczbę z przedziału od 0 do n-1. Przykład 1: Podaj n: 10 Losowa liczba: 5 Przykład 2: Podaj n: 42 Losowa liczba: 11 Zadanie 2 Napisz program, który wczyta liczbę a oraz b (b >= a), a następnie wypisze losową liczbę z przedziału od a do b. Przykład 1: Podaj a: 10 Podaj b: 100 Losowa liczba: 50 Przykład 2: Podaj a: 42 Podaj b: 42 Losowa liczba: 42 Zadanie 3 Napisz program, który wczytując dwie liczby obliczy ile czasu (w pełnych sekundach!) minęło pomiędzy wpisaniem pierwszej, a drugiej liczby. Przykład: Podaj a: 42 Podaj b: 111 Minęło: 8 s Zadanie 4 Napisz program, który wylosuje dwie liczby a i b z zakresu od 0 do 10, następnie przedstawi je użytkownikowi jako pytanie z tabliczki mnożenia, a * b = ? Wczytaj odpowiedź użytkownika, sprawdź ją oraz oblicz ile czasu zajęło mu udzielenie odpowiedzi. Przykład 1: 5 * 8 = ? 40 Dobrze! Zajęło Ci to 3s. Przykład 3: 4 * 2 = ? 9 Źle! Zajęło Ci to 2s. Zadanie 5 Napisz program, który wczyta liczbę n, a następnie po n sekundach wypisze dowolny komunikat. Przykład: Podaj n: 6 Kółko informatyczne!!! Zadanie 6 Napisz program odliczający co sekundę od 10 do 0. Wskazówka: użyj pętli oraz game::time() Przykład: 10 9 8 7 6 5 4 3 2 1 Koniec :) Zadanie 7 Napisz program - grę na szybkość, który odlicza od 3 do 0 i oczekuje na dowolny znak od użytkownika. Zadaniem gracza jest jak najszybsza reakcja - program powinien wypisać, ile ms zajęło użytkownikowi wpisanie znaku. Przykład: 3 2 Ready! 1 Steady! 0 Go! s Czas reakcji: 330ms Zadanie 8 Napisz program, który będzie symulował nauczyciela odpytującego ucznia z tabliczki mnożenia. Program powinien wczytać odpowiednie parametry (np. ilość pytań, dostępny czas na każde z nich, zakres liczb, itd.), symulować pytanie (czyli wylosować je, sprawdzić odpowiedź oraz to czy uczeń nie przekroczył dostępnego czasu) a na końcu wygenerować statystyki sprawdzianu (ile poprawnych - można w procentach, ile w sumie zajęło, itd.). Wszelkie ulepszenia i własne inwencje są mile widziane :) Zadanie 9 Należy tak zmodyfikować poprzednie zadanie, aby działanie (dodawanie, odejmowanie, mnożenie i dzielenie) również było losowane (w tabliczce mnożenia zawsze było mnożenie).