template<typename T> PolyglotBook& PolyglotBook::operator>>(T& n) {
n = 0;
- for (size_t i = 0; i < sizeof(T); i++)
+ for (size_t i = 0; i < sizeof(T); ++i)
n = T((n << 8) + ifstream::get());
return *this;
// Choose book move according to its score. If a move has a very
// high score it has higher probability to be choosen than a move
// with lower score. Note that first entry is always chosen.
- if ( (sum && rkiss.rand<unsigned>() % sum < e.count)
+ if ( (!pickBest && sum && rkiss.rand<unsigned>() % sum < e.count)
|| (pickBest && e.count == best))
move = Move(e.move);
}
move = make<PROMOTION>(from_sq(move), to_sq(move), PieceType(pt + 1));
// Add 'special move' flags and verify it is legal
- for (MoveList<LEGAL> ml(pos); !ml.end(); ++ml)
- if (move == (ml.move() ^ type_of(ml.move())))
- return ml.move();
+ for (MoveList<LEGAL> it(pos); *it; ++it)
+ if (move == (*it ^ type_of(*it)))
+ return *it;
return MOVE_NONE;
}