コード例 #1
0
    public bool IsSquareSafeForKing(Square desiredMove)
    {
        ChessSet   enemySet           = myChessSet.GetMyEnemyChessSet();
        ChessPiece pieceOnDesiredMove = desiredMove.GetContainedPiece();

        if (enemySet.IsSquareAttackedByMyPieces(desiredMove, currentSquare))
        {
            return(false);
        }
        else if (enemySet.IsSquareAttackedByMyKing(desiredMove))
        {
            return(false);
        }
        else if (pieceOnDesiredMove)
        {
            if (pieceOnDesiredMove.GetMyColorTag() != myPlayerColorTag && pieceOnDesiredMove.AmIProtectedByMyPieces())
            {
                return(false);
            }
        }

        return(true);
    }