예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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();
            }
        }
예제 #3
0
        /// <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();
        }
예제 #4
0
        /// <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");
        }