diff options
Diffstat (limited to 'internal/casino/blackjack.go')
| -rw-r--r-- | internal/casino/blackjack.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/internal/casino/blackjack.go b/internal/casino/blackjack.go index bc038c7..39146f7 100644 --- a/internal/casino/blackjack.go +++ b/internal/casino/blackjack.go @@ -365,12 +365,15 @@ func (t *blackjackTable) splitHand(name string, p *blackjackPlayer, hand *blackj e.Blackjack = t.snapshot(false) events := []Event{e} if left.cards[0].rank == "A" { + // Split aces receive one card each; they only stay live when a + // re-split of aces is allowed and the new card is itself an ace. left.stood = !(t.Rules.AllowsResplitAces() && left.cards[1].rank == "A") right.stood = !(t.Rules.AllowsResplitAces() && right.cards[1].rank == "A") - events = append(events, t.finishHand()...) - } else { - events = append(events, t.prompt()...) } + // Route through finishHand, not a raw prompt: a split draw can already + // total 21 (e.g. K,K splits into A+K), and prompting a complete hand + // offered hit/double on an unplayable 21. + events = append(events, t.finishHand()...) return events } |
