using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MiniGames.Shared.Models { public class TicTacToeBrett { public const int LEER = -1; int[,] Felder; public TicTacToeBrett() { Felder = new[,] { { LEER, LEER, LEER }, { LEER, LEER, LEER }, { LEER, LEER, LEER }, }; } public TicTacToeBrett(int[,] felder) { Felder = felder; } public bool Gleich(TicTacToeBrett anderes) { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (Felder[i, j] != anderes.Felder[i, j]) { return false; } } } return true; } public bool Set(int pos, int wert) { int x = pos / 3; int y = pos % 3; try { if (Felder[x, y] == LEER) { Felder[x, y] = wert; return true; } } catch (IndexOutOfRangeException e) { // absichtlich leer } return false; } public bool Voll() { for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (Felder[i, j] == LEER) { return false; } } } return true; } public int Gewinner() { if (Felder[0, 0] == Felder[0, 1] && Felder[0, 1] == Felder[0, 2] && Felder[0, 0] != LEER) { return Felder[0, 0]; } if (Felder[1, 0] == Felder[1, 1] && Felder[1, 1] == Felder[1, 2] && Felder[1, 0] != LEER) { return Felder[1, 0]; } return LEER; } } }