00001
00002
00003 #include "osl/search/threatmateState.h"
00004 #include "osl/record/csa.h"
00005
00006 const osl::CArray<osl::search::ThreatmateState::Status,5*2>
00007 osl::search::ThreatmateState::transition = {{
00008 UNKNOWN, UNKNOWN,
00009 MAY_HAVE_CHECKMATE, CHECK_AFTER_THREATMATE,
00010 MAY_HAVE_CHECKMATE, CHECK_AFTER_THREATMATE,
00011 MAYBE_THREATMATE, UNKNOWN,
00012 UNKNOWN, UNKNOWN,
00013 }};
00014
00015 std::ostream& osl::search::operator<<(std::ostream& os, ThreatmateState s)
00016 {
00017 switch (s.status())
00018 {
00019 case ThreatmateState::THREATMATE:
00020 return os << "THREATMATE " << record::csa::show(s.threatmateMove());
00021 case ThreatmateState::MAYBE_THREATMATE:
00022 return os << "maybe threatmate";
00023 case ThreatmateState::MAY_HAVE_CHECKMATE:
00024 return os << "may have checkmate";
00025 case ThreatmateState::CHECK_AFTER_THREATMATE:
00026 return os << "check after threatmate";
00027 default:
00028 return os << "unkown";
00029 }
00030 }
00031
00032
00033
00034
00035
00036