Beispiel #1
0
vector<Equity> Evaluator::evalHoldemRanges(const vector<Range>& ranges,
                                           const CardSet& board,
                                           const CardSet& dead) {
  int numPlayers = ranges.size();

  vector<Equity> equities(numPlayers);
  if (board.id() & dead.id()) {
    return equities;
  }

  size_t usedIds = board.id() | dead.id();

  int handRank = Card::MAX_ID + 1;
  for (const auto& card : board.ToCards()) {
    handRank = handRanks[handRank + card.id()];
  }

  evalHoldemRangesHelper(equities, board.ToCards().size(), 1, handRank, usedIds,
                         ranges);

  return equities;
}