public CinnostiMravcov ZistiCinnostMravca() { if (typUdalost == TypyUdalosti.vykonanieCinnostiMravcovPohybovych || typUdalost == TypyUdalosti.vykonanieCinnostiMravcovNepohybovych) { if (mravec != default(Mravec)) { return(mravec.ZistiCinnostMravca()); } else { return(default(CinnostiMravcov)); } } else { return(default(CinnostiMravcov)); } }
//vykresli kruh, tam kde mravce zostali stat private static bool VykresliZostanieStatiaMravcov(Mravenisko mravenisko, Graphics graphics, int i, int j, int velkostStvorceka) { bool zostaliStat = false; foreach (PohybujuceSaObjekty objekt in mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j))) { Mravec mravec = objekt as Mravec; if (mravec.ZistiCinnostMravca() == CinnostiMravcov.zostan) { zostaliStat = true; } } if (zostaliStat) { VykresliElipsu(i * velkostStvorceka + velkostStvorceka / 4, j * velkostStvorceka + velkostStvorceka / 4, velkostStvorceka / 2, velkostStvorceka / 2, Color.Aqua, graphics); return(true); } return(false); }
//vykresli policka, kde sa mravce uspesne najedli, taktiez vypise kolko mravcov sa najedlo private static bool VykresliJedenieMravcov(Mravenisko mravenisko, Graphics graphics, int i, int j, int velkostStvorceka) { int pocetMravcovNajedlo = 0; if (mravenisko.ZistiJedenie(i, j)) { foreach (PohybujuceSaObjekty objekt in mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j))) { Mravec mravec = objekt as Mravec; if (mravec.ZistiCinnostMravca() == CinnostiMravcov.najedzSa && mravec.ZistiPodariloSa() == true) { pocetMravcovNajedlo++; } } VykresliObdlznik(i * velkostStvorceka, j * velkostStvorceka, velkostStvorceka, velkostStvorceka, Color.LightGreen, graphics); VypisPocetMravcovNaPolicku(i, j, velkostStvorceka, velkostStvorceka, velkostStvorceka, pocetMravcovNajedlo, graphics, Color.Black); return(true); } return(false); }
//vykresli smer pohybu mravcov na polickach private static bool VykresliSmerPohybuMravcovNaPolickach(Mravenisko mravenisko, Graphics graphics, int i, int j, int velkostStvorceka) { bool aktivnySmerPohybuS = false; bool aktivneSmerPohybuZ = false; bool aktivnySmerPohybuJ = false; bool aktivnySmerPohybuV = false; foreach (PohybujuceSaObjekty pohybujuceSaObjekty in mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j))) { Mravec mravec = pohybujuceSaObjekty as Mravec; if (mravec.ZistiCinnostMravca() == CinnostiMravcov.chodDopreduObrana || mravec.ZistiCinnostMravca() == CinnostiMravcov.chodDopreduUtok) { switch (mravec.ZistiSmerPohybu()) { case SmerPohybu.s: aktivnySmerPohybuS = true; break; case SmerPohybu.v: aktivnySmerPohybuV = true; break; case SmerPohybu.j: aktivnySmerPohybuJ = true; break; case SmerPohybu.z: aktivneSmerPohybuZ = true; break; } } } int zakladX = i * velkostStvorceka; int zakladY = j * velkostStvorceka; Pen pen = new Pen(Color.Black, 2); SolidBrush solidBrush = new SolidBrush(Color.WhiteSmoke); if (aktivnySmerPohybuS) { VykresliTrojuholnik(pen, solidBrush, graphics, zakladX + velkostStvorceka / 4, zakladY + velkostStvorceka / 4, zakladX + velkostStvorceka / 2, zakladY + 1, zakladX + velkostStvorceka * 3 / 4, zakladY + velkostStvorceka / 4); } if (aktivneSmerPohybuZ) { VykresliTrojuholnik(pen, solidBrush, graphics, zakladX + velkostStvorceka / 4, zakladY + velkostStvorceka / 4, zakladX + 1, zakladY + velkostStvorceka / 2, zakladX + velkostStvorceka / 4, zakladY + velkostStvorceka * 3 / 4); } if (aktivnySmerPohybuJ) { VykresliTrojuholnik(pen, solidBrush, graphics, zakladX + velkostStvorceka / 4, zakladY + velkostStvorceka * 3 / 4, zakladX + velkostStvorceka / 2, zakladY + velkostStvorceka - 1, zakladX + velkostStvorceka * 3 / 4, zakladY + velkostStvorceka * 3 / 4); } if (aktivnySmerPohybuV) { VykresliTrojuholnik(pen, solidBrush, graphics, zakladX + velkostStvorceka * 3 / 4, zakladY + velkostStvorceka / 4, zakladX + velkostStvorceka - 1, zakladY + velkostStvorceka / 2, zakladX + velkostStvorceka * 3 / 4, zakladY + velkostStvorceka * 3 / 4); } if (aktivnySmerPohybuS || aktivneSmerPohybuZ || aktivnySmerPohybuJ || aktivnySmerPohybuV) { return(true); } return(false); }