//nastavi cinnosti mravca, v zavislosti od toho vytvori Udalost, parit sa je cinnost viacerych mravcov a najedenie sa //nie je pohybova cinnost a tak maju samostatny typ udalosti public static void NastavenieCinnostiMravca(Halda <Udalost> halda, int cas, Mravec mravec, Mravenisko mravenisko) { CinnostiMravcov cinnostiMravcovNova = ZistenieCinnostiMravca(ZistiTypPolickaSucasne(mravenisko, mravec.ZistiTypyMravcov(), mravec.ZistiSuradnica()), ZistiTypPolickaVpredu(mravenisko, mravec.ZistiTypyMravcov(), NasledujucePolickoMraveniska.ZistiSuradniceNasledujucehoPolicka( mravec.ZistiSuradnica(), mravec.ZistiSmerPohybu(), mravenisko.ZistiRozmerMraveniska())), mravec.ZistiTypyMravcov()); mravec.NastavCinnostMravca(cinnostiMravcovNova); if (cinnostiMravcovNova == CinnostiMravcov.paritSa) { mravec.NastavParitSa(true); if (!NastaveneHodnotyPocasKrokov.ZistiParenie()) { Udalost udalost = new Udalost(cas + 1, (int)TypyUdalosti.paritSa, TypyUdalosti.paritSa); halda.VlozPrvok(udalost, udalost.ZistiCasNastania(), udalost.ZistiPriorita()); NastaveneHodnotyPocasKrokov.NastavParenie(true); } } else if (cinnostiMravcovNova == CinnostiMravcov.najedzSa) { Udalost udalost = new Udalost(cas + 1, (int)TypyUdalosti.vykonanieCinnostiMravcovNepohybovych, TypyUdalosti.vykonanieCinnostiMravcovNepohybovych, mravec); halda.VlozPrvok(udalost, udalost.ZistiCasNastania(), udalost.ZistiPriorita()); } else { Udalost udalost = new Udalost(cas + 1, (int)TypyUdalosti.vykonanieCinnostiMravcovPohybovych + (int)cinnostiMravcovNova, TypyUdalosti.vykonanieCinnostiMravcovPohybovych, mravec); halda.VlozPrvok(udalost, udalost.ZistiCasNastania(), udalost.ZistiPriorita()); } }