facade.cc
Go to the documentation of this file.
00001 #include "osl/annotate/facade.h"
00002 #include "osl/annotate/analyzer.h"
00003 #include "osl/progress/ml/newProgress.h"
00004 #include "osl/eval/ml/openMidEndingEval.h"
00005 #include <boost/ptr_container/ptr_vector.hpp>
00006 #include <boost/foreach.hpp>
00007 
00008 void osl::annotate::
00009 analyze(const NumEffectState& src, const vector<Move>& moves,
00010         int last_move,
00011         AnalysesResult& result)
00012 {
00013   static boost::ptr_vector<Analyzer> analyzers;
00014   static bool initialized = false;
00015   if (! initialized) 
00016   {
00017     analyzers.push_back(new CheckmateAnalyzer);
00018     analyzers.push_back(new CheckmateWin);
00019     analyzers.push_back(new EscapeFromCheck);
00020     analyzers.push_back(new CheckmateForCapture);
00021     analyzers.push_back(new ThreatmateAnalyzer);
00022     analyzers.push_back(new CheckmateForEscape);
00023     analyzers.push_back(new ThreatmateIfMorePieces);
00024     analyzers.push_back(new Vision3);
00025     progress::ml::NewProgress::setUp();
00026     eval::ml::OpenMidEndingEval::setUp();
00027     initialized = true;
00028   }
00029   result = AnalysesResult();
00030   BOOST_FOREACH(Analyzer& a, analyzers)
00031   {
00032     a.match(result, src, moves, last_move);
00033     if (result.checkmate == True)
00034       break;
00035   }
00036 }
00037 
00038 // ;;; Local Variables:
00039 // ;;; mode:c++
00040 // ;;; c-basic-offset:2
00041 // ;;; End:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines