/// <summary> /// Kirajzolja a csatamezőt és az egyes játékosok statisztikáit. /// </summary> /// <param name="csatamezo">Csatamező</param> /// <param name="j1">Játékos 1</param> /// <param name="j2">Játékos 2</param> public static void CsatamezotKirajzol(Csatamezo csatamezo, Jatekos j1, Jatekos j2) { VonalatRajzol(0, ConsoleColor.DarkCyan); SortKirajzol(1, csatamezo.J1Lapjai); Console.SetCursorPosition(66, 2); Console.Write($"{j1.Nev.ToUpper()}"); Console.SetCursorPosition(66, 3); Console.Write($"Pontok: {csatamezo.Jatekos1Pontjai}"); Console.SetCursorPosition(66, 4); Console.Write($"Életek: {j1.EletekSzama}"); VonalatRajzol(7, ConsoleColor.DarkCyan); SortKirajzol(8, csatamezo.J2Lapjai); Console.SetCursorPosition(66, 9); Console.Write($"{j2.Nev.ToUpper()}"); Console.SetCursorPosition(66, 10); Console.Write($"Pontok: {csatamezo.Jatekos2Pontjai}"); Console.SetCursorPosition(66, 11); Console.Write($"Életek: {j2.EletekSzama}"); VonalatRajzol(15, ConsoleColor.DarkCyan); SortKirajzol(16, csatamezo.IdojarasLapok); Console.SetCursorPosition(66, 19); Console.Write("IDŐJÁRÁS"); VonalatRajzol(22, ConsoleColor.DarkCyan); }
/// <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> /// Létrehozza a játékosokat és kiosztja a lapokat. /// </summary> private void JatekInit() { // Játékos 1 létrehozása string nev; do { Console.Write("Játékos 1 neve: "); nev = Console.ReadLine(); }while (nev == null || nev == "" || nev.Length > 20); Jatekos1 = new Jatekos(nev); // Játékos 2 létrehozása nev = null; do { Console.Write("Játékos 2 neve: "); nev = Console.ReadLine(); }while (nev == null || nev == "" || nev == Jatekos1.Nev || nev.Length > 20); Jatekos2 = new Jatekos(nev); // Pakli generálás Console.WriteLine(); Console.Write("Pakli létrehozása és keverése"); PakliGeneralas(); Kever(); for (int i = 0; i < 3; i++) { Thread.Sleep(150); Console.Write("."); } // Lapok kiosztása a játékosoknak Console.WriteLine(); Console.Write("Lapok kiosztása a játékosoknak"); LapokatKioszt(); for (int i = 0; i < 3; i++) { Thread.Sleep(150); Console.Write("."); } Console.WriteLine(); Console.WriteLine("A játék készen áll. Üss entert a kezdéshez!"); Console.ReadLine(); }
/// <summary> /// Kirajzolja az adott játékos kezében lévő lapokat, beszínezve az épp kiválasztott lapot. /// </summary> /// <param name="jatekos">Játékos akinek a lapjait meg akarjuk jeleníteni.</param> /// <param name="kivalasztottLapSzama">A kiválasztott lap indexe.</param> public static void KezbenLevoLapokatKirajzol(Jatekos jatekos, int kivalasztottLapSzama) { int y = 25; for (int i = 0; i < jatekos.KezbenLevoLapok.Length; i++) { if (jatekos.KezbenLevoLapok[i] == null) { LapHelyetKirajzol((i * (szelesseg + 2) + 1), y); } else { LapotKirajzol((i * (szelesseg + 2) + 1), y, new Grafika(jatekos.KezbenLevoLapok[i], (i == kivalasztottLapSzama))); } } Console.SetCursorPosition(66, 28); Console.Write($"{jatekos.Nev} Lapjai"); }