package main // BlackjackBot — единственная (без градации уровней) стратегия // бота для Блэкджека: играет по упрощённой базовой стратегии — // берёт карту, пока сумма меньше 17 (как и дилер), и удваивает // ставку на жёсткой сумме 11 из первых двух карт, если хватает // капитала. type BlackjackBot struct{} // DecideAction решает, что делать текущему игроку: "hit", "stand" // или "double". func (BlackjackBot) DecideAction(g *BlackjackGameState) string { p := g.current() total := handTotal(p.Hand) if len(p.Hand) == 2 && total == 11 && p.Balance >= p.Bet { return "double" } if total < 17 { return "hit" } return "stand" } // PlayFullTurn исполняет одно решение бота — используется при // автоматической прокрутке партии. func (b BlackjackBot) PlayFullTurn(g *BlackjackGameState) error { if g.Phase != BJPhasePlayerTurn { return nil } switch b.DecideAction(g) { case "double": return g.DoubleDown() case "hit": return g.Hit() default: return g.Stand() } }