Example #1
0
        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);
        }