aboutsummaryrefslogtreecommitdiff
path: root/internal/game/render_casino_help.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/game/render_casino_help.go')
-rw-r--r--internal/game/render_casino_help.go88
1 files changed, 0 insertions, 88 deletions
diff --git a/internal/game/render_casino_help.go b/internal/game/render_casino_help.go
deleted file mode 100644
index 248a6dd..0000000
--- a/internal/game/render_casino_help.go
+++ /dev/null
@@ -1,88 +0,0 @@
-package game
-
-import (
- "fmt"
- "strings"
-
- "thehouseoficarus/internal/casino"
- "thehouseoficarus/internal/net"
- "thehouseoficarus/internal/ui"
-)
-
-// casinoBetTable uses the shared ANSI-aware table renderer, rather than
-// letting the session wrap a long, pipe-separated payout paragraph.
-func (g *Game) casinoBetTable(sess *net.Session, title string, columns []string, rows [][]string) string {
- t := ui.Table{Title: g.colorize(sess, "casino_action", title)}
- for _, col := range columns {
- t.Columns = append(t.Columns, g.colorize(sess, "casino_action", col))
- }
- for _, row := range rows {
- cells := append([]string(nil), row...)
- for i, cell := range cells {
- category := "casino_action"
- if i == 0 {
- category = "command"
- }
- if i == len(cells)-1 {
- category = "casino_payout"
- }
- cells[i] = g.colorize(sess, category, cell)
- }
- t.Rows = append(t.Rows, cells)
- }
- unicode, width := true, 78
- if p := sess.Player; p != nil {
- unicode = p.OptionBool("unicode")
- if wrap := p.OptionInt("wrap_width"); wrap > 0 {
- width = min(width, wrap)
- }
- }
- return strings.Join(t.Render(unicode, width), "\n")
-}
-
-// rouletteReminder is shown by the table command, not on ambient boards.
-// Hit chances count equally likely pockets; all ratios are NET profit odds.
-func (g *Game) rouletteReminder(sess *net.Session, cfg casino.TableConfig) string {
- pockets, basketCount, basketOdds := 37, 4, "8:1"
- if cfg.Roulette.DoubleZero {
- pockets, basketCount, basketOdds = 38, 5, "6:1"
- }
- chance := func(n int) string { return fmt.Sprintf("%d/%d", n, pockets) }
- rows := [][]string{
- {"Number", "17 (or 0)", chance(1), "35:1"},
- {"Split", "split 1 2", chance(2), "17:1"},
- {"Street", "street 1 2 3", chance(3), "11:1"},
- {"Trio", "trio 0 1 2", chance(3), "11:1"},
- {"Corner", "corner 1 2 4 5", chance(4), "8:1"},
- {"Six line", "line 1 2 3 4 5 6", chance(6), "5:1"},
- {"Dozen", "1to12/13to24/25to36", chance(12), "2:1"},
- {"Row", "row1/row2/row3", chance(12), "2:1"},
- {"Color", "red / black", chance(18), "1:1"},
- {"Parity", "odd / even", chance(18), "1:1"},
- {"Low / high", "low / high", chance(18), "1:1"},
- {"Basket", "basket", chance(basketCount), basketOdds},
- }
- if cfg.Roulette.DoubleZero {
- rows[0][1] = "17 (or 0, 00)"
- }
- blocks := []string{g.casinoBetTable(sess, "Roulette payouts", []string{"Bet", "Target / example", "Chance", "Profit"}, rows)}
- if cfg.Roulette.Racetrack && !cfg.Roulette.DoubleZero {
- blocks = append(blocks, g.casinoBetTable(sess, "Racetrack payouts", []string{"Target", "Winning pockets", "Chance", "Profit"}, [][]string{
- {"voisins", "0, 2, 3", chance(3), "5:3"},
- {"voisins", "Other covered", chance(14), "1:1"},
- {"tiers", "Any covered", chance(12), "2:1"},
- {"orphelins", "1, 17", chance(2), "31:5"},
- {"orphelins", "Other covered", chance(6), "13:5"},
- {"zero / jeu zero", "26", chance(1), "8:1"},
- {"zero / jeu zero", "Other covered", chance(6), "7:2"},
- {"neighbors <n>", "Any covered", chance(9), "3:1"},
- }))
- blocks = append(blocks, "Profit is on the total stake; each row lists its winning pockets.\nCall bets split your stake; fractional returns round down.\nUse help racetrack for the chip placements.")
- }
- blocks = append(blocks,
- "Profit excludes your returned stake: 1:1 on 10 returns 20.\n"+
- "Low: 1-18; high: 19-36. Zero pockets lose outside bets.\n"+
- "Use bet <amount> on <target>, e.g. bet 10 on split 1 2.\n"+
- "Learn more: help roulette / help casino; table for the felt.")
- return strings.Join(blocks, "\n")
-}