00001 /* proofPieces.cc 00002 */ 00003 #include "osl/checkmate/proofPieces.h" 00004 #include "osl/checkmate/checkMoveList.h" 00005 #include "osl/checkmate/checkHashRecord.h" 00006 00007 const osl::PieceStand osl::checkmate:: 00008 ProofPieces::defense(const CheckMoveList& moves, const NumEffectState& state, 00009 PieceStand max) 00010 { 00011 CheckMoveList::const_iterator p=moves.begin(); 00012 assert(p != moves.end()); 00013 assert(p->record); 00014 PieceStand result = p->record->proofPieces(); 00015 ++p; 00016 for (; p!=moves.end(); ++p) 00017 { 00018 assert(p->record); 00019 result = result.max(p->record->proofPieces()); 00020 } 00021 const Player defender = state.getTurn(); 00022 if (! effect_util::UnblockableCheck::isMember(defender, state)) 00023 ProofPiecesUtil::addMonopolizedPieces(state, alt(defender), max, 00024 result); 00025 return result; 00026 } 00027 00028 /* ------------------------------------------------------------------------- */ 00029 // ;;; Local Variables: 00030 // ;;; mode:c++ 00031 // ;;; c-basic-offset:2 00032 // ;;; End: