POO Tema 4

De la WikiLabs
Jump to navigationJump to search

Realizați un program care să implementeze jocul "Ghicește numărul" contra timp. Calculatorul va genera un număr aleator între 1 și 100 și jucătorul va avea 10 secunde să ghicească numărul, altfel jocul e considerat pierdut. La fiecare încercare, calculatorul va informa jucătorul dacă numărul introdus este mai mic sau mai mare decât cel căutat.

Cerințe

  • Implementați o clasă GuessResult care să aibă două metode publice:
    • boolean isWon() - întoarce true dacă numărul a fost ghicit.
    • String toString() - întoarce un String care va fi prezentat jucătorului drept feedback la numărul introdus: "Try LOWER!", "Try HIGHER!", "Exactly, you WIN!".
  • Implementați o clasă de tip excepție numită TimeoutException
  • Implementați o clasă numită GameEngine care să aibă următoarele metode:
    • Un constructor GameEngine(int valueToGuess, int secondsAvailable) ale cărui argumente reprezintă valoarea ce trebuie ghicită și numărul de secunde disponibile pentru a ghici numărul;
    • GuessResult guess(int value) throws TimeoutException - o metodă apelată de fiecare dată când jucătorul introduce un număr; metoda va arunca excepție dacă s-a depășit timpul, altfel va întoarce un obiect de tip GuessResult care conține informațiile legate de mutarea anterioară.
  • Implementați o clasă Main, executabilă, care să genereze un număr aleator, să instanțieze un GameEngine și apoi să citească numere de la tastatură dând feedback jucătorului până la ghicirea numărului sau până la expirarea timpului.
  • Dacă timpul expiră, se va afișa în consolă imediat (nu la primul număr introdus) textul "Time is up! You lose."

Observații

  • Toate clasele trebuie să facă parte din pachetul seriaf.poo.tema4
  • Timpul de 10 secunde începe să curgă de la instațierea obiectului de tip GameEngine.


Link pentru upload Web-Cat, aici.