//spustenie vykreslovania private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e) { TabPage tabPage = Simulacia.TabPages[1]; StatickeHodnoty.NastavMravenisko(StatickeHodnoty.ZistiBehSimulacieSimulacia().ZistiMravenisko()); if (HodnotyStavuZobrazovaniaSimulacie.ZistiZobrazovanieSimulacie()) { GrafickyVystup.VykresliMraveniskoUvod(StatickeHodnoty.ZistiMravenisko(), tabPage); VypisFazeMraveniska.VypisFazeMraveniskaUvod(StatickeHodnoty.ZistiMravenisko(), casLabelVystup, fazaLabelVystup); } if (StatickeHodnoty.ZistiMravenisko().ZistiPocetVsetkychMravcov() == 0 && StatickeHodnoty.ZistiMravenisko().ZistiFazaMraveniska() == FazaMraveniska.poKonciKroku) { InicializaciaNastaveniHodnot(); HodnotyStavuSimulacie.NastavBolaUkoncena(pocetMravcovTypu1Nastavenia, pocetMravcovTypu2Nastavenia, pocetMravcovTypu3Nastavenia, pocetMravcovTypu4Nastavenia, pocetSkalNastavenia, mnozstvoZaciatocnejPotravyNastavenia, minimalneMnozstvoPotravyNastavenia, casLabelVystup, fazaLabelVystup); HodnotyNaVypisovanie.VypisUdajeZakladne(dobaSimulacia, pocetMravcovTypu1TerazSimulacia, pocetMravcovTypu1CelkovoSimulacia, pocetMravcovTypu2TerazSimulacia, pocetMravcovTypu2CelkovoSimulacia, pocetMravcovTypu3TerazSimulacia, pocetMravcovTypu3CelkovoSimulacia, pocetMravcovTypu4TerazSimulacia, pocetMravcovTypu4CelkovoSimulacia, mnoztvoPotravyTerazSimulacia, mnozstvoPotravyCelkovoSimulacia); GrafickyVystup.VykresliOknoBezSimulacie(tabPage); HodnotyStavuZobrazovaniaSimulacie.NastavZobrazovanieSimulacie(true); zastavenieSpustenieZobrazovaniaButton.Text = "Zastavenie zobrazovania"; } StatickeHodnoty.ZistiAutoResetEvent().Set(); }
//spravuje ukoncenie simulacie a inicializaciu cast hodnot pre pripadne dalsie spustenie simulacie //zvysok sa inicializuje v casti InicializaciaNastaveni public static void SimulaciaBolaUkoncena(NumericUpDown pocetMravcovTypu1, NumericUpDown pocetMravcovTypu2, NumericUpDown pocetMravcovTypu3, NumericUpDown poceMravcovTypu4, NumericUpDown pocetSkal, NumericUpDown mnozstvoPotravyZaciatocnej, NumericUpDown mnozstvoPotravyMinnimalnej, Label labelCas, Label labelFaza) { StatickeHodnoty.ZistiBehSimulacieSimulacia().UkonecieSimulacie(); if (Konstanty.jeNastaveneMiestoUlozenia) { Konstanty.zapisovacUdajov.Close(); } NastaveneHodnotyPocasKrokov.NastavPokracovanie(false); NacitaneHodnoty.NastavNastavenia(false); HodnotyStavuSimulacie.ResetujMiestoUlozenia(); HodnotyStavuZobrazovaniaSimulacie.NastavZobrazovanieSimulacie(false); StatickeHodnoty.ZistiBehSimulacieSimulacia().InicializujSimulaciu(""); NacitaneHodnoty.InicializujPoctyHodnotMravcov(pocetMravcovTypu1, pocetMravcovTypu2, pocetMravcovTypu3, poceMravcovTypu4); NacitaneHodnoty.InicializujHodnoty(pocetSkal, mnozstvoPotravyZaciatocnej, mnozstvoPotravyMinnimalnej); VypisFazeMraveniska.NastavZakladneHodnoty(labelCas, labelFaza); }
//spravuje spustenie simulacie public static void SimulaciaBolaSpustena() { NastavHodnotySimulacie(); HodnotyStavuZobrazovaniaSimulacie.NastavZobrazovanieSimulacie(true); StatickeHodnoty.NastavBehSimulacieSimulacia(new BehSimulacie()); StatickeHodnoty.ZistiBehSimulacieSimulacia().InicializujSimulaciu(HodnotyStavuSimulacie.ZistiMiestoUlozenia()); VykreslovanieASpustenieBehuSimulacie(); }
//spravuje vypisovanie udajov v casti Simulacia public static void VypisUdaje(Label dobaBehu, Label pocetMravcovTypu1, Label pocetMravcovTypu1Celkovo, Label pocetMravcovTypu2, Label pocetMravcovTypu2Celkovo, Label pocetMravcovTypu3, Label pocetMravcovTypu3Celkovo, Label pocetMravcovTypu4, Label pocetMravcovTypu4Celkovo, Label mnozsvtoPotrava, Label pocetPotravyCelkovo) { VypisovacieUdaje vypisovacieUdaje = default(VypisovacieUdaje); if (HodnotyStavuSimulacie.ZistiBolaSpustena()) { vypisovacieUdaje = StatickeHodnoty.ZistiBehSimulacieSimulacia().ZistiUdaje(); HodnotyNaVypisovanie.NacitajUdaje(vypisovacieUdaje); HodnotyNaVypisovanie.VypisUdaje(dobaBehu, pocetMravcovTypu1, pocetMravcovTypu1Celkovo, pocetMravcovTypu2, pocetMravcovTypu2Celkovo, pocetMravcovTypu3, pocetMravcovTypu3Celkovo, pocetMravcovTypu4, pocetMravcovTypu4Celkovo, mnozsvtoPotrava, pocetPotravyCelkovo); } else { MessageBox.Show("Musíte najpr spustiť simuláciu pre vypysovanie údajov."); } }
//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++; } } }