diff --git a/Userland/Games/Hearts/Player.cpp b/Userland/Games/Hearts/Player.cpp index 021d79001f..4e3bd7839f 100644 --- a/Userland/Games/Hearts/Player.cpp +++ b/Userland/Games/Hearts/Player.cpp @@ -6,6 +6,7 @@ #include "Player.h" #include "Helpers.h" +#include #include namespace Hearts { @@ -23,19 +24,28 @@ size_t Player::pick_lead_card(Function valid_play, Function= hearts_card_points(*cwi2.card)) + if (hearts_card_points(*cwi2.card) < hearts_card_points(*cwi1.card)) return true; - if (hearts_card_value(*cwi1.card) >= hearts_card_value(*cwi2.card)) + if (hearts_card_points(*cwi1.card) == hearts_card_points(*cwi2.card) && hearts_card_value(*cwi2.card) < hearts_card_value(*cwi1.card)) return true; return false; }); + if constexpr (HEARTS_DEBUG) { + dbgln("Sorted hand:"); + for (auto& cwi : sorted_hand) + dbgln("{}", *cwi.card); + dbgln("----"); + } + size_t last_index = -1; for (auto& cwi : sorted_hand) { if (!valid_play(*cwi.card)) continue; - if (prefer_card(*cwi.card)) + if (prefer_card(*cwi.card)) { + dbgln_if(HEARTS_DEBUG, "Preferring card {}", *cwi.card); return cwi.index; + } last_index = cwi.index; } return last_index;