unsigned MoveArray::num_moves(const ColorType side) const { if (side == White) return num_moves() ? num_moves()/2 + 1 : 0; else return num_moves() ? (num_moves()-1)/2 : 0; }
const Move &MoveArray::move( unsigned n ) const { ASSERT(n<num_moves()); const MoveRecord &entry = (*this)[n]; return entry.move(); }