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); }
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); } } }
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); } } }