感受的问题
轮盘赌布局是一张地图。筹码在上面的位置决定了它覆盖的范围:在一个数字上、跨越两个数字之间的线、四个数字的角上、一列的末端。真人荷官可以读懂这张地图;但结算引擎必须对其进行编码,而最明显的编码方法——一个位置和每个位置接触的数字的表格——正是那种容易出现细微错误且难以检查的数据。一个列出错误第四个数字的角位支付方式就会永远错误,直到有人发现才会被注意到。
这里的引擎完全避免了地图。一个下注不是一个位置;它是一个字符串,自我描述其种类和数字。界面在你点击布局时生成字符串,从那时起布局就无关紧要了。结算代码永远不会询问筹码在哪里。它只问字符串说了什么。
密钥
| 密钥 | 下注 | 覆盖的数字 | 支付 | 覆盖 × 支付 |
|---|---|---|---|---|
| n:17 | 单注 | 1 | ×36 | 36 |
| sp:16-17 | 分注 | 2 | ×18 | 36 |
| st:16-17-18 | Street | 3 | ×12 | 36 |
| co:16-17-19-20 | Corner | 4 | ×9 | 36 |
| f4:0-1-2-3 | First four | 4 | ×9 | 36 |
| sl:16-…-21 | Six line | 6 | ×6 | 36 |
| dz:1 | 2 | 3 | 打闲家 | 12 | ×3 | 36 |
| col:1 | 2 | 3 | 列 | 12 | ×3 | 36 |
| ev:红 | 黑 | 奇 | 偶 | 小 | 大 | 偶数机会 | 18 | ×2 | 36 |
总回报倍数: ×36 表示下注金额加上35倍的利润。第c列是与c模3同余的数字,第3列包含3的倍数。最后一列对每一行都相同,这就是关键所在。
ENGINE-VERIFIEDroulette/derive.ts header: bet keys “n:17 straight ×36 · sp:16-17 split ×18 · st:16-17-18 street ×12 · co:16-17-19-20 corner ×9 · sl:16-…-21 six line ×6 · f4:0-1-2-3 first four ×9 · dz:1|2|3 dozen ×3 · col:1|2|3 column ×3 (col c = numbers ≡ c mod 3, col 3 ≡ 0) · ev:red|black|odd|even|low|high even chances ×2”; “Multipliers are total-return (stake included), matching standard European payouts … Single zero — house edge 2.7%.” rouletteMultOf(key) switches on the prefix before the colon and returns those multiples; rouletteNumbersOf(key) expands the key to its pocket list.
);16}-17 split ×18 · st:16-17-18 street ×12 · co:16-17-19-20 corner ×9 · sl:16-…-21 six line ×6 · f4:0-1-2-3 first four ×9 · dz:1|2|3 dozen ×3 · col:1|2|3 column ×3 (col c = numbers ≡ c mod 3, col 3 ≡ 0) · ev:red|black|odd|even|low|high even chances ×2
拆分然后逐行处理:展开键以获得其口袋,检查旋转的口袋是否在其中,如果是,则将下注乘以该类型的倍数。因为口袋来自该轮哈希的单个游标,一次旋转在同一轮中结算表上的每个键,演示引擎的注释就是这样说的:一次掷骰子结算整个投注表,轮盘赌风格。
一个描述其自身投注的字符串也可以描述一个不存在的投注:两个不相邻的数字的拆分,有五个条目的角,或40上的直线。该界面永远不会产生这些,但一个处理资金的引擎不应该信任一个界面。因此,每个键在定价前都要进行验证:其类型必须已知,其数字列表必须完全是该类型覆盖的大小,每个数字必须在0到36之间,且不能重复。不符合条件的键会被拒绝,而不是结算。
ENGINE-VERIFIEDroulette/derive.ts rouletteKeyValid: “a key is legal iff it decodes to the right cover size for its kind and its numbers are on the table — the UI only produces legal keys, this is the belt”; the size table is { n: 1, sp: 2, st: 3, co: 4, sl: 6, f4: 4, dz: 12, col: 12 } with even chances required to cover exactly 18, and every number must be an integer in 0…36 with no duplicates.
:
; Ý
: YYYYYYY Ø YYYYYY = ,
- There is no good bet and no bad bet on this wheel. Straight, split, dozen and red are the same price in different volatilities, exactly as Sic Bo’s boxes are not.
- The first four is an ordinary bet here. On American layouts the five-number basket pays ×7 on 5 pockets out of 38, a worse price than everything else; f4 pays ×9 on 4 of 37, which multiplies out to 36 like the rest.
- The edge is the zero. Thirty-six pockets’ worth of payout on thirty-seven pockets; the missing pocket is the whole house edge, and there is one of it.
: ZZZ Ú ZZZZ =
: ZZZ Ù ZZZ = [}}
: ZZZ Ø ZZZZZ = .
: ZZZ Ù ZZZZ = .
: ZZZZZ Ú ZZZ = .
ZZZZZZ Ù ZZZ = .
ZZZZ Ú ZZ .
: ZZZZZZZ ZZZZZ 0…36 Ù Z.
ZZZZ .
ZZZZ ZZZZ ZZZZZZZZZ .
ZZZZZZZZZZZ ZZZZZZZZ
: ZZZZZZZZZZZ .
ZZZZZZZZZ ZZZZZZZZZZZZ .
- Betkyo engine source: roulette/derive.ts (bet keys, rouletteNumbersOf, rouletteMultOf, rouletteKeyValid, ROULETTE_ORDER, ROULETTE_RED), _shared/demoLocal.ts (roulette settlement)
本文中的游戏