Пример #1
0
        static void Main(string[] args)
        {
            //Konsolenfenster einrichten
            Console.SetWindowSize(Console.LargestWindowWidth, Console.LargestWindowHeight);
            if (!ConsoleDisplayMode(CONSOLE_MODE.CONSOLE_FULLSCREEN_MODE))
            {
                Console.WriteLine("Error: " + GetLastError());
            }
            Console.OutputEncoding  = System.Text.Encoding.Unicode;
            Console.BackgroundColor = ConsoleColor.Blue;
            Console.Clear();
            Console.CursorVisible = false;

            //Spiel startet
            Spieler s1 = new Spieler();
            //List<Karte> k1 = s1.stapel;
            Spieler s2 = new Spieler();

            //List<Karte> k2 = s2.stapel;
            Zeichnen.Held(s1);
            Zeichnen.Held(s2);


            s1.stapel.Add(new Katze(s1));
            s1.stapel.Add(new Tiger(s1));
            s1.stapel.Add(new Papagei(s1));
            s1.stapel.Add(new Bär(s1));
            s1.stapel.Add(new Löwe(s1));
            s1.stapel.Add(new Papagei(s1));
            s1.stapel.Add(new Marder(s1));
            s1.stapel.Add(new Nashorn(s1));
            s1.stapel.Add(new Schwarzbär(s1));
            s1.stapel.Add(new Katze(s1));
            s1.Mischen();
            s2.stapel.Add(new Katze(s2));
            s2.stapel.Add(new Bär(s2));
            s2.stapel.Add(new Katze(s2));
            s2.stapel.Add(new Papagei(s2));
            s2.stapel.Add(new Marder(s2));
            s2.stapel.Add(new Nashorn(s2));
            s2.stapel.Add(new Schwarzbär(s2));
            s2.stapel.Add(new Tiger(s2));
            s2.stapel.Add(new Löwe(s2));
            s2.stapel.Add(new Papagei(s2));
            s2.Mischen();
            while (s1.KannSpielen && s2.KannSpielen && Spieler.sieger == 0)
            {
                s1.ZugBeginnt();
                s1.Nachziehen();
                s1.AusspielenWählen();
                s1.AngreifenWählen();
                s2.ZugBeginnt();
                s2.Nachziehen();
                s2.AusspielenWählen();
                s2.AngreifenWählen();
            }
            Console.SetCursorPosition(0, 0);
        }
Пример #2
0
        public void Angreifen(int dienerIndex, int gegnerIndex)
        {
            Diener diener = tischDiener[dienerIndex];

            diener.Warten = 1;
            if (gegnerIndex < 0)
            {
                Gegenspieler.held.Leben -= diener.Angriff;
                Zeichnen.Held(Gegenspieler);
                if (Gegenspieler.held.Leben < 1)
                {
                    SpielBeenden();
                }
            }
            else
            {
                Diener gegner  = Gegenspieler.tischDiener[gegnerIndex];
                Diener gegnerR = gegnerIndex != Gegenspieler.tischDiener.Count - 1? Gegenspieler.tischDiener[gegnerIndex + 1]:null;
                Diener gegnerL = gegnerIndex != 0? Gegenspieler.tischDiener[gegnerIndex - 1]:null;
                gegner.Leben -= diener.Angriff;
                if (diener.Prankenhiebe)
                {
                    if (gegnerL != null)
                    {
                        gegnerL.Leben--;
                    }
                    if (gegnerR != null)
                    {
                        gegnerR.Leben--;
                    }
                }
                if (gegner.Leben < 1 || (gegnerL != null && gegnerL.Leben < 1) || (gegnerR != null && gegnerR.Leben < 1))
                {
                    Gegenspieler.tischDiener.RemoveAt(gegnerIndex);
                    ZeichnenTisch(Gegenspieler);
                }
                diener.Leben -= gegner.Angriff;
                if (diener.Leben < 1)
                {
                    tischDiener.RemoveAt(dienerIndex);
                    ZeichnenTisch(this);
                }
            }
        }
Пример #3
0
        public void AngreifenWählen()
        {
            while (KannAngreifen && sieger == 0)
            {
                int eingabe, dienerIndex, gegnerIndex;
                Menü.AngreifenDiener(this);
                while (true)
                {
                    Menü.Fehler();
                    eingabe = Console.ReadKey(true).KeyChar - '0';
                    if (eingabe == 0)
                    {
                        break;
                    }
                    if (eingabe >= 1 && eingabe <= tischDiener.Count)
                    {
                        if (tischDiener[eingabe - 1].Warten == 0)
                        {
                            break;
                        }
                        else
                        {
                            Menü.Fehler($"{tischDiener[eingabe - 1].GetType().Name} kann nicht angreifen!");
                        }
                    }
                }
                Menü.AngreifenDiener();
                if (eingabe == 0)
                {
                    return;
                }
                dienerIndex = eingabe - 1;
                Zeichnen.Markieren(this, dienerIndex);

                if (Gegenspieler.tischDiener.Count == 0)
                {
                    Zeichnen.Markieren(Gegenspieler, -1);
                    Zeichnen.Markieren(this, dienerIndex, false);
                    Zeichnen.Markieren(Gegenspieler, -1, false);
                    Angreifen(dienerIndex, -1);
                }
                else
                {
                    List <int> spots = new List <int>();
                    for (int index = 0; index < Gegenspieler.tischDiener.Count; index++)
                    {
                        if (Gegenspieler.tischDiener[index].Spott)
                        {
                            spots.Add(index);
                        }
                    }
                    while (true)
                    {
                        Menü.AngreifenGegner(Gegenspieler);
                        Menü.Fehler();
                        eingabe = Console.ReadKey(true).KeyChar - '0';
                        if (spots.Count != 0)
                        {
                            if (eingabe == 0)
                            {
                                Menü.Fehler($"Held kann nicht angegriffen werden. Spott");
                            }
                            if (eingabe >= 1 && eingabe <= Gegenspieler.tischDiener.Count)
                            {
                                if (Gegenspieler.tischDiener[eingabe - 1].Spott)
                                {
                                    break;
                                }
                                else
                                {
                                    Menü.Fehler($"Dieser Diener kann nicht angegriffen werden. Spott");
                                }
                            }
                        }
                        else if (eingabe >= 0 && eingabe <= Gegenspieler.tischDiener.Count)
                        {
                            break;
                        }
                    }
                    Menü.AngreifenGegner();
                    gegnerIndex = eingabe - 1;
                    Zeichnen.Markieren(Gegenspieler, gegnerIndex);
                    Zeichnen.Markieren(this, dienerIndex, false);
                    Zeichnen.Markieren(Gegenspieler, gegnerIndex, false);
                    Angreifen(dienerIndex, gegnerIndex);
                }
            }
        }