Repository navigation
v0.20.0
Added
Game::deadnow reaches every streetGame::check_deadDisplayforGameaddsDEAD: …whendeadis not empty
Changed
Table::build_gamefillsGame::deadfrom the table's muck
Fixed
- The 0.19.0 entry below named
Game::turn_remainingas API. It is
Full changelog
Added
Game::deadnow reaches every street. In 0.19.0 only the turn used
it. Now the preflop and the flop use it too:Game::street_equitiesremoves dead cards on the preflop, flop and
turn. (The river has no cards left to deal.)FlopEval::with_deadandCaseEvals::from_holdem_at_flop_with_dead
skip every turn-and-river runout that uses a dead card.
FlopEval::try_from(Game)uses them.DealEval::with_deadsends the hands and the dead cards to the equity
engine. It does not use the heads-up chart, because the chart assumes a
full deck. An emptydeadgives the same result asDealEval::new.
Game::check_deadreturnsPKError::DuplicateCardwhen a dead card is
also in a hand or on the board.street_equities,TurnEval::try_from
andFlopEval::try_fromrun it first. This is the same rule as
EquityRequest::dead.with_deaditself does not check, and it replaces
any earlier set. It does not add to it.DisplayforGameaddsDEAD: …whendeadis not empty.
Changed
Table::build_gamefillsGame::deadfrom the table's muck, which
holds the burn cards and every folded hand. SoFlopEval,TurnEvaland
street_equitieson a live table no longer count those cards as live.
Odds from a table after a fold or a burn will differ from 0.19.0. That is
the fix: the 0.19.0 numbers counted cards that cannot be dealt. See
docs/defects/DEFECT_043_dead_cards_reach_only_the_turn.md.
Fixed
- The 0.19.0 entry below named
Game::turn_remainingas API. It is
pub(crate), so it was removed from that entry.
Coverage
| Lines | Functions | Regions |
|---|---|---|
| 92.52% | 90.46% | 92.28% |
Doc tests excluded — --doctests requires nightly, and this repo pins stable.