Пример #1
0
        // Ha a felhasználót sorsolta ki a gép hogy kezdjen:
        public void StateMachineAmikorJatekosAFelvevo()
        {
            // Újrarajzolás
            Megjelenito.AddEventEsUjrarajzol("Játékos elvállalta a felvevő szerepét\n", Adu);
            Felhasznalo.KartyakatMutat();
            // AI elvállalja-e a kört?
            bool AI_ElvállaljaE = AILogika.AIKarEJatszani();

            if (AI_ElvállaljaE)
            {
                // Ha AI elvállalta
                Megjelenito.AddEventEsUjrarajzol("AI elvállalta a kört!\n", Adu);
                Felhasznalo.KartyakatMutat();

                // Lapcsere üzemmód..
                int csereSzam = KerdezdMegHanyLapotSzeretneCserélniAFelhasznalo();
                CsereljLapot(csereSzam);
                bool felhasznaloHivE = true;

                // 4 kör van...
                int j = 0;
                while (j < 4 && !ElfogytakAKartyakEgyikJatekosnak && !JatekVegetErt)
                {
                    Megjelenito.AddEventEsUjrarajzol(String.Format("{0} kihívás! A felhasználó a kihívó-e: {1}\n", j, felhasznaloHivE), Adu);
                    AdutFelütAmigKihivoNemTudRakni(felhasznaloHivE);
                    felhasznaloHivE = KartyakatKijatszak(felhasznaloHivE);
                    Trace.WriteLine(String.Format("Felhasznalo kezdett amúgy.. FelhasználóHívE most? {0}, Kör szám: {1}", Felhasznalo, j));
                    j++;
                }
                // Kiértékelés
                if (adottKorbenElvittUtesek[AI.Nev] < 1)
                {
                    Megjelenito.AddEvent("AI nem teljesítette az adott körben előírt ütés számot! Fizet a bankba!\n");
                    eredmeny[Felhasznalo.Nev]++;
                    bank++;
                }
                if (adottKorbenElvittUtesek[Felhasznalo.Nev] < 2)
                {
                    Megjelenito.AddEvent(String.Format("{0} nem teljesítette az adott körben előírt ütés számot! Fizet a bankba!\n", Felhasznalo.Nev));
                    eredmeny[AI.Nev]++;
                    bank++;
                }

                ElvitteEValakiABankot();

                // Adott kör lezárult, eredményeket kiírjuk
                Console.WriteLine(String.Format("\nA kör lezárult! Elvit ütések: {0}:{1} | {2}:{3}", Felhasznalo.Nev, adottKorbenElvittUtesek[Felhasznalo.Nev], AI.Nev, adottKorbenElvittUtesek[AI.Nev]));
                Megjelenito.Fontos(String.Format("A kör lezárult! Jelenlegi eredmény: {0}:{1} | {2}:{3}", Felhasznalo.Nev, eredmeny[Felhasznalo.Nev], AI.Nev, eredmeny[AI.Nev]));
            }
            else
            {
                Megjelenito.AddEventEsUjrarajzol("Felhasználó jelentkezett felvevőnek, AI bedobta a lapokat!\n", Adu);
            }
        }
Пример #2
0
        // Ha AI dönhet arról, hogy felvevő akar-e lenni akkor ez a sorozat játszódik le
        public void StateMachineAmikorAIDonthet(bool elsoAkiDonthet)
        {
            if (!elsoAkiDonthet)
            {
                Megjelenito.AddEventEsUjrarajzol("Játékos nem vállalta el a kört.\n", Adu);
            }
            int esely = rnd.Next(0, 101);

            bool AI_szeretneFelvevoLenni = esely < 50;

            // Ha AI szeretné elvállalni a Felvevő szerepét:
            if (AI_szeretneFelvevoLenni)
            {
                Megjelenito.AddEventEsUjrarajzol("AI szeretne felvevő lenni...\n", Adu);

                bool felhasznaloHivE = false;
                int  j = 0;
                while (j < 4 && !ElfogytakAKartyakEgyikJatekosnak && !JatekVegetErt)
                {
                    Megjelenito.AddEventEsUjrarajzol(String.Format("{0}. kihívás! A felhasználó a kihívó-e: {1}\n", j + 1, felhasznaloHivE), Adu);
                    AdutFelütAmigKihivoNemTudRakni(felhasznaloHivE);
                    Trace.WriteLine(String.Format("AI kezdett amúgy.. FelhasználóHívE most? {0}, Kör szám: {1}", Felhasznalo, j));
                    felhasznaloHivE = KartyakatKijatszak(felhasznaloHivE);
                    j++;
                }

                // Kiértékelés
                if (adottKorbenElvittUtesek[AI.Nev] < 2)
                {
                    eredmeny[Felhasznalo.Nev]++;
                    bank++;
                    Megjelenito.AddEvent("AI nem teljesítette az adott körben előírt ütés számot! Fizet a bankba!\n");
                }
                if (adottKorbenElvittUtesek[Felhasznalo.Nev] < 1)
                {
                    eredmeny[AI.Nev]++;
                    bank++;
                    Megjelenito.AddEvent(String.Format("{0} nem teljesítette az adott körben előírt ütés számot! Fizet a bankba!\n", Felhasznalo.Nev));
                }

                ElvitteEValakiABankot();

                // Adott kör lezárult, eredményeket kiírjuk
                Megjelenito.Fontos(String.Format("A kör lezárult! Jelenlegi eredmény: {0}:{1} | {2}:{3}", Felhasznalo.Nev, eredmeny[Felhasznalo.Nev], AI.Nev, eredmeny[AI.Nev]));
            }
            else
            {
                Megjelenito.AddEventEsUjrarajzol("AI nem szeretne felvevő lenni!\n", Adu);
            }
        }
Пример #3
0
 //Egészen addig amig a kihivó játékos kezében nincs legalább 1 szín ami megegyezik az aduval, addig az osztó új kártyát oszt.
 private void AdutKerAmigNincsMegfeleloSzineAHivonak(Jatekos kihivo)
 {
     while (true)
     {
         if (kihivo.VanAdottSzinuKartyaja(Adu.Szin))
         {
             Megjelenito.AddEventEsUjrarajzol(String.Format("{0} a kihívó, és most már elvileg van aduval megegyező szín a kezében!\n", kihivo.Nev), Adu);
             Thread.Sleep(750);
             return;
         }
         else
         {
             Adu = Oszto.OsztEgyKartyat();
             String ujAduLettKerve = String.Format("{0} a kihívó, nincs adott szín! Új adu :{1} \n", kihivo.Nev, Adu.KartyaNeve());
             Megjelenito.AddEvent(ujAduLettKerve);
         }
     }
 }