Exemple #1
0
        //zakladne vyfarbovanie policka
        private static void ZakladneVyfarbovaniePolicok(int i, int j, int velkostStvorceka, Mravenisko mravenisko, Graphics graphics)
        {
            switch (mravenisko.VratObjektNepohybujuceSaNaDanychSuradniciach(new Suradnice(i, j)).ZistiTypObjektu())
            {
            case TypyObjektov.skala:
            {
                VykresliObdlznik(i * velkostStvorceka, j * velkostStvorceka, velkostStvorceka, velkostStvorceka, Color.Gray, graphics);
            }
            break;

            case TypyObjektov.potrava:
            {
                VykresliObdlznik(i * velkostStvorceka, j * velkostStvorceka, velkostStvorceka, velkostStvorceka, Color.LawnGreen, graphics);

                if (mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j)).Count > 0)
                {
                    VykresliMravcov(mravenisko, graphics, i, j, velkostStvorceka, 2);
                }
            }
            break;

            case TypyObjektov.prazdnaZem:
            {
                VykresliObdlznik(i * velkostStvorceka, j * velkostStvorceka, velkostStvorceka, velkostStvorceka, Color.Khaki, graphics);

                if (mravenisko.VratObjektPohybujuceSaNaDanychSuradniciachZobrazovanie(new Suradnice(i, j)).Count > 0)
                {
                    VykresliMravcov(mravenisko, graphics, i, j, velkostStvorceka, 2);
                }
            }
            break;
            }
        }
        //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);
        }
Exemple #3
0
        //mravec sa naje, pokial je na danom policku potrava
        public void NajedzSa(Mravenisko mravenisko, int cas)
        {
            TypyObjektov typyObjektov = mravenisko.ZistiCoJeNaDanychSuradniciach(suradnice);

            if (typyObjektov == TypyObjektov.potrava && ZistiExistenciu())
            {
                Potrava potrava = mravenisko.VratObjektNepohybujuceSaNaDanychSuradniciach(suradnice) as Potrava;
                NajedzSa(potrava.ZiadamEnergia(ZistiEnergiaMravca()));
                NastavPodariloSa(true);

                if (potrava.ZistiExistenciu() == false)
                {
                    mravenisko.PridaniePrazdnaZemKonkretnaPozicia(potrava.ZistiXSuradnicu(), potrava.ZistiYSuradnicu());
                }

                HlaskyCinnostiMravcovStavObjektov.MravecJe(cas, ZistiIdMravca(), (int)ZistiTypyMravcov() + 1,
                                                           ZistiXSuradnicu(), ZistiYSuradnicu(),
                                                           ZistiEnergiaMravca());
                mravenisko.NastavJedenie(ZistiXSuradnicu(), ZistiYSuradnicu(), true);
            }
        }
        //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);
        }