4 #include <boost/dynamic_bitset.hpp> 
    5 #include <boost/foreach.hpp> 
   19   if ((bit_position & 0xff) == 0)
 
   20     return Square::STAND();
 
   22     return Square((bit_position >> 4) & 0xf, bit_position & 0xf);
 
   71   for (
int i = 0; i < 40; i++)
 
   73     if(state.usedMask().test(i))
 
   74       pieces.push_back(
OPiece(state.pieceOf(i)));
 
   76   std::sort(pieces.begin(), pieces.end(), 
opiece_sort());
 
   77   player_to_move = state.turn();
 
   87   BOOST_FOREACH(
const OPiece& p, pieces) {
 
   90   state.setTurn(turn());
 
  105   for (
unsigned int i = 0; i < c.
pieces.size(); i++)
 
  116   assert(c.
pieces.size() == 0);
 
  118   for (
unsigned int i = 0; i < 40; i++)
 
  129   const static size_t ninteger = 41;
 
  130   const static size_t integer_size = 32;
 
  131   const static size_t size = ninteger*integer_size;
 
  133   std::stringstream ss;
 
  137   ss.seekg(0, std::ios::beg);
 
  139   boost::dynamic_bitset<> bits(size);
 
  141   for (
size_t i = 0; i < ninteger; ++i)
 
  143     const unsigned int tmp = 
static_cast<unsigned int>(
readInt(ss));
 
  144     const boost::dynamic_bitset<> mask(size, static_cast<unsigned long>(tmp));
 
  145     bits = (bits << integer_size) | mask;
 
  155   std::stringstream ss;
 
  156   assert(bits.size()%32 == 0);
 
  157   const boost::dynamic_bitset<> mask(bits.size(), 4294967295ul);
 
  158   for (
size_t i=0; i<bits.size()/32; ++i)
 
  160     const unsigned long tmp = ((bits >> ((bits.size()/32-1-i)*32)) & mask).to_ulong();
 
  161     writeInt(ss, static_cast<int>(tmp));
 
  165   ss.seekg(0, std::ios::beg);