/// <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);
        }
示例#2
0
        /// <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;
                    }
                }
            }
        }