diff --git a/src/BitBoard.cpp b/src/BitBoard.cpp index c2b7708..6d283f4 100644 --- a/src/BitBoard.cpp +++ b/src/BitBoard.cpp @@ -32,53 +32,53 @@ int const BitBoard::getIndex(uint32_t piece) return (int)std::log2(piece); } -void BitBoard::addBlackJumps(std::vector &moves) +void BitBoard::addJumps(std::vector &moves) { uint32_t notOcc = ~(m_whitePieces|m_blackPieces); for (int i = 0; i < 32; ++i) { // grab the specific piece - uint32_t piece = m_blackPieces & 1< BitBoard::generateImmediateJumps(uint32_t piece) +std::vector BitBoard::generateImmediateJumps(uint32_t piece) { - std::vector moves; + std::vector moves; uint32_t notOcc = ~(m_whitePieces|m_blackPieces); uint32_t temp; bool isKing = piece & m_kings; if (m_isBlacksTurn) { temp = (rotl32(piece, 7) & upLeft) & m_whitePieces; if ((rotl32(temp, 7) & upLeft) & notOcc) - addNewMove(piece, rotl32(piece, 14), moves); + moves.push_back(getIndex(rotl32(temp, 7))); temp = (rotl32(piece, 1) & upRight) & m_whitePieces; if ((rotl32(temp, 1) & upRight) & notOcc) - addNewMove(piece, rotl32(piece, 2), moves); + moves.push_back(getIndex(rotl32(temp, 1))); if (isKing) { temp = (rotr32(piece, 7) & downRight) & m_whitePieces; if ((rotr32(temp, 7) & downRight) & notOcc) - addNewMove(piece, rotr32(piece, 14), moves); + moves.push_back(getIndex(rotr32(temp, 7))); temp = (rotr32(piece, 1) & downLeft) & m_whitePieces; if ((rotr32(temp, 1) & downLeft) & notOcc) - addNewMove(piece, rotr32(piece, 2), moves); + moves.push_back(getIndex(rotr32(temp, 1))); } } else { temp = (rotr32(piece, 7) & downRight) & m_blackPieces; if ((rotr32(temp, 7) & downRight) & notOcc) - addNewMove(piece, rotr32(piece, 14), moves); + moves.push_back(getIndex(rotr32(temp, 7))); temp = (rotr32(piece, 1) & downLeft) & m_blackPieces; if ((rotr32(temp, 1) & downLeft) & notOcc) - addNewMove(piece, rotr32(piece, 2), moves); + moves.push_back(getIndex(rotr32(temp, 1))); if (isKing) { temp = (rotl32(piece, 7) & upLeft) & m_blackPieces; if ((rotl32(temp, 7) & upLeft) & notOcc) - addNewMove(piece, rotl32(piece, 14), moves); + moves.push_back(getIndex(rotl32(temp, 7))); temp = (rotl32(piece, 1) & upRight) & m_blackPieces; if ((rotl32(temp, 1) & upRight) & notOcc) - addNewMove(piece, rotl32(piece, 2), moves); + moves.push_back(getIndex(rotl32(temp, 1))); } } return moves;