Beispiel #1
0
 /// <summary>
 /// Markiert, welcher Spieler am Zug ist. Hilfsmethode von Anzeigen().
 /// </summary>
 private void SpielerAktualisieren()
 {
     if (status.GetSpieler1Zug())
     {
         LblSpieler1.BackColor = markiert;
         LblSpieler2.BackColor = nichtMarkiert;
     }
     else
     {
         LblSpieler2.BackColor = markiert;
         LblSpieler1.BackColor = nichtMarkiert;
     }
 }
        /// <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);
        }