This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
laboratoare:old-exercises [2020/01/04 12:16] Adriana Draghici [Singleton, Observer, Strategy] |
laboratoare:old-exercises [2020/01/04 12:19] (current) Adriana Draghici [Singleton, Observer, Factory] |
||
---|---|---|---|
Line 298: | Line 298: | ||
Detalii joc: | Detalii joc: | ||
* //Harta// | * //Harta// | ||
- | * reprezentată printr-o matrice. Fiecare element din matrice reprezintă o zonă care poate fi liberă, poate conține obstacole sau poate conține o comoară (în laboratorul următor poate conține și monștrii). | + | * reprezentată printr-o matrice. Fiecare element din matrice reprezintă o zonă care poate fi liberă, poate conține obstacole sau poate conține o comoară (în secțiunea următoare poate conține și monștrii). |
* este menținută în clasa ''World''. | * este menținută în clasa ''World''. | ||
* //Eroii// | * //Eroii// | ||
Line 340: | Line 340: | ||
Detalii joc: | Detalii joc: | ||
* //Harta// | * //Harta// | ||
- | * reprezentată printr-o matrice. Fiecare element din matrice reprezintă o zonă care poate fi liberă, poate conține obstacole sau poate conține o comoară (în laboratorul următor poate conține și monștrii). | + | * reprezentată printr-o matrice. Fiecare element din matrice reprezintă o zonă care poate fi liberă, poate conține obstacole, monștrii sau o comoară |
* este menținută în clasa ''GameState''. | * este menținută în clasa ''GameState''. | ||
* //Eroii// | * //Eroii// | ||
Line 365: | Line 365: | ||
* Urmariti si TODO-urile din cele doua clase | * Urmariti si TODO-urile din cele doua clase | ||
* Implementati metoda //attack// din clasa **Hero** astfel incat, daca eroul are mai mult de **50HP**, folositi strategia **AttackStrategy**. Altfel, folositi **DefenseStrategy**. Urmariti TODO-urile din cod. | * Implementati metoda //attack// din clasa **Hero** astfel incat, daca eroul are mai mult de **50HP**, folositi strategia **AttackStrategy**. Altfel, folositi **DefenseStrategy**. Urmariti TODO-urile din cod. | ||
- | * (**Bonus 2p**) Implementați coliziunile cu obstacolele de pe harta | + | * Implementați coliziunile cu obstacolele de pe hartă |
* Va trebui sa creati un nou obiect ''Obstacle'' precum si un ''ObstacleObserver'' | * Va trebui sa creati un nou obiect ''Obstacle'' precum si un ''ObstacleObserver'' | ||
* Cand eroul ajunge pe un obstacol se va printa un mesaj ''Can't move there !'' si se va apela automat undo pe ultima comanda de move pentru a reveni in pozitia anterioara coliziunii. Acest feature de wall collision va fi implementat in ''ObstacleObserver'' | * Cand eroul ajunge pe un obstacol se va printa un mesaj ''Can't move there !'' si se va apela automat undo pe ultima comanda de move pentru a reveni in pozitia anterioara coliziunii. Acest feature de wall collision va fi implementat in ''ObstacleObserver'' |