public static int NextMove(int[] board, bool maximising = true) { var nextMove = -1; var bestScore = Opponent.MiniMax(board, 0, maximising); for (int i = 0; i < 9; i++) { if (board[i] != 0) { continue; } var newBoard = board.ToArray(); newBoard[i] = OPPONENT; var score = MiniMax(newBoard, 0, maximising); if (score >= bestScore) { nextMove = i; } Program.PrintBoard(newBoard); Console.WriteLine(score); } return(nextMove); }