// Wrapper metódus -> figyeli tud-e kijátszani az AI kártyát private bool AIJatszKiKartyat(bool felhasznaloAkihivo) { Kartya tmp = AILogika.KartyatKijatszik(Adu, AI, felhasznaloAkihivo); if (tmp != null) { Adu = tmp; String kartyaKijatszosEvent = String.Format("{0} kijátszotta : {1} kártyát\n", AI.Nev, tmp.KartyaNeve()); Megjelenito.AddEvent(kartyaKijatszosEvent); Megjelenito.Takaritas(); Megjelenito.HeaderRajzolas(Adu); //AI.KartyakatMutat(); Thread.Sleep(750); return(true); } else { String ervenytelenLepesString = String.Format("{0} Nem tud mit kijátszani..\n", AI.Nev); Megjelenito.AddEvent(ervenytelenLepesString); Megjelenito.Takaritas(); Megjelenito.HeaderRajzolas(Adu); //AI.KartyakatMutat(); Thread.Sleep(750); return(false); } }
// 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); } }