diff options
Diffstat (limited to 'Userland')
-rw-r--r-- | Userland/Games/Hearts/Player.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/Userland/Games/Hearts/Player.cpp b/Userland/Games/Hearts/Player.cpp index d304c5c94d..e223b8c865 100644 --- a/Userland/Games/Hearts/Player.cpp +++ b/Userland/Games/Hearts/Player.cpp @@ -73,18 +73,16 @@ size_t Player::pick_lead_card(Function<bool(Card&)> valid_play, Function<bool(Ca Optional<size_t> Player::pick_low_points_high_value_card(Optional<Card::Type> type) { + auto sorted_hand = hand_sorted_by_fn(compare_card_value); int min_points = -1; Optional<size_t> card_index; - for (ssize_t i = hand.size() - 1; i >= 0; i--) { - auto& card = hand[i]; - if (card.is_null()) - continue; - if (type.has_value() && card->type() != type.value()) + for (auto& cwi : sorted_hand) { + if (type.has_value() && cwi.card->type() != type.value()) continue; - auto points = hearts_card_points(*card); + auto points = hearts_card_points(*cwi.card); if (min_points == -1 || points < min_points) { min_points = points; - card_index = i; + card_index = cwi.index; } } VERIFY(card_index.has_value() || type.has_value()); |