示例#1
0
 /// <summary>
 /// Setzt den übergebenen Spieler an die übergebene Position.
 /// </summary>
 /// <param name="k">Zu setzende Koordinate.</param>
 /// <param name="spieler1">Zu setzenden Spieler.</param>
 public void Setzte(Koordinate k, bool spieler1)
 {
     if (spieler1)
     {
         feld[k.GetX(), k.GetY()] = 1;
     }
     else
     {
         feld[k.GetX(), k.GetY()] = 2;
     }
 }
 /// <summary>
 /// Hilfsmethode von MenschZug(). Prüft, ob die übergebene Koordinate ein gültiger Zug ist.
 /// </summary>
 /// <param name="k">Zu prüfende Koordinate.</param>
 /// <returns>True, wenn die Koordinate ein gültiger Zug ist, ansonsten false.</returns>
 private bool Validiere(Koordinate k)
 {
     if (status.GetFeld()[k.GetX(), k.GetY()] == 0)
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
 //Testet ob im übergebenen Spielfeld die übergebenen Koordinaten, die Nummer des übergebenen Spielers besitzen
 /// <summary>
 /// Hilfsmethode von SiegTesten(). Testet, ob im übergebenen Spielfeld die übergebenen Koordinaten die Nummer des übergebenen Spielers besitzen.
 /// </summary>
 /// <param name="feld">Zu prüfendes Spielfeld Array</param>
 /// <param name="spielerZahl">Zu prüfende Zahl des Spielers</param>
 /// <param name="k1">Koordinate des ersten Feldes</param>
 /// <param name="k2">Koordinate des zweiten Feldes</param>
 /// <param name="k3">Koordinate des dritten Feldes</param>
 /// <returns></returns>
 private Koordinate[] TesteFelder(int[,] feld, int spielerZahl, Koordinate k1, Koordinate k2, Koordinate k3)
 {
     if (new[] { feld[k1.GetX(), k1.GetY()], feld[k2.GetX(), k2.GetY()], feld[k3.GetX(), k3.GetY()] }.All(x => x == spielerZahl))
     {
         Koordinate[] siegFelder = new Koordinate[] { k1, k2, k3 };
         return(siegFelder);
     }
     else
     {
         return(null);
     }
 }
        /// <summary>
        /// Methode, die im Falle eines Zuges eines Menschen von der Oberfläche aufgerufen wird.
        /// </summary>
        /// <param name="k">Koordinate mit der Angabe, wo der Zug gemacht werden soll.</param>
        /// <returns>SpielStatus Objekt nach dem Zug.</returns>
        public SpielStatus MenschZug(int x, int y)
        {
            Koordinate k = new Koordinate(x, y);

            status.SetValide(Validiere(k));
            if (status.GetValide())
            {
                status.Setzte(k, status.GetSpieler1Zug());
                status.SetSiegFelder(SiegTesten());
                status.ZugBeenden();
            }
            return(status);
        }
 /// <summary>
 /// Konstruktor. Erzeugt aus der übergebenen Koordinate eine mit gewichtbare.
 /// </summary>
 /// <param name="k">Koordinate, die gewichtbar sein soll.</param>
 public GewichteteKoordinate(Koordinate k)
 {
     koordinate = k;
 }