//najdenie vhodnych pozicii pre mravca private List <int[]> VyberPoziciiPreMravca(int pocetPoziciiNaVybratie, List <int[]> pozicie, TypyMravcov typyMravcov) { List <int[]> pozicieNove = new List <int[]>(); int[] pozicia; int pocetVolnychPoziciiNaVybratieTyp = Math.Min((rozmer * rozmer - ZistiPocetSkaly()) / Math.Max(pocetTypovMravcovZaciatok, 1), pocetPoziciiNaVybratie); for (int i = 0; i < pocetVolnychPoziciiNaVybratieTyp; i++) { int index = GenerovanieHodnot.random.Next(0, pozicie.Count); pozicia = new int[2]; pozicia = pozicie[index]; pozicieNove.Add(pozicia); pozicie.RemoveAt(index); } while (pozicieNove.Count < pocetPoziciiNaVybratie) { int index = GenerovanieHodnot.random.Next(0, pozicieNove.Count); pozicia = new int[2]; pozicia = pozicieNove[index]; pozicieNove.Add(pozicia); } return(pozicieNove); }
//zisti cinnost mravca, ktora vypliva z policok pred mravcom a na ktorom stoji private static CinnostiMravcov ZistenieCinnostiMravca(TypyPolicok typyPolicokSucasne, TypyPolicok typyPolicokPred, TypyMravcov typyMravcov) { int polickoSucasne; int polickoPred; polickoPred = (int)typyPolicokPred; polickoSucasne = (int)typyPolicokSucasne; if (polickoSucasne > 0) { polickoSucasne--; } CinnostiMravcov cinnostMravca; switch (typyMravcov) { case TypyMravcov.MravecTypu1: { cinnostMravca = Konstanty.strategiaMravcaTypu1.ZistiStrategiaPodlaSuradnice(polickoSucasne, polickoPred); break; } case TypyMravcov.MravecTypu2: { cinnostMravca = Konstanty.strategiaMravcaTypu2.ZistiStrategiaPodlaSuradnice(polickoSucasne, polickoPred); break; } case TypyMravcov.MravecTypu3: { cinnostMravca = Konstanty.strategiaMravcaTypu3.ZistiStrategiaPodlaSuradnice(polickoSucasne, polickoPred); break; } case TypyMravcov.MravecTypu4: { cinnostMravca = Konstanty.strategiaMravcaTypu4.ZistiStrategiaPodlaSuradnice(polickoSucasne, polickoPred); break; } default: cinnostMravca = default(CinnostiMravcov); break; } return(cinnostMravca); }
public void PridanieMravcaKonkretnaPozicia(TypyMravcov typyMravcov, int xSuradnica, int ySuradnica, int energia, int cas) { Mravec mravec; mravec = new Mravec(xSuradnica, ySuradnica, true, true, typyMravcov, cisloNasledujucehoMravca, energia); mraveniskoMravce[xSuradnica, ySuradnica].Add(mravec); // cisloNasledujucehoMravca++; pocet++; switch (typyMravcov) { case TypyMravcov.MravecTypu1: ZvysPocetMravcovTypu1(); break; case TypyMravcov.MravecTypu2: ZvysPocetMravcovTypu2(); break; case TypyMravcov.MravecTypu3: ZvysPocetMravcovTypu3(); break; case TypyMravcov.MravecTypu4: ZvysPocetMravcovTypu4(); break; } HlaskyCinnostiMravcovStavObjektov.MravecVznikolNaPolickuSoZaciatocnouEnergiou(cas, mravec.ZistiIdMravca(), (int)mravec.ZistiTypyMravcov() + 1, mravec.ZistiXSuradnicu(), mravec.ZistiYSuradnicu(), energia); Console.WriteLine(pocet); }
//spracuje mravce, ktore zanikli pri suboji private static void VymazMravcePodlaTypu(Mravenisko mravenisko, TypyMravcov typyMravcov, Suradnice suradniceTypu1, Suradnice suradniceTypu2, Suradnice suradniceTypu3, Suradnice suradniceTypu4, List <Mravec> mravceTypu1, List <Mravec> mravceTypu2, List <Mravec> mravceTypu3, List <Mravec> mravceTypu4, int cas) { switch (typyMravcov) { case TypyMravcov.MravecTypu1: VymazMravce(mravenisko, suradniceTypu2, mravceTypu2, cas); VymazMravce(mravenisko, suradniceTypu3, mravceTypu3, cas); VymazMravce(mravenisko, suradniceTypu4, mravceTypu4, cas); break; case TypyMravcov.MravecTypu2: VymazMravce(mravenisko, suradniceTypu1, mravceTypu1, cas); VymazMravce(mravenisko, suradniceTypu3, mravceTypu3, cas); VymazMravce(mravenisko, suradniceTypu4, mravceTypu4, cas); break; case TypyMravcov.MravecTypu3: VymazMravce(mravenisko, suradniceTypu1, mravceTypu1, cas); VymazMravce(mravenisko, suradniceTypu2, mravceTypu2, cas); VymazMravce(mravenisko, suradniceTypu4, mravceTypu4, cas); break; case TypyMravcov.MravecTypu4: VymazMravce(mravenisko, suradniceTypu1, mravceTypu1, cas); VymazMravce(mravenisko, suradniceTypu2, mravceTypu2, cas); VymazMravce(mravenisko, suradniceTypu3, mravceTypu3, cas); break; } }
//spravuje parenie mravcov, na to aby vznikli nove mravce musia byt splnene urcite podmienky public static void ParenieMravcovDanaSuradnica(Mravenisko mravenisko, Suradnice suradnica, int cas) { List <Mravec> pariaceSaMravce = new List <Mravec>(); int xSuradnica = suradnica.ZistiXSuradnicu(); int ySuradnica = suradnica.ZistiYSuradnicu(); foreach (PohybujuceSaObjekty pohybObjekt in mravenisko.VratObjektPohybujuceSaNaDanychSuradniciach(suradnica)) { Mravec mravec = pohybObjekt as Mravec; if (mravec.ZistiParitSa()) { HlaskyCinnostiMravcovStavObjektov.MravecSaRozhodolParit(cas, mravec.ZistiIdMravca(), (int)mravec.ZistiTypyMravcov() + 1, suradnica.ZistiXSuradnicu(), suradnica.ZistiYSuradnicu()); if (mravec.ZistiEnergiaMravca() > 3) { pariaceSaMravce.Add(mravec); } } } int energiaPreMravcov = 0; int energia = 0; int pocetMravcovNovych = pariaceSaMravce.Count / 2; if (pocetMravcovNovych > 0) { mravenisko.NastavParenie(xSuradnica, ySuradnica, true); foreach (Mravec mravec in pariaceSaMravce) { energia = mravec.ZistiEnergiaMravca() / 3; energiaPreMravcov += energia; mravec.ZnizEnergia(energia); HlaskyCinnostiMravcovStavObjektov.MravecSaPari(cas, mravec.ZistiIdMravca(), (int)mravec.ZistiTypyMravcov() + 1, suradnica.ZistiXSuradnicu(), suradnica.ZistiYSuradnicu()); HlaskyCinnostiMravcovStavObjektov.ZnizenaEnergiaMravcaParenie(cas, mravec.ZistiIdMravca(), (int)mravec.ZistiTypyMravcov() + 1, mravec.ZistiXSuradnicu(), mravec.ZistiYSuradnicu(), mravec.ZistiEnergiaMravca()); mravec.NastavPodariloSa(true); } energia = energiaPreMravcov / pocetMravcovNovych; TypyMravcov typyMravcov = default(TypyMravcov); typyMravcov = pariaceSaMravce[0].ZistiTypyMravcov(); for (int i = 0; i < pocetMravcovNovych - 1; i++) { mravenisko.PridanieMravcaKonkretnaPozicia(typyMravcov, xSuradnica, ySuradnica, energia, cas); energiaPreMravcov -= energia; } mravenisko.PridanieMravcaKonkretnaPozicia(typyMravcov, xSuradnica, ySuradnica, energiaPreMravcov, cas); } }
private void PridanieMravcov(TypyMravcov typyMravcov, int pocetMravcov) { List <int[]> volnePozicie = VyberPoziciiPreMravca(pocetMravcov, NajdenieVhodnychPoziciiPreMravca(TypyObjektov.potrava, typyMravcov), typyMravcov); foreach (int[] pozicia in volnePozicie) { PridanieMravcaKonkretnaPozicia(typyMravcov, pozicia[0], pozicia[1], Konstanty.maximumEnergiaMravec, casExistencieMraveniska); } }
//zisti pritomnost daneho typu mravcov v poli, ktore obsahuje typy mravcov private static bool ZistiPritomnostMravcovDanehoTypu(TypyMravcov typyMravcov, List <TypyMravcov> typyMravcovs) { foreach (TypyMravcov typMravca in typyMravcovs) { if (typMravca == typyMravcov) { return(true); } } return(false); }
//spravuje vyhru public static void SpracujVyhru(Suradnice suradniceTypu1, Suradnice suradniceTypu2, Suradnice suradniceTypu3, Suradnice suradniceTypu4, TypyMravcov typyMravcov, List <Mravec> mravceTypu1, List <Mravec> mravceTypu2, List <Mravec> mravceTypu3, List <Mravec> mravceTypu4, TypySubojov typySubojov, int cas) { switch (typyMravcov) { case TypyMravcov.MravecTypu1: SpravaVyhry(mravceTypu1, suradniceTypu1, typySubojov, cas); break; case TypyMravcov.MravecTypu2: SpravaVyhry(mravceTypu2, suradniceTypu2, typySubojov, cas); break; case TypyMravcov.MravecTypu3: SpravaVyhry(mravceTypu3, suradniceTypu3, typySubojov, cas); break; case TypyMravcov.MravecTypu4: SpravaVyhry(mravceTypu4, suradniceTypu4, typySubojov, cas); break; } }
//zisti farbu mravcov podla typu private static Color ZistiFarbuMravcov(TypyMravcov typyMravcov) { switch (typyMravcov) { case TypyMravcov.MravecTypu1: return(Color.Blue); case TypyMravcov.MravecTypu2: return(Color.Orange); case TypyMravcov.MravecTypu3: return(Color.Pink); case TypyMravcov.MravecTypu4: return(Color.LimeGreen); } return(default(Color)); }
//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); }
//spracovanie suboja mravcov roznych typov na danom policku public static void SubojNepohybujuce(Mravenisko mravenisko, Suradnice suradnice, int cas) { List <Mravec> mravceTypu1 = new List <Mravec>(); List <Mravec> mravceTypu2 = new List <Mravec>(); List <Mravec> mravceTypu3 = new List <Mravec>(); List <Mravec> mravceTypu4 = new List <Mravec>(); List <Mravec> vyherneMravce = new List <Mravec>(); RoztriedMravceNaPolickuPodlaTypovSuradnice(suradnice, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4); int energiaMravceTypu1 = ZistiEnergiaMravcov(mravceTypu1); int energiaMravceTypu2 = ZistiEnergiaMravcov(mravceTypu2); int energiaMravceTypu3 = ZistiEnergiaMravcov(mravceTypu3); int energiaMravceTypu4 = ZistiEnergiaMravcov(mravceTypu4); int pocetMravcovCelkovo; pocetMravcovCelkovo = mravceTypu1.Count + mravceTypu2.Count + mravceTypu3.Count + mravceTypu4.Count; //pokial ma suboj zmysel, tak sa spusti if (PritomnostMravceViacTypov(pocetMravcovCelkovo, mravceTypu1.Count, mravceTypu2.Count, mravceTypu3.Count, mravceTypu4.Count)) { VlozPolickBojNepohybujuci(suradnice, mravenisko, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4); TypyMravcov typyMravcov = ZistiVyhercaSuboja(energiaMravceTypu1, energiaMravceTypu2, energiaMravceTypu3, energiaMravceTypu4); SpracujVyhru(suradnice, suradnice, suradnice, suradnice, typyMravcov, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4, TypySubojov.subojPriStatiNaPolicku, cas); NastavNeparenie(mravceTypu1); NastavNeparenie(mravceTypu2); NastavNeparenie(mravceTypu3); NastavNeparenie(mravceTypu4); NastavBojovalNaPolickuDetail(mravceTypu1); NastavBojovalNaPolickuDetail(mravceTypu2); NastavBojovalNaPolickuDetail(mravceTypu3); NastavBojovalNaPolickuDetail(mravceTypu4); VymazMravcePodlaTypu(mravenisko, typyMravcov, suradnice, suradnice, suradnice, suradnice, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4, cas); } }
//pokial je vybraty v casti Nastavenia mravce typ mravca a jeho konanie v kazdej situacii, tak //sa nastavi jeho strategia pomocou funkkcii Nastav, NastavCinnostPozicia a NastavCinnostMravca public static void Nastav(ListView vyber, NumericUpDown numericUpDownPocetMravcovTypu3, NumericUpDown numericUpDownPocetMravcovTypu4) { if (vyber.SelectedItems.Count > 0) { switch (vyber.SelectedItems[0].Text) { case "mravec typu 1": typyMravcov = TypyMravcov.MravecTypu1; break; case "mravec typu 2": typyMravcov = TypyMravcov.MravecTypu2; break; case "mravec typu 3": typyMravcov = TypyMravcov.MravecTypu3; break; case "mravec typu 4": typyMravcov = TypyMravcov.MravecTypu4; break; } strategiaMravca = new CinnostiMravcov[4, 7]; bool hodnotaUspech = true; for (int i = 0; i < 4; i++) { for (int j = 0; j < 7; j++) { if (!NastavCinnostPozicia(i, j, strategiaMravca, (HodnotyStavuSimulacie.ZistiKonanie())[i, j])) { hodnotaUspech = false; } } } if (hodnotaUspech) { NastavCinnostMravca(typyMravcov, strategiaMravca, numericUpDownPocetMravcovTypu3, numericUpDownPocetMravcovTypu4); } else { MessageBox.Show("Nevybrali ste pre mravca konanie vo všetkých situáciách"); } } else { MessageBox.Show("Nevybrali ste typ mravca, pre ktorého sa má nastavit daná stratégia"); } }
//nastavi strategiu mravca, taktisto nastavy, ze pocet mravcov typu 3 alebo 4 moze byt rozny od 0, ak sa nastavuje ich strategia private static void NastavCinnostMravca(TypyMravcov typyMravcov, CinnostiMravcov[,] cinnostiMravcov, NumericUpDown numericUpDownPocetMravcovTypu3, NumericUpDown numericUpDownPocetMravcovTypu4) { switch (typyMravcov) { case TypyMravcov.MravecTypu1: Konstanty.NastavStrategiuMravceTypu1(cinnostiMravcov); NastavNastavenyTyp1(true); break; case TypyMravcov.MravecTypu2: Konstanty.NastavStrategiuMravceTypu2(cinnostiMravcov); NastavNastavenyTyp2(true); break; case TypyMravcov.MravecTypu3: Konstanty.NastavStrategiuMravceTypu3(cinnostiMravcov); NastavNastavenyTyp3(true); NacitaneHodnoty.AktualizujPocetMravcovTypu3(numericUpDownPocetMravcovTypu3); break; case TypyMravcov.MravecTypu4: Konstanty.NastavStrategiuMravceTypu4(cinnostiMravcov); NastavNastavenyTyp4(true); NacitaneHodnoty.AktualizujPocetMravcovTypu4(numericUpDownPocetMravcovTypu4); break; } }
//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); }
//najdenie vhodnych pozicii pre mravca private List <int[]> NajdenieVhodnychPoziciiPreMravca(TypyObjektov typyObjektov, TypyMravcov typyMravcov) { List <int[]> pozicie = new List <int[]>(); for (int i = 0; i < ZistiRozmerMraveniska(); i++) { for (int j = 0; j < ZistiRozmerMraveniska(); j++) { if ((mraveniskoTypyPolicok[i, j] == default(NepohybujuceSaObjekty) || mraveniskoTypyPolicok[i, j].ZistiTypObjektu() == TypyObjektov.prazdnaZem || mraveniskoTypyPolicok[i, j].ZistiTypObjektu() == typyObjektov) && (mraveniskoMravce[i, j].Count == 0 || (mraveniskoMravce[i, j][0] as Mravec).ZistiTypyMravcov() == typyMravcov)) { int[] pozicia = new int[2]; pozicia[0] = i; pozicia[1] = j; pozicie.Add(pozicia); } } } return(pozicie); }
private void NastavTypMravcov(TypyMravcov typyMravcov) { typMravcov = typyMravcov; }
private void NastavTypMravca(TypyMravcov typyMravcov) { this.typyMravcov = typyMravcov; }
//spracovanie suboja dvoch proti sebe iducich skupin mravcov (kde jedna skupina obsahuje mravce toho isteho typu) private static void SubojPohybujuce(List <Mravec> mravce1, Suradnice suradnice1, List <Mravec> mravce2, Suradnice suradnice2, Mravenisko mravenisko, int cas) { PolickaPriPrechadzajucomBoji polickaPriPrechadzajucomBoji1 = new PolickaPriPrechadzajucomBoji(suradnice1, mravce1[0].ZistiTypyMravcov()); PolickaPriPrechadzajucomBoji polickaPriPrechadzajucomBoji2 = new PolickaPriPrechadzajucomBoji(suradnice2, mravce2[0].ZistiTypyMravcov(), polickaPriPrechadzajucomBoji1); polickaPriPrechadzajucomBoji1.NastavDruhePolicko(polickaPriPrechadzajucomBoji2); mravenisko.NastavPolickoBojPrechadzajuce(polickaPriPrechadzajucomBoji1, polickaPriPrechadzajucomBoji1.ZistiSuradniceMravcov().ZistiXSuradnicu(), polickaPriPrechadzajucomBoji1.ZistiSuradniceMravcov().ZistiYSuradnicu()); mravenisko.NastavPolickoBojPrechadzajuce(polickaPriPrechadzajucomBoji2, polickaPriPrechadzajucomBoji2.ZistiSuradniceMravcov().ZistiXSuradnicu(), polickaPriPrechadzajucomBoji2.ZistiSuradniceMravcov().ZistiYSuradnicu()); List <Mravec> mravceTypu1 = new List <Mravec>(); List <Mravec> mravceTypu2 = new List <Mravec>(); List <Mravec> mravceTypu3 = new List <Mravec>(); List <Mravec> mravceTypu4 = new List <Mravec>(); List <Mravec> vyherneMravce = new List <Mravec>(); List <Mravec> mravceUskokTypu1 = new List <Mravec>(); List <Mravec> mravecUskokTypu2 = new List <Mravec>(); List <Mravec> mravecUskokTypu3 = new List <Mravec>(); List <Mravec> mravecUskokTypu4 = new List <Mravec>(); RoztriedMravcePodlaTypovMravce(mravce1, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4); RoztriedMravcePodlaTypovMravce(mravce2, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4); NastavBojovaliPriPrechodeDetail(mravceTypu1); NastavBojovaliPriPrechodeDetail(mravceTypu2); NastavBojovaliPriPrechodeDetail(mravceTypu3); NastavBojovaliPriPrechodeDetail(mravceTypu4); Suradnice suradniceMravcovTypu1PreUskok = default(Suradnice); Suradnice suradniceMravcovTypu2PreUskok = default(Suradnice); Suradnice suradniceMravcovTypu3PreUskok = default(Suradnice); Suradnice suradniceMravcovTypu4PreUskok = default(Suradnice); Suradnice suradniceMravcovTypu1 = default(Suradnice); Suradnice suradniceMravcovTypu2 = default(Suradnice); Suradnice suradniceMravcovTypu3 = default(Suradnice); Suradnice suradniceMravcovTypu4 = default(Suradnice); NastavSuradnicePodlaTypu(ref suradniceMravcovTypu1PreUskok, ref suradniceMravcovTypu2PreUskok, ref suradniceMravcovTypu3PreUskok, ref suradniceMravcovTypu4PreUskok , suradnice2, mravce1[0].ZistiTypyMravcov()); NastavSuradnicePodlaTypu(ref suradniceMravcovTypu1PreUskok, ref suradniceMravcovTypu2PreUskok, ref suradniceMravcovTypu3PreUskok, ref suradniceMravcovTypu4PreUskok, suradnice1, mravce2[0].ZistiTypyMravcov()); NastavSuradnicePodlaTypu(ref suradniceMravcovTypu1, ref suradniceMravcovTypu2, ref suradniceMravcovTypu3, ref suradniceMravcovTypu4, suradnice1, mravce1[0].ZistiTypyMravcov()); NastavSuradnicePodlaTypu(ref suradniceMravcovTypu1, ref suradniceMravcovTypu2, ref suradniceMravcovTypu3, ref suradniceMravcovTypu4, suradnice2, mravce2[0].ZistiTypyMravcov()); ZistiSpravujUskakujuceMravce(mravenisko, ref mravceTypu1, mravceUskokTypu1, cas); ZistiSpravujUskakujuceMravce(mravenisko, ref mravceTypu2, mravecUskokTypu2, cas); ZistiSpravujUskakujuceMravce(mravenisko, ref mravceTypu3, mravecUskokTypu3, cas); ZistiSpravujUskakujuceMravce(mravenisko, ref mravceTypu4, mravecUskokTypu4, cas); VratMravceNaPolickoZKtorehoIsliUskociliNanTeraz(suradniceMravcovTypu1PreUskok, mravceUskokTypu1, mravenisko, cas); VratMravceNaPolickoZKtorehoIsliUskociliNanTeraz(suradniceMravcovTypu2PreUskok, mravecUskokTypu2, mravenisko, cas); VratMravceNaPolickoZKtorehoIsliUskociliNanTeraz(suradniceMravcovTypu3PreUskok, mravecUskokTypu3, mravenisko, cas); VratMravceNaPolickoZKtorehoIsliUskociliNanTeraz(suradniceMravcovTypu4PreUskok, mravecUskokTypu4, mravenisko, cas); int energiaMravceTypu1 = ZistiEnergiaMravcov(mravceTypu1); int energiaMravceTypu2 = ZistiEnergiaMravcov(mravceTypu2); int energiaMravceTypu3 = ZistiEnergiaMravcov(mravceTypu3); int energiaMravceTypu4 = ZistiEnergiaMravcov(mravceTypu4); TypyMravcov typyMravcov = ZistiVyhercaSuboja(energiaMravceTypu1, energiaMravceTypu2, energiaMravceTypu3, energiaMravceTypu4); SpracujVyhru(suradniceMravcovTypu1, suradniceMravcovTypu2, suradniceMravcovTypu3, suradniceMravcovTypu4, typyMravcov, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4, TypySubojov.subojPriPrechode, cas); VymazMravcePodlaTypu(mravenisko, typyMravcov, suradniceMravcovTypu1, suradniceMravcovTypu2, suradniceMravcovTypu3, suradniceMravcovTypu4, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4, cas); }
public Mravec(int xSuradnica, int ySuradnica, bool viditelnost, bool existencia, TypyMravcov typyMravcov, int idMravca, int NastavovanieEnergia) : base (xSuradnica, ySuradnica, TypyObjektov.mravec, "", viditelnost, existencia) { NastavEnergiaMravca(NastavovanieEnergia); NastavVekMravca(); NastavTypMravca(typyMravcov); NastavIdMravca(idMravca); NastavObrana(false); NastavDoprednyPohyv(); NastavUskok(false); NastavCinnostMravca(CinnostiMravcov.zostan); NastavParitSa(false); }
public PolickaPriPrechadzajucomBoji(Suradnice suradnice, TypyMravcov typyMravcov, PolickaPriPrechadzajucomBoji druhePolicko = default(PolickaPriPrechadzajucomBoji)) { NastavSuradniceMravcov(suradnice); NastavTypMravcov(typyMravcov); NastavDruhePolicko(druhePolicko); }
private static bool nastavenyTyp4 = false; //reprezentuje, ci bola nastavena strategia pre mravca typu 4 public static void NastavTypyMravcov(TypyMravcov typ) { typyMravcov = typ; }
//nastavy "suradnice" podla typu mravcov private static void NastavSuradnicePodlaTypu(ref Suradnice suradniceTypu1, ref Suradnice suradniceTypu2, ref Suradnice suradniceTypu3, ref Suradnice suradniceTypu4, Suradnice suradnice, TypyMravcov typyMravcov) { switch (typyMravcov) { case TypyMravcov.MravecTypu1: suradniceTypu1 = suradnice; break; case TypyMravcov.MravecTypu2: suradniceTypu2 = suradnice; break; case TypyMravcov.MravecTypu3: suradniceTypu3 = suradnice; break; case TypyMravcov.MravecTypu4: suradniceTypu4 = suradnice; break; } }
public void VlozTypMravca(TypyMravcov typyMravcov) { typyMravcovPole.Add(typyMravcov); }