aboutsummaryrefslogtreecommitdiff
path: root/internal/casino/blackjack.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/casino/blackjack.go')
-rw-r--r--internal/casino/blackjack.go9
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
}