void GoBookCommands::CmdMoves(GtpCommand& cmd) { cmd.CheckArgNone(); vector<SgPoint> active = m_book.LookupAllMoves(m_bd); for (vector<SgPoint>::const_iterator it = active.begin(); it != active.end(); ++it) cmd << SgWritePoint(*it) << ' '; }
/** Return the process ID. */ void SgGtpCommands::CmdPid(GtpCommand& cmd) { #if WIN32 throw GtpFailure("command not implemented on Windows"); #else cmd.CheckArgNone(); cmd << getpid(); #endif }
/** Return dame points after running static safety algorithm. */ void GoSafetyCommands::CmdDameStatic(GtpCommand& cmd) { cmd.CheckArgNone(); GoModBoard modBoard(m_bd); GoBoard& bd = modBoard.Board(); GoRegionBoard regionAttachment(bd); GoSafetySolver solver(bd, ®ionAttachment); SgBWSet safe; solver.FindSafePoints(&safe); SgPointSet dame = GoSafetyUtil::FindDamePoints(bd, m_bd.AllEmpty(), safe); cmd << SgWritePointSet(dame, "", false); }
void GoBookCommands::CmdSave(GtpCommand& cmd) { if (m_engine.MpiSynchronizer()->IsRootProcess()) { cmd.CheckArgNone(); if (m_fileName == "") throw GtpFailure("no filename associated with current book"); ofstream out(m_fileName.c_str()); m_book.Write(out); if (! out) { throw GtpFailure() << "error writing to file '" << m_fileName << "'"; } } }
/** Show book information for current positions. This command is compatible with the GoGui analyze command type "gfx". Moves in the book for the current position are marked with a green color (active moves), moves that lead to a known position in the book with yellow (other moves). The status line shows the line number of the position in the file (0, if unknown) and the number of active and other moves. */ void GoBookCommands::CmdPosition(GtpCommand& cmd) { cmd.CheckArgNone(); PositionInfo(cmd); }
/** Show information about current book. */ void GoBookCommands::CmdInfo(GtpCommand& cmd) { cmd.CheckArgNone(); cmd << SgWriteLabel("FileName") << m_fileName << '\n'; m_book.WriteInfo(cmd); }
void GoBookCommands::CmdClear(GtpCommand& cmd) { cmd.CheckArgNone(); m_book.Clear(); }
/** Return the current random seed. See SgRandom::SetSeed(int) for the special meaning of zero and negative values. */ void SgGtpCommands::CmdGetRandomSeed(GtpCommand& cmd) { cmd.CheckArgNone(); cmd << SgRandom::Seed(); }
/** Return the process ID. */ void SgGtpCommands::CmdPid(GtpCommand& cmd) { cmd.CheckArgNone(); cmd << getpid(); }