//spusti vykreslovanie mraveniska public static void VykresliMraveniskoUvod(Mravenisko mravenisko, TabPage tabPage) { Graphics graphics; graphics = tabPage.CreateGraphics(); if (mravenisko.ZistiFazaMraveniska() == FazaMraveniska.poNastaveniSmerOtocenia) { ZistiStarePozicieMravcov(mravenisko); } if (mravenisko.ZistiFazaMraveniska() == FazaMraveniska.poBojiPrechadzani) { ZistiNovePozicieMravcov(mravenisko); OverenieKorektnostiZakladneZobrazenie(mravenisko.ZistiRozmerMraveniska()); } VykresliMravenisko(mravenisko, graphics, tabPage); }
private static void VypisFazeMraveniskaRozhod(Mravenisko mravenisko, Label labelFaza) { switch (mravenisko.ZistiFazaMraveniska()) { case FazaMraveniska.poBojiPolicku: labelFaza.Text = "Boje na polickach"; break; case FazaMraveniska.poBojiPrechadzani: labelFaza.Text = "Boje pri prechadzani"; break; case FazaMraveniska.poKonciKroku: labelFaza.Text = "Koniec kroku simulacie"; break; case FazaMraveniska.poPareni: labelFaza.Text = "Parenie"; break; case FazaMraveniska.poNastaveniSmerOtocenia: labelFaza.Text = "Smer otocenia"; break; case FazaMraveniska.poVykonaniCinnostiNepohybovych: labelFaza.Text = "Jedenie"; break; case FazaMraveniska.poZnizeniEnergie: labelFaza.Text = "Znizenie energie mravcov"; break; case FazaMraveniska.poNastaveniSmerAktivnehoPohybuStatie: labelFaza.Text = "Smer aktivneho pohybu, statie"; break; } }
//zacne vykreslovanie mraveniska private static void VykresliMravenisko(Mravenisko mravenisko, Graphics graphics, TabPage tabPage) { int vyska; int sirka; int velkostStvorceka; bool hodnota; vyska = tabPage.Height; sirka = tabPage.Width; velkostStvorceka = Math.Min(vyska / mravenisko.ZistiRozmerMraveniska(), sirka / mravenisko.ZistiRozmerMraveniska()); for (int i = 0; i < mravenisko.ZistiRozmerMraveniska(); i++) { for (int j = 0; j < mravenisko.ZistiRozmerMraveniska(); j++) { hodnota = false; switch (mravenisko.ZistiFazaMraveniska()) { case FazaMraveniska.poNastaveniSmerOtocenia: { RozhodnutieOZakladnomVyfarbeniPredVyfarbenimAkcie(mravenisko, graphics, i, j, velkostStvorceka); if (mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j)).Count > 0) { hodnota = VykresliSmerOtoceniaMravcovNaPolickach(mravenisko, graphics, i, j, velkostStvorceka); } if (hodnota) { zakladneZobrazenie[i, j] = false; } } break; case FazaMraveniska.poNastaveniSmerAktivnehoPohybuStatie: { RozhodnutieOZakladnomVyfarbeniPredVyfarbenimAkcie(mravenisko, graphics, i, j, velkostStvorceka); if (mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j)).Count > 0) { hodnota = VykresliSmerPohybuMravcovNaPolickach(mravenisko, graphics, i, j, velkostStvorceka); if (hodnota) { VykresliZostanieStatiaMravcov(mravenisko, graphics, i, j, velkostStvorceka); } else { hodnota = VykresliZostanieStatiaMravcov(mravenisko, graphics, i, j, velkostStvorceka); } } if (hodnota) { zakladneZobrazenie[i, j] = false; } } break; case FazaMraveniska.poBojiPrechadzani: { hodnota = VykresliBojPriPrechadzaniPolicka(mravenisko, graphics, i, j, velkostStvorceka); RozhodnutieOZakladnomVyfarbeni(i, j, velkostStvorceka, mravenisko, graphics, hodnota); } break; case FazaMraveniska.poBojiPolicku: { hodnota = VykresliMravcovBojNaPolickach(mravenisko, graphics, i, j, velkostStvorceka); RozhodnutieOZakladnomVyfarbeni(i, j, velkostStvorceka, mravenisko, graphics, hodnota); } break; case FazaMraveniska.poPareni: { hodnota = VykresliMravcovParenie(mravenisko, graphics, i, j, velkostStvorceka); RozhodnutieOZakladnomVyfarbeni(i, j, velkostStvorceka, mravenisko, graphics, hodnota); } break; case FazaMraveniska.poVykonaniCinnostiNepohybovych: { hodnota = VykresliJedenieMravcov(mravenisko, graphics, i, j, velkostStvorceka); RozhodnutieOZakladnomVyfarbeni(i, j, velkostStvorceka, mravenisko, graphics, hodnota); } break; case FazaMraveniska.poZnizeniEnergie: { hodnota = VykresliUbytokMravcovKoniec(mravenisko, graphics, velkostStvorceka, i, j); RozhodnutieOZakladnomVyfarbeni(i, j, velkostStvorceka, mravenisko, graphics, hodnota); } break; case FazaMraveniska.poKonciKroku: { RozhodnutieOZakladnomVyfarbeniPredVyfarbenimAkcie(mravenisko, graphics, i, j, velkostStvorceka); if (mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j)).Count > 0) { VypisPocetMravcovNaPolicku(i, j, velkostStvorceka, velkostStvorceka, velkostStvorceka, mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j)).Count, graphics, Color.Black); zakladneZobrazenie[i, j] = false; } } break; } } } if (mravenisko.ZistiFazaMraveniska() == FazaMraveniska.poBojiPrechadzani) { VykresliBojPriPrechadzaniSpojniceUvod(mravenisko, graphics, velkostStvorceka); } }