Vašou úlohou je navrhnúť systém na správu zápasov hry FImon Saffron. V tejto hre bojujú medzi sebou FImoni, čo sú zvláštne potvory, ktoré sa vyskytujú na FI. Každý FImon má mimo iné typ (trávový, ohnivý alebo vodný) a niekoľko schopností, ktorými môže zaútočiť. Každá schopnosť má silu, ktorá odpovedá počtu životov, ktoré po zasiahnutí zaútočenému FImonovi uberie. Schopnosti majú tiež typ (trávový, ohnivý a vodný) ale pre jednoduchosť nemusíte riešiť efektivitu jedného typu proti druhému. Dôležité však je, že FImon môže mať schopnosti, ktoré nezodpovedajú jeho vlastnému typu. Každý zápas prebieha medzi dvoma FImonmi. Prebieha v kolách, kým neostane len jeden FImon s kladným počtom životov. V každom kole FImon použije jednu schopnosť, ktorou zaútočí na druhého FImona. Poradie útokov je každé kolo vybrané náhodne. Pokiaľ obaja FImoni majú kladný počet životov, pokračuje sa do ďalšieho kola. Príklad takéhoto zápasu je na nasledujúcom obrázku. Systém na správu týchto zápasov má podporovať nasledujúcu funkcionalitu: • zaznamenanie daného zápasu, • vyhľadávanie záznamu daného FImona, • vkladanie profilu FImona do systému, • vyhľadávanie a mazanie profilu FImona, • vkladanie, vyhľadávanie a mazanie schopností. Každý zápas chceme v systéme zaznamenávať tak, aby sme vedeli zistiť kompletný priebeh zápasu. Vašou úlohou je navrhnúť návrhový diagram tried, pokrývajúci spomínané požiadavky. Asociáciám nemôžu chýbať násobnosti a navigovateľnosti, a mali by byť vhodne rozpracované na agregáciu alebo kompozíciu, ak to dáva zmysel. Atribúty by mali byť prístupné iba za použitia vhodných metód (get, set). U metód nezabudnite na argumenty a návratový typ, s tým, že u argumentov nemusíte typ značiť.