/// <summary> /// Initialisiert ein neues Spiel abhängig der übergebenen Modi. /// </summary> /// <param name="spieler1">Gewählter Spielmodus für Spieler 1.</param> /// <param name="spieler2">Gewählter Spielmodus für Spieler 2.</param> /// <returns>SpielStatus Objekt, für das neue Spiel.</returns> public SpielStatus InitSpiel(Spielmodi spieler1, Spielmodi spieler2) { this.spieler1 = spieler1; this.spieler2 = spieler2; status = new SpielStatus(spieler1, spieler2); return(status); }
/// <summary> /// Methode wird aufgerufen, damit die KI ihren Zug machen kann. /// </summary> /// <param name="erlaubt">Flag, ob ein KI-Zug noch nötig ist.</param> private void KIZugAbarbeiten(bool erlaubt) { //Dies tritt ein, wenn eine KI dran ist und läuft weiter, wenn der andere Spieler ebenfalls eine KI ist und das Spiel nicht beendet wurde. while (status.GetKiZug() && erlaubt) { status = sl.KiZug(); AnzeigeErgebnis erg = Anzeigen(); erlaubt = AnzeigeErgebnisBearbeiten(erg); } }
/// <summary> /// Startet eine neue Partie. /// </summary> private void SpielStarten() { status = sl.InitSpiel(spieler1Modus, spieler2Modus); for (int i = 0; i < buttons.GetLength(0); i++) { for (int j = 0; j < buttons.GetLength(1); j++) { buttons[i, j].BackColor = nichtMarkiert; buttons[i, j].Enabled = true; } } Anzeigen(); }
/// <summary> /// Methode, die von allen Buttons die das Spielfeld bilden aufgerufen wird. Identifiziert den Button und macht den entsprechenden Zug. /// </summary> /// <param name="sender">Objekt welches das Event auslöst.</param> /// <param name="e">Informationen zum Event.</param> private void Spielfeld_Click(object sender, EventArgs e) { //Wenn aktuell eine KI dran ist, wird der Klick ignoriert if (status.GetKiZug() == false) { for (int i = 0; i < buttons.GetLength(0); i++) { for (int j = 0; j < buttons.GetLength(1); j++) { if (sender == buttons[i, j]) { status = sl.MenschZug(i, j); } } } //Ergebnis des Zuges anzeigen, Ergebnis der Anzeige verarbeiten, gegebenenfalls eine KI ihren Zug machen lassen KIZugAbarbeiten(AnzeigeErgebnisBearbeiten(Anzeigen())); } }