/// <summary> /// Kirajzol egy lapot a megadott x,y koordinátákra. /// </summary> /// <param name="x"></param> /// <param name="y"></param> /// <param name="lapGrafika">Megjelenítéshez használt lapgrafika.</param> public static void LapotKirajzol(int x, int y, Grafika lapGrafika) { Console.BackgroundColor = lapGrafika.lapSzin; for (int i = 0; i < magassag; i++) { Console.SetCursorPosition(x, y + i); for (int j = 0; j < szelesseg; j++) { Console.Write(" "); } Console.SetCursorPosition(x + szelesseg, y + i); } // Kártya adatai Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = lapGrafika.lapSzin; Console.SetCursorPosition(x + 1, y); Console.Write((lapGrafika.ertek > 0) ? lapGrafika.ertek.ToString() : ""); Console.SetCursorPosition(x + 1, y + 2); Console.Write(lapGrafika.tipus); Console.ForegroundColor = ConsoleColor.White; Console.BackgroundColor = ConsoleColor.Black; Console.SetCursorPosition(0, 0); }
/// <summary> /// Játék indítása. /// </summary> public void Start() { Console.Clear(); Console.WriteLine( @" {} , A {} / \, | , .--. | =|= > /.--.\ \ /` | ` |====| ` | |`::`| | .-;`\..../`;_.-^-._ /\\/ / |...::..|` : `| |:'\ | /'''::''| .:. | \ /\;-,/\ :: |..GWENT..| |\ <` > >._::_.| ': :' | | `""""` / ^^ | ':' | | | \ : / | | \ : / | |___/\___|`-.:.-` | \_ || _/ ` | <_ >< _> | | || | | | || | | _\.:||:./_ | /____/\____\"); Console.WriteLine(); Console.WriteLine(); Console.WriteLine("\t\t\t\t\t - EASY GWENT -\n\n"); Console.WriteLine("\t\t\t\t\t 1 - Új játék"); Console.WriteLine("\t\t\t\t\t 2 - Ismertető"); Console.WriteLine("\t\t\t\t\t 3 - Kilépés\n\n"); string valasztas; do { Console.Write("Válassz egy opciót: "); valasztas = Console.ReadLine(); }while (valasztas == null || valasztas == "" || (valasztas != "1" && valasztas != "2" && valasztas != "3")); if (valasztas == "2") { Grafika.Szabalyok(); Console.ReadLine(); Start(); } else if (valasztas == "3") { Kilepes(); } else { JatekLoop(); } }
/// <summary> /// Egy játékos köre. Ebben a körben dönthet minden kézben lévő lapról, hogy lerakja-e vagy sem. /// </summary> /// <param name="jatekos">A soron következő játékos.</param> /// <param name="elhelyezettLapjai">Az őáltala lerakott lapok helye a csatamezőn.</param> private void JatekosKore(Jatekos jatekos, MezonyLap[] elhelyezettLapjai) { for (int i = 0; i < jatekos.KezbenLevoLapok.Length; i++) { string bemenet; Console.Clear(); Grafika.CsatamezotKirajzol(Csatamezo, Jatekos1, Jatekos2); Grafika.KezbenLevoLapokatKirajzol(jatekos, i); Console.SetCursorPosition(0, 32); Console.WriteLine($"{jatekos.Nev} köre.\nLerakod a kijelölt {jatekos.KezbenLevoLapok[i].Tipus.ToString()} lapot? (I/N)"); do { Console.SetCursorPosition(0, 35); bemenet = Console.ReadLine(); } while (bemenet.ToLower() != "i" && bemenet.ToLower() != "n"); if (bemenet.ToLower() == "i") { if (jatekos.KezbenLevoLapok[i] is MezonyLap) { int x = Csatamezo.ElhelyezettLapokTipusbol(jatekos.KezbenLevoLapok[i].Tipus); if (x < 5) { elhelyezettLapjai[i] = (MezonyLap)jatekos.KezbenLevoLapok[i]; jatekos.KezbenLevoLapok[i] = null; } else { Console.SetCursorPosition(0, 35); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"Nem helyezhetsz el több {jatekos.KezbenLevoLapok[i].Tipus} lapot."); Thread.Sleep(1000); } } else { int x = Csatamezo.SzabadIdojarasKoordinata(); if (x < 5) { Csatamezo.IdojarasLapok[x] = (IdojarasLap)jatekos.KezbenLevoLapok[i]; jatekos.KezbenLevoLapok[i] = null; } else { Console.SetCursorPosition(0, 35); Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine("Nem helyezhetsz el több időjárás lapot."); Thread.Sleep(1000); } } } Csatamezo.IdojarasLapokatAktival(); } }
/// <summary> /// Kiértékeli a kör végén, mely játékos nyert és kiírja az eredményt. /// </summary> private void KorvegiKiertekeles() { Console.Clear(); Grafika.CsatamezotKirajzol(Csatamezo, Jatekos1, Jatekos2); Console.SetCursorPosition(0, 32); if (Csatamezo.Jatekos1Pontjai == Csatamezo.Jatekos2Pontjai) { if (Jatekos1.Nev.ToLower() == "nilfgaardian") { Console.WriteLine($"{Jatekos1.Nev} nyerte ezt a csatát {Csatamezo.Jatekos1Pontjai} ponttal, mert ő nilfgaardi."); Jatekos2.EletekSzama--; } else if (Jatekos2.Nev.ToLower() == "nilfgaardian") { Console.WriteLine($"{Jatekos2.Nev} nyerte ezt a csatát {Csatamezo.Jatekos2Pontjai} ponttal, mert ő nilfgaardi."); Jatekos1.EletekSzama--; } else { Console.WriteLine($"Ebben az ütközetben mindkét sereg odaveszett."); Jatekos1.EletekSzama--; Jatekos2.EletekSzama--; } } else if (Csatamezo.Jatekos1Pontjai < Csatamezo.Jatekos2Pontjai) { Console.WriteLine($"{Jatekos2.Nev} nyerte ezt a csatát {Csatamezo.Jatekos2Pontjai} ponttal."); Jatekos1.EletekSzama--; } else { Console.WriteLine($"{Jatekos1.Nev} nyerte ezt a csatát {Csatamezo.Jatekos1Pontjai} ponttal."); Jatekos2.EletekSzama--; } Console.ReadLine(); }