Ejemplo n.º 1
0
 public Move(EnumBoardSquare pieceMoved, EnumBoardSquare pieceCaptured, byte fromIndex, byte toIndex, byte fromIndex2, byte toIndex2, float scoreChange)
 {
     PieceMoved    = pieceMoved;
     PieceCaptured = pieceCaptured;
     FromIndex     = fromIndex;
     ToIndex       = toIndex;
     FromIndex2    = fromIndex2;
     ToIndex2      = toIndex2;
     ScoreChange   = scoreChange;
 }
Ejemplo n.º 2
0
        private float GetValueChange(byte from, byte to, EnumBoardSquare newPiece)
        {
            var fromType     = (int)_squares[from];
            var newPieceType = (int)newPiece;
            var toType       = (int)_squares[to];

            return(_scoreLookup.PieceSquareValue[newPieceType][to]
                   - _scoreLookup.PieceSquareValue[fromType][from]
                   - _scoreLookup.PieceSquareValue[toType][to]);
        }
Ejemplo n.º 3
0
        public Move[] GetMovesForPlayer(EnumBoardSquare player)
        {
            var moves = new List <Move>();

            for (byte i = 0; i < Size; i++)
            {
                if ((_squares[i] & player) == player)
                {
                    GetMovesFromSquare(i, moves);
                }
            }

            return(moves.ToArray());
        }
Ejemplo n.º 4
0
 private bool HasNotMoved(EnumBoardSquare piece)
 {
     return((piece & EnumBoardSquare.NotMoved) == EnumBoardSquare.NotMoved);
 }
Ejemplo n.º 5
0
 private bool IsOpponent(EnumBoardSquare me, EnumBoardSquare square2)
 {
     return(((me | square2) & (EnumBoardSquare.White | EnumBoardSquare.Black)) == (EnumBoardSquare.White | EnumBoardSquare.Black));
 }
Ejemplo n.º 6
0
 private bool IsEmpty(EnumBoardSquare square)
 {
     return((square & (EnumBoardSquare.White | EnumBoardSquare.Black)) == EnumBoardSquare.Empty);
 }
Ejemplo n.º 7
0
 private bool IsOpponentOrEmpty(EnumBoardSquare me, EnumBoardSquare square2)
 {
     return((me & square2 & (EnumBoardSquare.White | EnumBoardSquare.Black)) == EnumBoardSquare.Empty);
 }
Ejemplo n.º 8
0
        public void PlacePiece(int row, int col, EnumBoardSquare piece)
        {
            byte index = GetBoardIndex(row, col);

            _squares[index] = piece;
        }