diff options
Diffstat (limited to 'internal/casino/craps_wagers.go')
| -rw-r--r-- | internal/casino/craps_wagers.go | 64 |
1 files changed, 34 insertions, 30 deletions
diff --git a/internal/casino/craps_wagers.go b/internal/casino/craps_wagers.go index 1c6da2f..a36f43d 100644 --- a/internal/casino/craps_wagers.go +++ b/internal/casino/craps_wagers.go @@ -12,6 +12,7 @@ import ( func (t *crapsTable) wagerRows(name string) []WagerRow { c := t.Config.Craps rows := []WagerRow{} + passWin := "Come out: 7/11 wins, 2/3/12 loses / Point on: Roll the point to win." switch c.variant() { case "simplified": // One automatic roll of two dice; pass is the only target. @@ -28,14 +29,12 @@ func (t *crapsTable) wagerRows(name string) []WagerRow { ) case "new_york": rows = append(rows, - WagerRow{"pass", "1:1", "7/11 win, 2/3/12 lose; opposite bars 12"}, - WagerRow{"dontpass", "1:1", "Opposite side; come-out 12 pushes"}, + WagerRow{"pass", "1:1", passWin}, + WagerRow{"dontpass", "1:1", "Opposite of Pass Line"}, ) if t.point != 0 { - rows = append(rows, crapsOddsRows(c)...) - rows = append(rows, - WagerRow{"buy / lay <n>", "true", "4/5/6/8/9/10; 5% win commission"}, - ) + rows = append(rows, crapsOddsRows()...) + rows = append(rows, crapsBuyLayRows()...) } case "crapless": rows = append(rows, @@ -45,31 +44,31 @@ func (t *crapsTable) wagerRows(name string) []WagerRow { rows = append(rows, WagerRow{"come", "1:1", "A personal point with pass rules"}, ) - rows = append(rows, crapsOddsRows(c)...) + rows = append(rows, crapsOddsRows()...) rows = append(rows, crapsPlaceRows(c)...) + rows = append(rows, crapsBuyLayRows()...) rows = append(rows, - WagerRow{"buy / lay <n>", "true", "Place at true odds; 5% win commission"}, - WagerRow{"hard 4/10", "7:1", "Point arrives as an identical pair"}, - WagerRow{"hard 6/8", "9:1", "Point arrives as an identical pair"}, + WagerRow{"hard 4/10", "7:1", "Roll this pair before next 7"}, + WagerRow{"hard 6/8", "9:1", "Roll this pair before next 7"}, ) } rows = append(rows, crapsPropRows(c, false)...) default: // bank and diceless rows = append(rows, - WagerRow{"pass", "1:1", "7/11 win, 2/3/12 lose; opposite bars 12"}, - WagerRow{"dontpass", "1:1", "Opposite side; come-out 12 pushes"}, + WagerRow{"pass", "1:1", passWin}, + WagerRow{"dontpass", "1:1", "Opposite of Pass Line"}, ) if t.point != 0 { rows = append(rows, - WagerRow{"come", "1:1", "A personal point with pass rules"}, - WagerRow{"dontcome", "1:1", "Don't come; a 12 pushes"}, + WagerRow{"come", "1:1", passWin}, + WagerRow{"dontcome", "1:1", "Opposite of Come"}, ) - rows = append(rows, crapsOddsRows(c)...) + rows = append(rows, crapsOddsRows()...) rows = append(rows, crapsPlaceRows(c)...) + rows = append(rows, crapsBuyLayRows()...) rows = append(rows, - WagerRow{"buy / lay <n>", "true", "Place at true odds; 5% win commission"}, - WagerRow{"hard 4/10", "7:1", "Point arrives as an identical pair"}, - WagerRow{"hard 6/8", "9:1", "Point arrives as an identical pair"}, + WagerRow{"hard 4/10", "7:1", "Roll this pair before next 7"}, + WagerRow{"hard 6/8", "9:1", "Roll this pair before next 7"}, ) } rows = append(rows, crapsPropRows(c, !t.rolled)...) @@ -77,17 +76,26 @@ func (t *crapsTable) wagerRows(name string) []WagerRow { return rows } +// crapsBuyLayRows splits the commission bets so each side carries its own +// win condition and the 5% vig applies only to the winning wager. +func crapsBuyLayRows() []WagerRow { + return []WagerRow{ + {"buy <n>", "true", "This number rolled before 7; 5% commission on wins"}, + {"lay <n>", "true", "7 rolled before this number; 5% commission on wins"}, + } +} + // crapsPropRows is the one-roll section of the list: field, the proposition // bets and (when bonuses are allowed and still open) the Fire and ATS bets. func crapsPropRows(c CrapsConfig, bonuses bool) []WagerRow { rows := []WagerRow{ - {"field", fmt.Sprintf("12 pays %d:1", c.Field12), "2 pays 2:1; 3/4/9/10/11 1:1; 5-8 lose"}, + {"field", "1:1", "Next roll is 2-4 or 9-12"}, {"seven", "4:1", "Next roll totals 7"}, {"craps", "7:1", "Next roll is 2, 3 or 12"}, {"eleven / ace-deuce", "15:1", "Next roll totals 11 / 3"}, {"aces / boxcars", "30:1", "Next roll is 2 / 12"}, {"horn", "27:4", "Splits the stake over 2/3/11/12"}, - {"hop <a> <b>", "15:1/30:1", "One-roll dice combination"}, + {"hop <a> <b>", "15:1/30:1", "Next roll is a/b"}, } if bonuses { rows = append(rows, @@ -130,21 +138,17 @@ func crapsPlaceRows(c CrapsConfig) []WagerRow { for i, n := range g.nums { names[i] = fmt.Sprint(n) } - rows = append(rows, WagerRow{"place " + strings.Join(names, "/"), g.odds, "Repeats before a 7"}) + rows = append(rows, WagerRow{"place " + strings.Join(names, "/"), g.odds, "This number rolled before 7"}) } return rows } -// crapsOddsRows describes the free-odds wagers with this table's odds cap. -// Pass and come odds are one group and don't odds another; the list column -// says simply "true" to keep the payout column narrow. -func crapsOddsRows(c CrapsConfig) []WagerRow { - limit := "3-4-5x" - if c.Odds > 0 { - limit = fmt.Sprintf("%dx", c.Odds) - } +// crapsOddsRows describes the free-odds wagers. Pass and come odds are one +// group and don't odds another; the list column says simply "true" to keep +// the payout column narrow. +func crapsOddsRows() []WagerRow { return []WagerRow{ - {"odds pass / come", "true", "Free odds behind the point, up to " + limit}, + {"odds pass / come", "true", "Free odds behind the point"}, {"odds dont <n>", "true", "Laid against the point at inverse odds"}, } } |
