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