Diferență între revizuiri ale paginii „POO Tema 1”
| Linia 17: | Linia 17: | ||
* [[Fișier:GameState.java]] | * [[Fișier:GameState.java]] | ||
| − | Pentru a testa jocul, acesta trebuie pornit din consolă (va arunca un NPE dacă încercați să-l porniți din Netbeans). După compilarea proiectului din Netbeans (Clean & Build), puteți deschide o consolă, naviga până în directorul proiectului și apoi puteți rula comanda <code style="color: green">java -jar dist | + | Pentru a testa jocul, acesta trebuie pornit din consolă (va arunca un NPE dacă încercați să-l porniți din Netbeans). După compilarea proiectului din Netbeans (Clean & Build), puteți deschide o consolă, naviga până în directorul proiectului și apoi puteți rula comanda <code style="color: green">java -jar dist\<nume_proiect>.jar</code>, înlocuind <nume_proiect> cu numele proiectului vostru. |
Versiunea de la data 7 noiembrie 2015 19:56
Realizați o implementare simplă a jocului "Spânzurătoarea".
Cerințe
Implementați o clasă, numită seriaf.poo.tema1.engine.implementation.HangmanImpl (atenție la numele pachetului), ce trebuie să implementeze interfața Hangman de mai jos, pentru a completa funcționalitatea jocului, astfel:
- Constructorul clasei
HangmanImpltrebuie să aibă un argument de tip String, ce reprezinta cuvântul ce trebuie ghicit, și un întreg ce reprezinta numărul de vieți; - Constructorul trebuie să arunce
java.lang.IllegalArgumentExceptiondacă cuvântul e mai scurt de 3 caractere, dacă conține altceva decât litere sau dacă numărul de vieți este mai mic sau egal decât 0; - Metoda
makeMovearuncăjava.lang.IllegalArgumentExceptiondacă caracterul primit ca argument nu este o literă, saujava.lang.IllegalStateExceptiondacă se apelează după ce jocul s-a încheiat. - Metoda
makeMoveîntoarce un obiect de tipseriaf.poo.tema1.engine.GameStatecare conține informații legate de starea jocului de după efectuarea mutării. - Metoda
getGameStateîntoarce un obiect de tipseriaf.poo.tema1.engine.GameState, ce conține aceleași informații ca și acela întors de ultimul apel al metodeimakeMove. - Cuvântul conținut în obiectele de tip
GameStateva avea pe pozițiile literelor ce au fost ghicite chiar litera respectivă, iar pe celelalte poziții, caracterul '_'; astfel, dacă se apeleazăgetGameStateînainte de un apel lamakeMove, cuvântul conținut în rezultat trebuie să fie format doar din caractere '_', în număr egal cu numărul de caractere din cuvântul ce trebuie ghicit. - Jocul nu trebuie să facă diferențe între literele mici și mari.
Se dau următoarele clase, ce trebuie folosite fără a fi modificate. Acestea trebuie plasate în proiectul vostru conform definiției pachetului lor.
Pentru a testa jocul, acesta trebuie pornit din consolă (va arunca un NPE dacă încercați să-l porniți din Netbeans). După compilarea proiectului din Netbeans (Clean & Build), puteți deschide o consolă, naviga până în directorul proiectului și apoi puteți rula comanda java -jar dist\<nume_proiect>.jar, înlocuind <nume_proiect> cu numele proiectului vostru.