コード例 #1
0
ファイル: MovesUtilities.cs プロジェクト: Fabernaz/Chess
        private static bool CastlePiecesHaveNotBeenMoved(King king, Board board, CastleType castleType)
        {
            if (king.HasBeenMoved)
            {
                return(false);
            }

            var rookSquare = board[king.GetCastleRookStartingSquare(castleType)];

            return(rookSquare.Piece != null &&
                   !rookSquare.Piece.HasBeenMoved);
        }
コード例 #2
0
        private Move GetCastleMove(Board board, King king, CastleType castleType)
        {
            var rook = board[king.GetCastleRookStartingSquare(castleType)].Piece as Rook;

            return(new Castle(king, rook, board, castleType));
        }