summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
Diffstat (limited to 'Userland')
-rw-r--r--Userland/Games/Hearts/Player.cpp12
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());