Exemplo n.º 1
0
        public CinnostMravcaDetail(CinnostiMravcov coChceRobit)
        {
            switch (coChceRobit)
            {
            case CinnostiMravcov.zostan: NastavZostan(); break;

            case CinnostiMravcov.otocSaVlavo: NastavOtocitVlavo(); break;

            case CinnostiMravcov.chodDopreduUtok: NastavChodDopreduUtocne(); break;

            case CinnostiMravcov.chodDopreduObrana: NastavChodDopreduObranne(); break;

            case CinnostiMravcov.najedzSa: NastavNajedzSa(); break;

            case CinnostiMravcov.paritSa: NastavParitSa(); break;
            }
        }
        //nastavi cinnosti mravca, v zavislosti od toho vytvori Udalost, parit sa je cinnost viacerych mravcov a najedenie sa
        //nie je pohybova cinnost a tak maju samostatny typ udalosti
        public static void NastavenieCinnostiMravca(Halda <Udalost> halda, int cas, Mravec mravec, Mravenisko mravenisko)
        {
            CinnostiMravcov cinnostiMravcovNova = ZistenieCinnostiMravca(ZistiTypPolickaSucasne(mravenisko, mravec.ZistiTypyMravcov(),
                                                                                                mravec.ZistiSuradnica()), ZistiTypPolickaVpredu(mravenisko, mravec.ZistiTypyMravcov(),
                                                                                                                                                NasledujucePolickoMraveniska.ZistiSuradniceNasledujucehoPolicka(
                                                                                                                                                    mravec.ZistiSuradnica(),
                                                                                                                                                    mravec.ZistiSmerPohybu(), mravenisko.ZistiRozmerMraveniska())),
                                                                         mravec.ZistiTypyMravcov());

            mravec.NastavCinnostMravca(cinnostiMravcovNova);


            if (cinnostiMravcovNova == CinnostiMravcov.paritSa)
            {
                mravec.NastavParitSa(true);
                if (!NastaveneHodnotyPocasKrokov.ZistiParenie())
                {
                    Udalost udalost = new Udalost(cas + 1, (int)TypyUdalosti.paritSa,
                                                  TypyUdalosti.paritSa);
                    halda.VlozPrvok(udalost, udalost.ZistiCasNastania(), udalost.ZistiPriorita());

                    NastaveneHodnotyPocasKrokov.NastavParenie(true);
                }
            }
            else if (cinnostiMravcovNova == CinnostiMravcov.najedzSa)
            {
                Udalost udalost = new Udalost(cas + 1, (int)TypyUdalosti.vykonanieCinnostiMravcovNepohybovych,
                                              TypyUdalosti.vykonanieCinnostiMravcovNepohybovych, mravec);
                halda.VlozPrvok(udalost, udalost.ZistiCasNastania(), udalost.ZistiPriorita());
            }
            else
            {
                Udalost udalost = new Udalost(cas + 1, (int)TypyUdalosti.vykonanieCinnostiMravcovPohybovych + (int)cinnostiMravcovNova,
                                              TypyUdalosti.vykonanieCinnostiMravcovPohybovych, mravec);

                halda.VlozPrvok(udalost, udalost.ZistiCasNastania(), udalost.ZistiPriorita());
            }
        }
Exemplo n.º 3
0
 public void NastavCinnostMravca(CinnostiMravcov cinnostiMravcov)
 {
     this.cinnostiMravcov = cinnostiMravcov;
     cinnostMravcaDetail  = new CinnostMravcaDetail(cinnostiMravcov);
 }
Exemplo n.º 4
0
        bool vyhralBojNaPolicku;      //ci vyhral boj na policku


        public void NastavCoChcelRobit(CinnostiMravcov hodnota)
        {
            coChcelRobit = hodnota;
        }