Riješite zadatak koristeć observer pattern (i bilo koji drugi koji smatrate potrebnim).
Igra ima dvije vrste likova. Zli črobnjaci bacaju magije, dok vitezovi napadaju mačm. Obje vrste imaju počtni health = 100. Napiši potrebne klase i testni program u kojem 10 vitezova napada 5 črobnjaka. Program neka se vrti u while petlji dok jedna od dviju skupina nije uništena. Svaki lik može odjednom napadati samo jednog lika iz suprotnog stožera.
Svakim prolaskom kroz petlju iz funkcije present() svakog lika neka se ispisuje poruka tipa:
- "Vitez 1 (črobnjak 1) je udario črobnjaka 1 (viteza 1) za 10hp".
Kad neki od likova umre, neka se ispiše poruka tipa:
- "Vitez 1 je umro".
Krajnji ispis neka bude:
- "Pobijedili su črobnjaci (vitezovi)".
Parametri napada neka budu random sa nekakvim proizvoljnim maksimumom.
Minimalističi kostur bi trebao izgledati otprilike ovako:
interface GameObject
update()
present()
class Knight implements GameObject
attack()
class Wizard implements GameObject
attack()
class ConcreteSubject
attach(GameObject go)
detach(GameObject go)
setState()