U malom selu Robovil žive Oblikoboti – roboti mogu da se pojavljuju u različitim oblicima –
trougao, pravougaonik, šestougao i krug; svaki od njih ima naziv, dimenzije (koje se dodjeljuju
pri kreiranju Oblikobota), snagu (koja se izračunava kao proizvod njihove površine i slučajno
generisanog broja u opsegu od 1 do 100) i mogućnost transformacije (pravougaonik može da se
transformiše u trougao tako što se prepolovi po dijagonali i nastane jednakokraki trougao
spajanjem dvije polovine pravougaonika, a dva trougla mogu da se transformišu u pravougaonik
samo ako su pravougli i imaju jednake katete). Roboti u obliku trougla su letači, oni u obliku
kruga mogu da plivaju, dok ostali mogu da šetaju i lete, pa se u zavisnosti od navedenog mogu
naći na određenim pozicijama u Robovilu (matrici dimenzija 40x20). Oblikoboti imaju svoje
neprijatelje – Muzikobote koji mogu da ih unište pjesmom i mogu da pjevaju samo ukoliko se
nađu na zemlji (u suprotnom su automatski uništeni).
Simulacija počinje tako što se kreiraju Oblikoboti, od svake vrste po dva, i proizvoljno smještaju
u Robovil. Nakon toga se na ekranu ispisuje gdje je koji pozicioniran, koliku snagu ima i šta
trenutno može da radi. Zatim ih napadaju četiri Muzikobota. Postavljaju se slučajno i mogu da
unište svojom pjesmom sve Oblikobote koji se nalaze na udaljenosti od maksimalno 3 po x i y
koordinati od njih. Ukoliko su svi Oblikoboti uništeni, simulacija se prekida i na ekranu se ispisuje
poruka Muzikoboti su pobijedili!, u suprotnom simulacija se nastavlja, preostali Oblikoboti se
ponovo raspoređuju, i ukoliko imaju mogućnost transformacije, transformišu se, u suprotnom
im se smanjuje snaga na pola, i opet se ispisuju njihove pozicije. Muzikoboti koji nisu uništeni
zauzimaju nove položaje, i opet napadaju. Simulacija može da završi ako:
1) se svi Muzikoboti unište (uništeni su ukoliko se nađu na teritoriji koja nije zemlja), a na
ekranu se ispisuje "Oblikoboti su pobijedili! Kraj simulacije" i ispisuju se pozicije preostalih
Oblikobota;
2) su svi Oblikoboti uništeni, a na ekranu se ispisuje poruka Muzikoboti su pobijedili!.
Selo Robovil (matrica 40x20) je predstavljeno na sljedeći način:
Formalna predstava ovog zadatka je sljedeća:
1) Robovil je matrica dimenzija 40x20:
2) Oblikobot je klasa koja je naslijeđena iz klasa: Trougao, Četvorougao, Šestougao i Krug.
3) pozicioniranje elemenata u matrici (XYLayout)
Konkretno, ne znam kako da implementiram sljedeće:
1) dimenzije Oblikobota (koje se dodjeljuju pri kreiranju Oblikobota)
2) transformacije Oblikobota
3) Roboti u obliku trougla su letači, oni u obliku
kruga mogu da plivaju, dok ostali mogu da šetaju i lete, pa se u zavisnosti od navedenog mogu
naći na određenim pozicijama u Robovilu (matrici dimenzija 40x20). Oblikoboti imaju svoje
neprijatelje – Muzikobote koji mogu da ih unište pjesmom i mogu da pjevaju samo ukoliko se
nađu na zemlji (u suprotnom su automatski uništeni).
Može li neko prodiskutovati ovaj zadatak?
Ne tražim cijeli izvorni kod, već suštinu koncepata i implementacija.
[Ovu poruku je menjao new_username dana 10.03.2017. u 20:41 GMT+1]
[Ovu poruku je menjao new_username dana 10.03.2017. u 20:44 GMT+1]
[Ovu poruku je menjao new_username dana 10.03.2017. u 20:45 GMT+1]