From e636ed43ebad685fc67f510b6c492418c0a572dd Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Mon, 24 May 2021 17:27:26 +0200 Subject: [PATCH] Hearts: Let the AI continuously play games When there are no human players (toggled with Shift-F10) the AI will continuously start new games when the current game has finished. --- Userland/Games/Hearts/Game.cpp | 14 +++++++++++++- Userland/Games/Hearts/Game.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/Userland/Games/Hearts/Game.cpp b/Userland/Games/Hearts/Game.cpp index efc550ff03..10554b9034 100644 --- a/Userland/Games/Hearts/Game.cpp +++ b/Userland/Games/Hearts/Game.cpp @@ -337,11 +337,23 @@ void Game::continue_game_after_delay(int interval_ms) void Game::advance_game() { - if (game_ended()) { + if (m_state == State::Play && game_ended()) { + m_state = State::GameEndedWaiting; on_status_change("Game ended."); + continue_game_after_delay(2000); return; } + if (m_state == State::GameEndedWaiting) { + m_state = State::GameEnded; + if (!m_players[0].is_human) + setup(move(m_players[0].name)); + return; + } + + if (m_state == State::GameEnded) + return; + if (m_state == State::PassingSelect) { if (!m_players[0].is_human) { select_cards_for_passing(); diff --git a/Userland/Games/Hearts/Game.h b/Userland/Games/Hearts/Game.h index 20e8385200..0447c656b0 100644 --- a/Userland/Games/Hearts/Game.h +++ b/Userland/Games/Hearts/Game.h @@ -77,6 +77,8 @@ private: PassingSelectConfirmed, PassingAccept, Play, + GameEndedWaiting, + GameEnded, }; State m_state { State::PassingSelect };