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; }
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]); }
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()); }
private bool HasNotMoved(EnumBoardSquare piece) { return((piece & EnumBoardSquare.NotMoved) == EnumBoardSquare.NotMoved); }
private bool IsOpponent(EnumBoardSquare me, EnumBoardSquare square2) { return(((me | square2) & (EnumBoardSquare.White | EnumBoardSquare.Black)) == (EnumBoardSquare.White | EnumBoardSquare.Black)); }
private bool IsEmpty(EnumBoardSquare square) { return((square & (EnumBoardSquare.White | EnumBoardSquare.Black)) == EnumBoardSquare.Empty); }
private bool IsOpponentOrEmpty(EnumBoardSquare me, EnumBoardSquare square2) { return((me & square2 & (EnumBoardSquare.White | EnumBoardSquare.Black)) == EnumBoardSquare.Empty); }
public void PlacePiece(int row, int col, EnumBoardSquare piece) { byte index = GetBoardIndex(row, col); _squares[index] = piece; }