Exemplo n.º 1
0
        public void AusspielenWählen()
        {
            if (handKarten.Count == 0 || tischDiener.Count == 9)
            {
                return;
            }
            Menü.Ausspielen(this);
            int eingabe;

            while (true)
            {
                Menü.Fehler();
                eingabe = Console.ReadKey(true).KeyChar - '0';
                if (eingabe == 0)
                {
                    break;
                }
                if (eingabe > 0 && eingabe <= handKarten.Count)
                {
                    if (handKarten[eingabe - 1] is Diener diener)
                    {
                        if (diener.Angriff <= Runde)
                        {
                            break;
                        }
                        else
                        {
                            Menü.Fehler($"{diener.GetType().Name} kann noch nicht ausgespielt werden!");
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
            Ausspielen(eingabe - 1);
            Menü.Ausspielen();
        }
Exemplo n.º 2
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);
                }
            }
        }