Diferență între revizuiri ale paginii „POO Tema 1”
Linia 13: | Linia 13: | ||
Se dau următoarele clase, ce trebuie folosite fără a fi modificate. Acestea trebuie plasate în proiectul vostru conform definiției pachetului lor. | Se dau următoarele clase, ce trebuie folosite fără a fi modificate. Acestea trebuie plasate în proiectul vostru conform definiției pachetului lor. | ||
− | * [[Fișier:Main.java| | + | * [[Fișier:Main.java|asdasdMain.java]] |
* [[Fișier:Hangman.java|Hangman.java]] | * [[Fișier:Hangman.java|Hangman.java]] | ||
* [[Fișier:GameState.java|GameState.java]] | * [[Fișier:GameState.java|GameState.java]] |
Versiunea de la data 7 noiembrie 2015 20:08
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
HangmanImpl
trebuie 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.IllegalArgumentException
dacă 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
makeMove
aruncăjava.lang.IllegalArgumentException
dacă caracterul primit ca argument nu este o literă, saujava.lang.IllegalStateException
dacă se apelează după ce jocul s-a încheiat. - Metoda
makeMove
întoarce un obiect de tipseriaf.poo.tema1.engine.GameState
care 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
GameState
va 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.
Puteți implementa oricâte alte clase, dar obligatoriu trebuie să aveți clasa HangmanImpl
și nu aveți voie să modificați nici una din clasele de mai sus.
Link pentru upload Web-Cat, aici.