Exemple #1
0
        //spracovanie suboja dvoch proti sebe iducich skupin mravcov (kde jedna skupina obsahuje mravce toho isteho typu)
        private static void SubojPohybujuce(List <Mravec> mravce1, Suradnice suradnice1, List <Mravec> mravce2,
                                            Suradnice suradnice2, Mravenisko mravenisko, int cas)
        {
            PolickaPriPrechadzajucomBoji polickaPriPrechadzajucomBoji1 = new PolickaPriPrechadzajucomBoji(suradnice1, mravce1[0].ZistiTypyMravcov());
            PolickaPriPrechadzajucomBoji polickaPriPrechadzajucomBoji2 = new PolickaPriPrechadzajucomBoji(suradnice2, mravce2[0].ZistiTypyMravcov(),
                                                                                                          polickaPriPrechadzajucomBoji1);

            polickaPriPrechadzajucomBoji1.NastavDruhePolicko(polickaPriPrechadzajucomBoji2);
            mravenisko.NastavPolickoBojPrechadzajuce(polickaPriPrechadzajucomBoji1, polickaPriPrechadzajucomBoji1.ZistiSuradniceMravcov().ZistiXSuradnicu(),
                                                     polickaPriPrechadzajucomBoji1.ZistiSuradniceMravcov().ZistiYSuradnicu());
            mravenisko.NastavPolickoBojPrechadzajuce(polickaPriPrechadzajucomBoji2, polickaPriPrechadzajucomBoji2.ZistiSuradniceMravcov().ZistiXSuradnicu(),
                                                     polickaPriPrechadzajucomBoji2.ZistiSuradniceMravcov().ZistiYSuradnicu());

            List <Mravec> mravceTypu1 = new List <Mravec>();
            List <Mravec> mravceTypu2 = new List <Mravec>();
            List <Mravec> mravceTypu3 = new List <Mravec>();
            List <Mravec> mravceTypu4 = new List <Mravec>();

            List <Mravec> vyherneMravce = new List <Mravec>();

            List <Mravec> mravceUskokTypu1 = new List <Mravec>();
            List <Mravec> mravecUskokTypu2 = new List <Mravec>();
            List <Mravec> mravecUskokTypu3 = new List <Mravec>();
            List <Mravec> mravecUskokTypu4 = new List <Mravec>();

            RoztriedMravcePodlaTypovMravce(mravce1, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4);
            RoztriedMravcePodlaTypovMravce(mravce2, mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4);

            NastavBojovaliPriPrechodeDetail(mravceTypu1);
            NastavBojovaliPriPrechodeDetail(mravceTypu2);
            NastavBojovaliPriPrechodeDetail(mravceTypu3);
            NastavBojovaliPriPrechodeDetail(mravceTypu4);

            Suradnice suradniceMravcovTypu1PreUskok = default(Suradnice);
            Suradnice suradniceMravcovTypu2PreUskok = default(Suradnice);
            Suradnice suradniceMravcovTypu3PreUskok = default(Suradnice);
            Suradnice suradniceMravcovTypu4PreUskok = default(Suradnice);

            Suradnice suradniceMravcovTypu1 = default(Suradnice);
            Suradnice suradniceMravcovTypu2 = default(Suradnice);
            Suradnice suradniceMravcovTypu3 = default(Suradnice);
            Suradnice suradniceMravcovTypu4 = default(Suradnice);

            NastavSuradnicePodlaTypu(ref suradniceMravcovTypu1PreUskok, ref suradniceMravcovTypu2PreUskok,
                                     ref suradniceMravcovTypu3PreUskok, ref suradniceMravcovTypu4PreUskok
                                     , suradnice2, mravce1[0].ZistiTypyMravcov());
            NastavSuradnicePodlaTypu(ref suradniceMravcovTypu1PreUskok, ref suradniceMravcovTypu2PreUskok,
                                     ref suradniceMravcovTypu3PreUskok, ref suradniceMravcovTypu4PreUskok,
                                     suradnice1, mravce2[0].ZistiTypyMravcov());

            NastavSuradnicePodlaTypu(ref suradniceMravcovTypu1, ref suradniceMravcovTypu2, ref suradniceMravcovTypu3, ref suradniceMravcovTypu4, suradnice1,
                                     mravce1[0].ZistiTypyMravcov());
            NastavSuradnicePodlaTypu(ref suradniceMravcovTypu1, ref suradniceMravcovTypu2, ref suradniceMravcovTypu3, ref suradniceMravcovTypu4, suradnice2,
                                     mravce2[0].ZistiTypyMravcov());


            ZistiSpravujUskakujuceMravce(mravenisko, ref mravceTypu1, mravceUskokTypu1, cas);
            ZistiSpravujUskakujuceMravce(mravenisko, ref mravceTypu2, mravecUskokTypu2, cas);
            ZistiSpravujUskakujuceMravce(mravenisko, ref mravceTypu3, mravecUskokTypu3, cas);
            ZistiSpravujUskakujuceMravce(mravenisko, ref mravceTypu4, mravecUskokTypu4, cas);

            VratMravceNaPolickoZKtorehoIsliUskociliNanTeraz(suradniceMravcovTypu1PreUskok, mravceUskokTypu1, mravenisko, cas);
            VratMravceNaPolickoZKtorehoIsliUskociliNanTeraz(suradniceMravcovTypu2PreUskok, mravecUskokTypu2, mravenisko, cas);
            VratMravceNaPolickoZKtorehoIsliUskociliNanTeraz(suradniceMravcovTypu3PreUskok, mravecUskokTypu3, mravenisko, cas);
            VratMravceNaPolickoZKtorehoIsliUskociliNanTeraz(suradniceMravcovTypu4PreUskok, mravecUskokTypu4, mravenisko, cas);

            int energiaMravceTypu1 = ZistiEnergiaMravcov(mravceTypu1);
            int energiaMravceTypu2 = ZistiEnergiaMravcov(mravceTypu2);
            int energiaMravceTypu3 = ZistiEnergiaMravcov(mravceTypu3);
            int energiaMravceTypu4 = ZistiEnergiaMravcov(mravceTypu4);

            TypyMravcov typyMravcov = ZistiVyhercaSuboja(energiaMravceTypu1, energiaMravceTypu2, energiaMravceTypu3, energiaMravceTypu4);

            SpracujVyhru(suradniceMravcovTypu1, suradniceMravcovTypu2, suradniceMravcovTypu3, suradniceMravcovTypu4, typyMravcov,
                         mravceTypu1, mravceTypu2, mravceTypu3, mravceTypu4, TypySubojov.subojPriPrechode, cas);

            VymazMravcePodlaTypu(mravenisko, typyMravcov, suradniceMravcovTypu1, suradniceMravcovTypu2, suradniceMravcovTypu3, suradniceMravcovTypu4, mravceTypu1,
                                 mravceTypu2, mravceTypu3, mravceTypu4, cas);
        }