Ejemplo n.º 1
0
        private static ulong GetPieceValue(PieceOfColor poc, ushort boardIndexOfPiece)
        {
            Debug.Assert(boardIndexOfPiece < 64);
            var kindOfPiece = poc.GetPieceHashValue();
            var pieceOffset = 64 * kindOfPiece + boardIndexOfPiece;

            return(Piece[pieceOffset]);
        }
Ejemplo n.º 2
0
        private static ulong GetPieceValues(Board board)
        {
            ulong acc = 0;

            for (var color = 0; color < 2; color++)
            {
                for (var piece = 0; piece < 6; piece++)
                {
                    var piecePlacement = board.Occupancy[color][piece];
                    if (piecePlacement != 0)
                    {
                        foreach (var index in piecePlacement.GetSetBits())
                        {
                            var poc = new PieceOfColor((Piece)piece, (Color)color);
                            acc ^= GetPieceValue(poc, index);
                        }
                    }
                }
            }

            return(acc);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///     Gets a piece and it's color from a character.
        /// </summary>
        /// <param name="p"></param>
        /// <returns></returns>
        public static PieceOfColor GetPieceOfColor(char p)
        {
            var poc = new PieceOfColor(GetPiece(p), char.IsUpper(p) ? Color.White : Color.Black);

            return(poc);
        }