9   for (
int attack=0; attack<3; ++attack) {
 
   10     for (
int defense=0; defense<3; ++defense) {
 
   13           for (
int p=0; p<8; ++p)       
 
   14             push_back(
new AttackKing8(static_cast<Ptype>(s), static_cast<Ptype>(t), 
true, attack, defense));
 
   15           for (
int p=0; p<8; ++p)       
 
   16             push_back(
new AttackKing8(static_cast<Ptype>(s), static_cast<Ptype>(t), 
false, attack, defense));
 
   18         for (
int p=0; p<8; ++p) 
 
   29     = Neighboring8Direct::findNearest(state, move.
ptypeO(), move.
to(), 
 
   30                                       state.kingSquare(
alt(state.turn())));
 
   33   if (! move.
isDrop() && state.hasEffectByPiece(state.pieceOnBoard(move.
from()), position))
 
   35   const Piece p = state.pieceAt(position);
 
   50   const int progress8 = env.
progress.value()/2;
 
   51   return index*8 + progress8;
 
   55   : 
Group(
"DefenseKing8")
 
   57   for (
int danger=0; danger<=4; ++danger) {
 
   59       for (
int p=0; p<8; ++p)   
 
   60         push_back(
new DefenseKing8(static_cast<Ptype>(s), 
true,  danger));
 
   61       for (
int p=0; p<8; ++p)   
 
   62         push_back(
new DefenseKing8(static_cast<Ptype>(s), 
false, danger));
 
   78   const int progress8 = env.
progress.value()/2;
 
   79   return index*8 + progress8;