Exemple #1
0
        //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;
            }
        }
Exemple #3
0
        //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);
            }
        }