Esempio n. 1
0
 public void Gruessen(B_Spieler bS)
 {
     Console.WriteLine($"Moin {bS.Name}");
 }
Esempio n. 2
0
        static void Main(string[] args)
        {
            #region Spieler A anlegen
            A_Spieler achim = new A_Spieler("Achim");
            A_Spieler anja  = new A_Spieler("Anja");
            A_Spieler anton = new A_Spieler("Anton");
            A_Spieler alma  = new A_Spieler("Alma");
            A_Spieler axel  = new A_Spieler("Axel");
            #endregion

            #region Spieler B anlegen
            B_Spieler belinda = new B_Spieler("Belinda");
            B_Spieler barbara = new B_Spieler("Barbara");
            B_Spieler bjoern  = new B_Spieler("Björn");
            B_Spieler bianca  = new B_Spieler("Bianca");
            B_Spieler bruno   = new B_Spieler("Bruno");
            #endregion

            #region Listen
            List <A_Spieler> aListe = new List <A_Spieler>()
            {
                achim,
                anja,
                anton,
                alma,
                axel
            };

            List <B_Spieler> bListe = new List <B_Spieler>()
            {
                belinda,
                barbara,
                bjoern,
                bianca,
                bruno
            };
            #endregion

            #region Anfangsposition auslosen
            Random rnd = new Random();
            short  x;
            short  y;
            foreach (A_Spieler aS in aListe)
            {
                do
                {
                    x = (short)rnd.Next(0, feldMax_X);
                    y = (short)rnd.Next(0, feldMax_Y / 2);
                } while (aListe.FindAll(a => a.x == x).Any(a => a.y == y));

                aS.x = x;
                aS.y = y;
            }

            foreach (B_Spieler bS in bListe)
            {
                do
                {
                    x = (short)rnd.Next(0, feldMax_X);
                    y = (short)rnd.Next(feldMax_Y / 2, feldMax_Y);
                } while (bListe.FindAll(b => b.x == x).Any(b => b.y == y));

                bS.x = x;
                bS.y = y;
            }
            #endregion

            for (int i = 0; i < feldMax_Y; i++)
            {
                for (int j = 0; j < feldMax_X; j++)
                {
                    Console.SetCursorPosition(j, i);
                    Console.Write("o");
                }
            }

            foreach (A_Spieler aS in aListe)
            {
                Console.SetCursorPosition(aS.x, aS.y);
                Console.Write("A");
            }
            foreach (B_Spieler bS in bListe)
            {
                Console.SetCursorPosition(bS.x, bS.y);
                Console.Write("B");
            }

            Console.SetCursorPosition(0, feldMax_Y + 2);

            Console.WriteLine("Testausgabe Listen\n");
            Console.WriteLine("Spieler A");
            Console.WriteLine("----------------------------------");
            foreach (A_Spieler aS in aListe)
            {
                Console.WriteLine($"Name => {aS.Name}");
                Console.WriteLine($"X => {aS.x}");
                Console.WriteLine($"Y => {aS.y}");
                Console.WriteLine("\n");
            }
            Console.WriteLine("\nSpieler B");
            Console.WriteLine("----------------------------------");
            foreach (B_Spieler bS in bListe)
            {
                Console.WriteLine($"Name => {bS.Name}");
                Console.WriteLine($"X => {bS.x}");
                Console.WriteLine($"Y => {bS.y}");
                Console.WriteLine("\n");
            }

            Console.ReadKey();
            Console.Clear();

            while (aListe.Any(a => a.ImSpiel == true) && bListe.Any(b => b.ImSpiel == true))
            {
                //! Schicke A-Spieler auf Nachbarfeld
                foreach (A_Spieler aS in aListe.FindAll(a => a.ImSpiel == true))
                {
                    if (aS.x + 1 <= feldMax_X)
                    {
                        aS.x++;
                    }
                    if (aS.y + 1 <= feldMax_Y)
                    {
                        aS.y++;
                    }
                }

                //! Schicke B-Spieler auf Nachbarfeld
                foreach (B_Spieler bS in bListe.FindAll(b => b.ImSpiel == true))
                {
                    if (bS.x + 1 <= feldMax_X)
                    {
                        bS.x++;
                    }
                    if (bS.y + 1 <= feldMax_Y)
                    {
                        bS.y++;
                    }
                }

                //! Prüfe ob A-Spieler grüßen müssen
                foreach (A_Spieler aS in aListe.FindAll(a => a.ImSpiel == true))
                {
                    foreach (A_Spieler aS_2 in aListe.FindAll(a => a.Name != aS.Name && a.x == aS.x && a.y == aS.y))
                    {
                        aS.Gruessen(aS_2);
                    }
                }

                //! Prüfe ob B-Spieler grüßen müssen
                foreach (B_Spieler bS in bListe.FindAll(b => b.ImSpiel == true))
                {
                    foreach (B_Spieler bS_2 in bListe.FindAll(b => b.Name != bS.Name && b.x == bS.x && b.y == bS.y))
                    {
                        bS.Gruessen(bS_2);
                    }
                }

                short sieger;
                //! FIGHT!
                foreach (A_Spieler aS in aListe.FindAll(a => a.ImSpiel == true)) // aListe wird gecheckt da wir irgendwo anfangen müssen #TEAM_A
                {
                    foreach (B_Spieler bS in bListe.FindAll(b => b.ImSpiel == true).FindAll(b => aS.x == b.x && aS.y == b.y))
                    {
                        sieger = (short)rnd.Next((short)Sieger.istA, (short)Sieger.istB + 1);
                        switch (sieger)
                        {
                        case (short)Sieger.istA:
                            aS.Jubeln();
                            bS.Heulen();
                            bS.ImSpiel = false;
                            break;

                        case (short)Sieger.istB:
                            bS.Jubeln();
                            aS.Heulen();
                            aS.ImSpiel = false;
                            break;
                        }
                    }
                }
            } //end while

            Console.WriteLine("\n------------------------------\n");

            if (aListe.Any(a => a.ImSpiel == true))
            {
                Console.WriteLine("Team A gewinnt :)");
            }
            else
            {
                Console.WriteLine("Team B gewinnt :)");
            }
            Console.ReadKey();
        }