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;
 }