コード例 #1
0
        public bool MakeAIMove(ref bool extra_movement)
        {
            bool rtn = false;

            if (!(GetPlayerPlaying() is VirtualPlayer))
            {
                return(rtn);
            }
            Move currentMove = (GetPlayerPlaying() as VirtualPlayer).GetMove(Board, GetTurnColor().Substring(0, 1));

            if (currentMove != null)
            {
                if (IsPlayPossible(currentMove.origin.Position, currentMove.destination.Position, GetTurnColor().Substring(0, 1)))
                {
                    AIMove?.Invoke(currentMove.origin.Position, currentMove.destination.Position);
                    UpdatePieces(currentMove.origin.Position, currentMove.destination.Position);
                    rtn = true;
                }
            }
            if (HasEaten)
            {
                if (ExtraMov(currentMove.destination.Position, GetTurnColor().Substring(0, 1)))
                {
                    extra_movement = true;
                }
            }
            CheckWinner();
            if (Winner != null)
            {
                IsGameOver = true;
            }
            CheckQueen(GetTurnColor().Substring(0, 1), currentMove.destination.Position);

            return(rtn);
        }