summaryrefslogtreecommitdiff
path: root/quacker/macondobackend.cpp
diff options
context:
space:
mode:
authorpommicket <pommicket@gmail.com>2025-08-22 09:57:10 -0400
committerpommicket <pommicket@gmail.com>2025-08-22 09:57:10 -0400
commit4956c4f2f7605dc7332b0e51e77a25fe88caef69 (patch)
treed62fc3982e0eef21d28c089a6ee5b95bbb132b25 /quacker/macondobackend.cpp
parent15fb752e8502f0b5c7e5f579dd3ff0eb8baabf3b (diff)
Macondo max plies options
Diffstat (limited to 'quacker/macondobackend.cpp')
-rw-r--r--quacker/macondobackend.cpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/quacker/macondobackend.cpp b/quacker/macondobackend.cpp
index d123b95..fa3c334 100644
--- a/quacker/macondobackend.cpp
+++ b/quacker/macondobackend.cpp
@@ -118,16 +118,17 @@ bool MacondoBackend::simulate(const MacondoSimulateOptions &options, const Quack
return true;
}
-void MacondoBackend::solveEndgame(const MacondoEndgameOptions &) {
+void MacondoBackend::solveEndgame(const MacondoEndgameOptions &options) {
+ m_endgameOptions = options;
startProcess();
m_command = Command::SolveEndgame;
}
void MacondoBackend::solvePreEndgame(const MacondoPreEndgameOptions &options) {
- startProcess();
- m_command = Command::SolvePreEndgame;
m_preEndgamePlaysToAnalyze = 0;
m_preEndgameOptions = options;
+ startProcess();
+ m_command = Command::SolvePreEndgame;
}
static bool parseInt(const string &s, int &value, size_t *len) {
@@ -473,12 +474,11 @@ void MacondoBackend::timer() {
i += preEndgameProgressMarker.length();
m_processStderr = QByteArray(m_processStderr.constData() + i, m_processStderr.size() - i);
string numPlaysStr(m_processStderr.constData(), std::min(32, m_processStderr.size()));
- int numPlays = 0;
- parseInt(numPlaysStr, numPlays, nullptr);
- std::stringstream message;
- message << "Analyzed " << numPlays << "/" << m_preEndgamePlaysToAnalyze << " plays" << dots;
- emit statusMessage(QString::fromStdString(message.str()));
+ parseInt(numPlaysStr, m_preEndgamePlaysAnalyzed, nullptr);
}
+ std::stringstream message;
+ message << "Analyzed " << m_preEndgamePlaysAnalyzed << "/" << m_preEndgamePlaysToAnalyze << " plays" << dots;
+ emit statusMessage(QString::fromStdString(message.str()));
} else {
// no progress yet
emit statusMessage(QString("Solving pre-endgame") + dots);
@@ -584,6 +584,7 @@ void MacondoBackend::processStarted() {
command << "-only-solve \"" << moveStr << "\" ";
}
}
+ command << "-endgameplies " << m_preEndgameOptions.endgamePlies << " ";
command << "-disable-id true ";
command << "-early-cutoff true ";
command << "\n";
@@ -591,7 +592,13 @@ void MacondoBackend::processStarted() {
}
break;
case Command::SolveEndgame:
- m_process->write("endgame -plies 20\n");
+ {
+ std::stringstream command;
+ command << "endgame ";
+ command << "-plies " << m_endgameOptions.maxPlies << " ";
+ command << "\n";
+ m_process->write(command.str().c_str());
+ }
break;
}
}