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