Esempio n. 1
0
        // Ez a metódus megnézi tud-e kijátszani kártyát az AI, ha nem akkor null értéket ad vissza
        // Ha tud kijátszani, akkor visszaadja a kijátszandó kártyát és kiveszi a saját paklijából.
        public static Kartya KartyatKijatszik(Kartya Adu, Jatekos AI, bool felhasznaloAKihivo)
        {
            bool tudMitKijatszani = false;

            int[] kijatszhatoKartyakIndexe = new int[AI.Kartyak.Count];
            int   counter = 0;
            int   index   = 0;

            // Ha a felhasználó a kihívó.. akkor AI másodiknak jön -> magasabb lapot kell raknia
            if (felhasznaloAKihivo)
            {
                foreach (Kartya k in AI.Kartyak)
                {
                    if (JatekLogika.ErvenyesLepesE(Adu, k) && JatekLogika.MagasabbE(Adu, k))
                    {
                        tudMitKijatszani = true;
                        kijatszhatoKartyakIndexe[index] = counter;
                        index++;
                    }
                    counter++;
                }
            }
            // Különben AI kezd, csak a színre kell figyelnie
            else
            {
                foreach (Kartya k in AI.Kartyak)
                {
                    if (JatekLogika.ErvenyesLepesE(Adu, k))
                    {
                        tudMitKijatszani = true;
                        kijatszhatoKartyakIndexe[index] = counter;
                        index++;
                    }
                    counter++;
                }
            }

            Trace.WriteLine("Mi történik?");
            // Ha nem tud mit kijátszani húzni egyet..
            if (tudMitKijatszani == false)
            {
                Trace.WriteLine("{0} nem tud mit kijátszani.. Kér egy lapot!", AI.Nev);
                return(null);
            }
            else
            {
                Trace.WriteLine("{0} kártyát hív!", AI.Nev);
                AI.FokuszaltKartyaCsereAdottIndexre(kijatszhatoKartyakIndexe[0]);
                // Dupla csekkolás van... elvileg itt már olyan indexű van kiválasztva ami színre passszol, az érték vizsgálat opcionális
                // Ha nem a felhasználó a kihívó, akkor az AI rak először, nem kell foglalkoznia a nagysággal-> tisztaság kedvéért új változó
                bool ellenorizzeHogyNagyobbe = !felhasznaloAKihivo;
                return(AI.FokuszaltKartyatKijatszik(Adu, ellenorizzeHogyNagyobbe));
            }
        }
Esempio n. 2
0
        public Kartya FokuszaltKartyatKijatszik(Kartya adu, bool ellenorizzeHogyNagyobbE)
        {
            Kartya kartya = Kartyak[FokuszaltKartyaIndex];

            if (!ellenorizzeHogyNagyobbE)
            {
                if (JatekLogika.ErvenyesLepesE(adu, kartya) && JatekLogika.MagasabbE(adu, kartya))
                {
                    Kartyak.RemoveAt(FokuszaltKartyaIndex);
                    FokuszaltKartyaIndex = 0;
                    return(kartya);
                }
            }
            else
            {
                if (JatekLogika.ErvenyesLepesE(adu, kartya))
                {
                    Kartyak.RemoveAt(FokuszaltKartyaIndex);
                    FokuszaltKartyaIndex = 0;
                    return(kartya);
                }
            }
            return(null);
        }