//zakladne vyfarbovanie policka private static void ZakladneVyfarbovaniePolicok(int i, int j, int velkostStvorceka, Mravenisko mravenisko, Graphics graphics) { switch (mravenisko.VratObjektNepohybujuceSaNaDanychSuradniciach(new Suradnice(i, j)).ZistiTypObjektu()) { case TypyObjektov.skala: { VykresliObdlznik(i * velkostStvorceka, j * velkostStvorceka, velkostStvorceka, velkostStvorceka, Color.Gray, graphics); } break; case TypyObjektov.potrava: { VykresliObdlznik(i * velkostStvorceka, j * velkostStvorceka, velkostStvorceka, velkostStvorceka, Color.LawnGreen, graphics); if (mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j)).Count > 0) { VykresliMravcov(mravenisko, graphics, i, j, velkostStvorceka, 2); } } break; case TypyObjektov.prazdnaZem: { VykresliObdlznik(i * velkostStvorceka, j * velkostStvorceka, velkostStvorceka, velkostStvorceka, Color.Khaki, graphics); if (mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j)).Count > 0) { VykresliMravcov(mravenisko, graphics, i, j, velkostStvorceka, 2); } } break; } }
//zisti typ policka vpredu, dostane suradnice policka, ktore je vpredu private static TypyPolicok ZistiTypPolickaVpredu(Mravenisko mravenisko, TypyMravcov typyMravcov, Suradnice suradnice) { TypyPolicok typyPolicok = default(TypyPolicok); switch (mravenisko.VratObjektNepohybujuceSaNaDanychSuradniciach(suradnice).ZistiTypObjektu()) { case TypyObjektov.skala: typyPolicok = TypyPolicok.skala; break; case TypyObjektov.prazdnaZem: { List <PohybujuceSaObjekty> mravce = mravenisko.VratObjektPohybujuceSaNaDanychSuradniciach(suradnice); if (mravce.Count == 0) { typyPolicok = TypyPolicok.prazdnaZem; } else if ((mravce[0] as Mravec).ZistiTypyMravcov() == typyMravcov) { typyPolicok = TypyPolicok.priatelPrazdnaZem; } else { typyPolicok = TypyPolicok.nepriatelPrazdnaZem; } } break; case TypyObjektov.potrava: { List <PohybujuceSaObjekty> mravce = mravenisko.VratObjektPohybujuceSaNaDanychSuradniciach(suradnice); if (mravce.Count == 0) { typyPolicok = TypyPolicok.potrava; } else if ((mravce[0] as Mravec).ZistiTypyMravcov() == typyMravcov) { typyPolicok = TypyPolicok.priatelPotrava; } else { typyPolicok = TypyPolicok.nepriatelPotrava; } } break; } return(typyPolicok); }
//mravec sa naje, pokial je na danom policku potrava public void NajedzSa(Mravenisko mravenisko, int cas) { TypyObjektov typyObjektov = mravenisko.ZistiCoJeNaDanychSuradniciach(suradnice); if (typyObjektov == TypyObjektov.potrava && ZistiExistenciu()) { Potrava potrava = mravenisko.VratObjektNepohybujuceSaNaDanychSuradniciach(suradnice) as Potrava; NajedzSa(potrava.ZiadamEnergia(ZistiEnergiaMravca())); NastavPodariloSa(true); if (potrava.ZistiExistenciu() == false) { mravenisko.PridaniePrazdnaZemKonkretnaPozicia(potrava.ZistiXSuradnicu(), potrava.ZistiYSuradnicu()); } HlaskyCinnostiMravcovStavObjektov.MravecJe(cas, ZistiIdMravca(), (int)ZistiTypyMravcov() + 1, ZistiXSuradnicu(), ZistiYSuradnicu(), ZistiEnergiaMravca()); mravenisko.NastavJedenie(ZistiXSuradnicu(), ZistiYSuradnicu(), true); } }
//zisti typ policka, na ktorom mravec stoji private static TypyPolicok ZistiTypPolickaSucasne(Mravenisko mravenisko, TypyMravcov typyMravcov, Suradnice suradnice) { TypyPolicok typyPolicok = default(TypyPolicok); switch (mravenisko.VratObjektNepohybujuceSaNaDanychSuradniciach(suradnice).ZistiTypObjektu()) { case TypyObjektov.prazdnaZem: { List <PohybujuceSaObjekty> mravce = mravenisko.VratObjektPohybujuceSaNaDanychSuradniciach(suradnice); if (mravce.Count > 1) { typyPolicok = TypyPolicok.priatelPrazdnaZem; } else { typyPolicok = TypyPolicok.prazdnaZem; } } break; case TypyObjektov.potrava: { List <PohybujuceSaObjekty> mravce = mravenisko.VratObjektPohybujuceSaNaDanychSuradniciach(suradnice); if (mravce.Count > 1) { typyPolicok = TypyPolicok.priatelPotrava; } else { typyPolicok = TypyPolicok.potrava; } } break; } return(typyPolicok); }