diff --git a/MEMO.org b/MEMO.org index 1097852..a786070 100644 --- a/MEMO.org +++ b/MEMO.org @@ -16,3 +16,8 @@ bitboard_t first = popbit(bb); square_t sq = square_of(first); } + + Or maybe faster: + for (; bb; bb &= bb - 1) { + sq = _tzcnt_u64(bb); + } diff --git a/src/move.c b/src/move.c index 23e1612..23720d3 100644 --- a/src/move.c +++ b/src/move.c @@ -143,7 +143,7 @@ move_t move_from_str(const char *str) piece_type_t promoted = piece_t_from_char(*(str+4)); if (promoted != NO_PIECE_TYPE) { /* promotion */ - move = move_make_promote(from, to, promoted); + move = move_make_promote(from, to, promoted - 2); } else { move = move_make(from, to); }