Matchup.showdown constructor
Matchup.showdown({
- required List<
CardPair> playerCardPairs, - required ImmutableCardSet communityCards,
Creates a Matchup by evaluating a situation.
Normally you don't need to call this constructor.
Implementation
factory Matchup.showdown({
required List<CardPair> playerCardPairs,
required ImmutableCardSet communityCards,
}) {
assert(playerCardPairs.isNotEmpty);
assert(communityCards.length == 5);
final hands = <MadeHand>[];
final wonPlayerIndexes = <int>{};
int maxPower = -1;
for (int i = 0; i < playerCardPairs.length; ++i) {
final madeHand = MadeHand.best(
playerCardPairs[i].addedAll(communityCards),
);
hands.add(madeHand);
if (madeHand.power >= maxPower) {
if (madeHand.power > maxPower) {
wonPlayerIndexes.clear();
maxPower = madeHand.power;
}
wonPlayerIndexes.add(i);
}
}
return Matchup._(
communityCards: communityCards,
playerCardPairs: playerCardPairs,
hands: hands,
wonPlayerIndexes: wonPlayerIndexes,
);
}