00001 //---------------------------------------------------------------------------- 00002 /** @file DfsCommands.hpp 00003 */ 00004 //---------------------------------------------------------------------------- 00005 00006 #ifndef SOLVERCOMMANDS_HPP 00007 #define SOLVERCOMMANDS_HPP 00008 00009 #include "Game.hpp" 00010 #include "HexBoard.hpp" 00011 #include "HexHtpEngine.hpp" 00012 #include "HexEnvironment.hpp" 00013 #include "DfsSolver.hpp" 00014 00015 _BEGIN_BENZENE_NAMESPACE_ 00016 00017 //---------------------------------------------------------------------------- 00018 00019 /** Commands for building/inspecting virtual connections. */ 00020 class DfsCommands 00021 { 00022 public: 00023 DfsCommands(Game& game, HexEnvironment& env, DfsSolver& solver, 00024 boost::scoped_ptr<DfsHashTable>& tt, 00025 boost::scoped_ptr<DfsDB>& db, 00026 DfsStates& positions); 00027 00028 void Register(GtpEngine& engine); 00029 00030 private: 00031 Game& m_game; 00032 00033 HexEnvironment& m_env; 00034 00035 DfsSolver& m_solver; 00036 00037 boost::scoped_ptr<DfsHashTable>& m_tt; 00038 00039 boost::scoped_ptr<DfsDB>& m_db; 00040 00041 DfsStates& m_positions; 00042 00043 void Register(GtpEngine& engine, const std::string& command, 00044 GtpCallback<DfsCommands>::Method method); 00045 00046 void CmdParamSolver(HtpCommand& cmd); 00047 void CmdParamSolverDB(HtpCommand& cmd); 00048 void CmdSolveState(HtpCommand& cmd); 00049 void CmdSolverClearTT(HtpCommand& cmd); 00050 void CmdSolverFindWinning(HtpCommand& cmd); 00051 void CmdDBOpen(HtpCommand& cmd); 00052 void CmdDBClose(HtpCommand& cmd); 00053 void CmdDBStat(HtpCommand& cmd); 00054 void CmdGetState(HtpCommand& cmd); 00055 void CmdGetPV(HtpCommand& cmd); 00056 void CmdHistogram(HtpCommand& cmd); 00057 }; 00058 00059 //---------------------------------------------------------------------------- 00060 00061 _END_BENZENE_NAMESPACE_ 00062 00063 #endif // SOLVERCOMMANDS_HPP