diff options
author | pommicket <pommicket@gmail.com> | 2025-08-18 11:25:22 -0400 |
---|---|---|
committer | pommicket <pommicket@gmail.com> | 2025-08-18 11:25:22 -0400 |
commit | 831b26ed75321093ffd0c844f6a951d1ae5918c6 (patch) | |
tree | dcbc9ff98f716a1c0baf9712a2554f9f28f395dd /quacker | |
parent | 0652c48658802259959ea636111f10e5ca5ad7d9 (diff) |
Stop process when solve returns moves
Diffstat (limited to 'quacker')
-rw-r--r-- | quacker/macondo.cpp | 3 | ||||
-rw-r--r-- | quacker/macondo.h | 1 | ||||
-rw-r--r-- | quacker/quacker.cpp | 5 |
3 files changed, 8 insertions, 1 deletions
diff --git a/quacker/macondo.cpp b/quacker/macondo.cpp index a6d5d9d..ef7372b 100644 --- a/quacker/macondo.cpp +++ b/quacker/macondo.cpp @@ -92,8 +92,9 @@ bool Macondo::useForSimulation() const { void Macondo::gotMoves(const Quackle::MoveList &moves) { m_moves = moves; m_anyUpdates = true; - if (moves.size() == 1) + if (m_isSolving && moves.size() > 0) { emit setCandidateMove(&moves[0]); + } } void Macondo::positionChanged(const Quackle::GamePosition *position) { diff --git a/quacker/macondo.h b/quacker/macondo.h index a95a5a7..ede3487 100644 --- a/quacker/macondo.h +++ b/quacker/macondo.h @@ -28,6 +28,7 @@ public: return any; } bool isRunning() const; + bool isSolving() const { return m_isSolving; } signals: void runningSolver(); void stoppedSolver(); diff --git a/quacker/quacker.cpp b/quacker/quacker.cpp index d3945ac..cf1b4c7 100644 --- a/quacker/quacker.cpp +++ b/quacker/quacker.cpp @@ -1271,6 +1271,11 @@ void TopLevel::incrementSimulation() if (m_macondo->anyUpdates()) { updateMoveViews(); updateSimViews(); + if (m_macondo->isSolving()) { + // stop after solver gives us moves + simulate(false); + return; + } } // check again in 100ms m_simulationTimer->start(100); |