This app evaluates every legal 2-card discard from a 6-card hand and ranks choices by expected value (EV).
For each hand, there are 15 possible discards. For each discard, the app keeps the remaining 4-card hand and evaluates that choice.
For each keep/discard choice, the app scores the retained hand against all 46 legal cut cards and averages the result.
Crib contribution comes from a precomputed toss table built by simulation. For each possible 2-card discard pair, we repeatedly deal opponent toss cards and a cut card, score the resulting crib, and average the score.
Example table entry: AD-AH: {"ev_my_crib": 5.448, "ev_opp_crib": 5.448}
View the current data file: crib_toss_table.json.
The app also uses an opponent-discard profile (`opponent_stats.json`) derived from repeated simulated hands. Those counts are converted into weighted probabilities for likely opponent rank-pair tosses.
Your submitted discard is ranked against all 15 options. The app reports your rank and EV gap from the best play.
When Hard Mode is enabled on Trainer, new deals are sampled from mistakes.json so practice focuses
on previously missed hands.
The discard-table workflow is informed by Liam Brown's cribbage resources: https://cliambrown.com/cribbage/.