/// <summary> /// Methode, die im Falle eines Zuges einer KI von der Oberfläche aufgerufen wird. /// </summary> /// <returns>SpielStatus Objekt, nach dem Zug der KI.</returns> public SpielStatus KiZug() { //Da die leichte KI keine Perspektive braucht, muss bei ihr keine Unterscheidung gemacht werden, als welcher Spieler sie spielt. if (spieler1 == Spielmodi.KILeicht || spieler2 == Spielmodi.KILeicht) { LeichteKI ki = new LeichteKI(); status.Setzte(ki.GetZug(status.GetFeld()), status.GetSpieler1Zug()); status.SetSiegFelder(SiegTesten()); status.ZugBeenden(); } //Bei der schweren KI muss die Rolle abgefragt werden, damit die KI aus der richtigen Perspektive spielt. else { SchwereKI ki = new SchwereKI(); if (status.GetSpieler1Zug() && spieler1 == Spielmodi.KISchwer) { status.Setzte(ki.GetZug(status.GetFeld(), 1), status.GetSpieler1Zug()); } else if (!status.GetSpieler1Zug() && spieler2 == Spielmodi.KISchwer) { status.Setzte(ki.GetZug(status.GetFeld(), 2), status.GetSpieler1Zug()); } status.SetSiegFelder(SiegTesten()); status.ZugBeenden(); } return(status); }
/// <summary> /// Das Spielfeld abhängig von den Nummern im SpielStatus Objekt mit den Spielerzeichen versehen. /// </summary> private void SpielfeldAktualisieren() { for (int i = 0; i < buttons.GetLength(0); i++) { for (int j = 0; j < buttons.GetLength(1); j++) { buttons[i, j].Text = "" + status.GetFeld()[i, j]; switch (status.GetFeld()[i, j]) { case 0: buttons[i, j].Text = ""; break; case 1: buttons[i, j].Text = spieler1Symbol; break; case 2: buttons[i, j].Text = spieler2Symbol; break; } } } }