public Move FindOpeningCounter(int player) { int enemyX = -1; int enemyY = -1; Move bestMove = new Move(); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (Board[i, j] == -player) { enemyX = i; enemyY = j; } } } if ((enemyX + enemyY) % 2 == 0) { if (enemyX == 0) { if (enemyY == 0) { bestMove.SetX(2); bestMove.SetY(0); } else { bestMove.SetX(0); bestMove.SetY(0); } } else if (enemyX == 2) { if (enemyY == 0) { bestMove.SetX(0); bestMove.SetY(0); } else { bestMove.SetX(0); bestMove.SetY(2); } } } else { if (enemyY == 1) { if (enemyX == 0) { bestMove.SetX(0); bestMove.SetY(0); } else { bestMove.SetX(2); bestMove.SetY(0); } } else if (enemyX == 1) { if (enemyY == 0) { bestMove.SetX(0); bestMove.SetY(0); } else { bestMove.SetX(0); bestMove.SetY(2); } } } return bestMove; }
public List<Move> RemainingMoves() { List<Move> moves = new List<Move>(); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (Board[i, j] == 0) { Move move = new Move(); move.SetX(i); move.SetY(j); moves.Add(move); } } } return moves; }