//inicializacia objektov simulacia, ako mravenisko, hala, prvotne udalosti,... public void InicializujSimulaciu(string miestoUlozenia) { dobaBehu = 0; NastavVypis(false); //len konzolove //NacitavaciaTrieda.SpustiNacitanie(); Konstanty.NastavStrategiuMravceTypu1(Konstanty.cinnostiMravcovTypu1); Konstanty.NastavStrategiuMravceTypu2(Konstanty.cinnostiMravcovTypu2); Konstanty.NastavMiestoUlozenia(miestoUlozenia); mravenisko = InicializaciaObjektovMraveniskoHalda.InicializaciaMraveniska(); halda = InicializaciaObjektovMraveniskoHalda.InicializaciaHaldy(); InicializaciaObjektovMraveniskoHalda.InicializujHodnoty(mravenisko); }
//nastavi prvotne hodnoty simulacie private static void NastavHodnotySimulacie() { ZadaneHodnoty.NastavPocetMravcovTypu1(NacitaneHodnoty.ZistiPocetMravcovTypu1()); ZadaneHodnoty.NastavPocetMravcovTypu2(NacitaneHodnoty.ZistiPocetMravcovTypu2()); ZadaneHodnoty.NastavPocetMravcovTypu3(NacitaneHodnoty.ZistiPocetMravcovTypu3()); ZadaneHodnoty.NastavPocetMravcovTypu4(NacitaneHodnoty.ZistiPocetMravcovTypu4()); ZadaneHodnoty.NastavMinimalneMnozstvoPotravy(NacitaneHodnoty.ZistiMnozstvoMinimalnejPotravy()); ZadaneHodnoty.NastavMnozstvoPotravy(NacitaneHodnoty.ZistiMnozstvoStartovnejPotavy()); ZadaneHodnoty.NastavPocetSkal(NacitaneHodnoty.ZistiPocetSkal()); ZadaneHodnoty.NastavRozmerMraveniska(NacitaneHodnoty.ZistiRozmerMraveniska()); Konstanty.NastavNasobokDobyPrestavky(HodnotyStavuSimulacie.ZistiRychlostSimulacie()); GrafickyVystup.Inicializacia(ZadaneHodnoty.ZistiRozmerMraveniska()); }
//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; } }
//spustenie vypoctu simulacie pomocou backgroundworker private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { int dlzkaSpanku; while (HodnotyStavuSimulacie.ZistiBolaSpustena() && !HodnotyStavuSimulacie.ZistiBolaZastavena()) { dlzkaSpanku = 0; StatickeHodnoty.ZistiBehSimulacieSimulacia().SpustiSimulaciu(); if (StatickeHodnoty.ZistiBehSimulacieSimulacia().ZistiDobaBehu() == 0) { Thread.Sleep(2000); } backgroundWorker1.ReportProgress(1); StatickeHodnoty.ZistiAutoResetEvent().WaitOne(); while (dlzkaSpanku < Konstanty.ZistiVyslednuDobuPrestavku() && HodnotyStavuSimulacie.ZistiBolaSpustena() && !HodnotyStavuSimulacie.ZistiBolaZastavena()) { Thread.Sleep(1); dlzkaSpanku++; } } }
private static void NastavKonstantneHodnoty() { Konstanty.NastavMinimumPotravy(ZadaneHodnoty.ZistiMinimalneMnozstvoPotravy()); }