From f84e2978e1f3b01e13d34570c32007040dc186a3 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 28 Mar 2026 06:35:18 +0000 Subject: [PATCH 1/2] Fix strategy descriptions: correct odds rounding and add odds multipliers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix minPassLineMinOdds description: "rounds to nearest $5" → "rounds up to nearest $5" (Math.ceil was always rounding up, not to nearest) - Add free odds multipliers to all strategies that take odds behind pass/come bets: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules - Clarify that passCome68 and passcome2place68 take max odds behind come bets as well (not just the pass line) - Apply same corrections to README.md strategy tables https://claude.ai/code/session_01PbqjbhBGj97oWNo1z6XWdi --- README.md | 18 +++++++++--------- betting.js | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 2098db8..4fc170e 100644 --- a/README.md +++ b/README.md @@ -44,11 +44,11 @@ function myStrategy ({ rules, bets, hand, playerMind }) { ... } |---|---| | `noBetting` | Makes no bets. Useful as a baseline or placeholder. | | `minPassLineOnly` | Pass line bet at `minBet` on each come-out. No odds. | -| `minPassLineMaxOdds` | Pass line at `minBet` + maximum odds behind the line once a point is set. | -| `minPassLineMidOdds` | Pass line at `minBet` + approximately half of maximum odds once a point is set. Odds multiple is `Math.ceil(maxOddsMultiple / 2)`. | -| `minPassLineMinOdds` | Pass line at `minBet` + minimum payable odds once a point is set. Rounds up to nearest $5 for points 6/8, nearest even number for points 5/9, exact `minBet` for points 4/10. | +| `minPassLineMaxOdds` | Pass line at `minBet` + maximum free odds behind the line once a point is set (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules). | +| `minPassLineMidOdds` | Pass line at `minBet` + approximately half of maximum odds once a point is set. Odds multiple is `Math.ceil(maxOddsMultiple / 2)` (2x on 4/10, 2x on 5/9, 3x on 6/8 with default 3-4-5 table rules). | +| `minPassLineMinOdds` | Pass line at `minBet` + minimum payable odds (approximately 1x) once a point is set. Rounds up to nearest $5 for points 6/8, nearest even number for points 5/9, exact `minBet` for points 4/10. | | `placeSixEight` | Place the 6 and 8 at the nearest multiple of $6 ≥ `minBet`. No pass line. Bets come down on a win and are re-placed next turn. | -| `minComeLineMaxOdds` | One come bet at `minBet` with max odds once it travels to a point. | +| `minComeLineMaxOdds` | One come bet at `minBet` with max odds once it travels to a point (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules). | ### variants @@ -62,10 +62,10 @@ function myStrategy ({ rules, bets, hand, playerMind }) { ... } | strategy | description | |---|---| | `minPassLinePlaceSixEight` | Pass line + place 6 and 8 (skips whichever is the point). | -| `minPassLineMaxOddsPlaceSixEight` | Pass line + max odds + place 6 and 8 (skips point). | -| `minPassLineMaxOddsMinComeLineMaxOdds` | Pass line + max odds + one come bet with max odds. | -| `passCome68` | Pass line + max odds + one come bet + place 6/8 (skips numbers covered by pass or come). | -| `passcome2place68` | Pass line + max odds + up to two come bets + place 6/8 (skips covered numbers). | +| `minPassLineMaxOddsPlaceSixEight` | Pass line + max odds + place 6 and 8 (skips point). Max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules. | +| `minPassLineMaxOddsMinComeLineMaxOdds` | Pass line + max odds + one come bet with max odds behind each (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules). | +| `passCome68` | Pass line + max odds + one come bet with max odds + place 6/8 (skips numbers covered by pass or come). Max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules. | +| `passcome2place68` | Pass line + max odds + up to two come bets with max odds + place 6/8 (skips covered numbers). Max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules. | ### stateful strategies @@ -74,7 +74,7 @@ These strategies track state across rolls within a hand via `playerMind`. | strategy | description | |---|---| | `pressPlaceSixEight` | Place 6 and 8. On each win, press the winning number by one $6 unit. Starts at `Math.ceil(minBet/6)*6`. Resets each hand. | -| `fiveCountMinPassLineMaxOddsPlaceSixEight` | Applies the five-count gate before engaging `minPassLineMaxOddsPlaceSixEight`. Waits for a new shooter to establish a point (count 1) then survive four more qualifying rolls (counts 2–5) before any bets are placed. | +| `fiveCountMinPassLineMaxOddsPlaceSixEight` | Applies the five-count gate before engaging `minPassLineMaxOddsPlaceSixEight`. Waits for a new shooter to establish a point (count 1) then survive four more qualifying rolls (counts 2–5) before any bets are placed (max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules). | ## simulate a hand diff --git a/betting.js b/betting.js index 23671c9..6131dd2 100644 --- a/betting.js +++ b/betting.js @@ -336,13 +336,13 @@ lineMaxOdds.title = 'Line Max Odds' lineMaxOdds.description = 'Generic helper: places a line bet and maximum odds behind it once a point is set. Parameterised by betKey (pass or come).' minPassLineMaxOdds.title = 'Min Pass Line + Max Odds' -minPassLineMaxOdds.description = 'Pass line at minBet plus maximum odds behind the line once a point is set.' +minPassLineMaxOdds.description = 'Pass line at minBet plus maximum free odds behind the line once a point is set (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' minPassLineMidOdds.title = 'Min Pass Line + Mid Odds' -minPassLineMidOdds.description = 'Pass line at minBet plus approximately half of maximum odds once a point is set. Odds multiple is Math.ceil(maxOddsMultiple / 2).' +minPassLineMidOdds.description = 'Pass line at minBet plus approximately half of maximum odds once a point is set. Odds multiple is Math.ceil(maxOddsMultiple / 2) (2x on 4/10, 2x on 5/9, 3x on 6/8 with default 3-4-5 table rules).' minPassLineMinOdds.title = 'Min Pass Line + Min Odds' -minPassLineMinOdds.description = 'Pass line at minBet plus minimum payable odds once a point is set. Rounds to nearest $5 for points 6/8, nearest even number for points 5/9, exact minBet for points 4/10.' +minPassLineMinOdds.description = 'Pass line at minBet plus minimum payable odds (approximately 1x) once a point is set. Rounds up to nearest $5 for points 6/8, nearest even number for points 5/9, exact minBet for points 4/10.' placeSixEight.title = 'Place Six and Eight' placeSixEight.description = 'Place the 6 and 8 at the nearest multiple of $6 >= minBet. No pass line. Bets come down on a win and are re-placed next turn.' @@ -357,25 +357,25 @@ minPassLinePlaceSixEight.title = 'Min Pass Line + Place Six and Eight' minPassLinePlaceSixEight.description = 'Pass line plus place 6 and 8, skipping whichever number is the current point.' minPassLineMaxOddsPlaceSixEight.title = 'Min Pass Line + Max Odds + Place Six and Eight' -minPassLineMaxOddsPlaceSixEight.description = 'Pass line plus maximum odds plus place 6 and 8, skipping the current point.' +minPassLineMaxOddsPlaceSixEight.description = 'Pass line plus maximum odds (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules) plus place 6 and 8, skipping the current point.' minPassLineMaxOddsMinComeLineMaxOdds.title = 'Min Pass Line + Max Odds + Min Come Line + Max Odds' -minPassLineMaxOddsMinComeLineMaxOdds.description = 'Pass line plus maximum odds plus one come bet with maximum odds.' +minPassLineMaxOddsMinComeLineMaxOdds.description = 'Pass line plus maximum odds plus one come bet with maximum odds behind each (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' minComeLineMaxOdds.title = 'Min Come Line + Max Odds' -minComeLineMaxOdds.description = 'One come bet at minBet with maximum odds once it travels to a point.' +minComeLineMaxOdds.description = 'One come bet at minBet with maximum odds once it travels to a point (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' passCome68.title = 'Pass + Come + Place Six and Eight' -passCome68.description = 'Pass line plus maximum odds plus one come bet plus place 6 and 8, skipping numbers already covered by pass or come.' +passCome68.description = 'Pass line plus maximum odds plus one come bet with maximum odds plus place 6 and 8, skipping numbers already covered by pass or come (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' passcome2place68.title = 'Pass + Two Come Bets + Place Six and Eight' -passcome2place68.description = 'Pass line plus maximum odds plus up to two come bets plus place 6 and 8, skipping numbers already covered by pass or come.' +passcome2place68.description = 'Pass line plus maximum odds plus up to two come bets with maximum odds plus place 6 and 8, skipping numbers already covered by pass or come (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' pressPlaceSixEight.title = 'Press Place Six and Eight' pressPlaceSixEight.description = 'Place 6 and 8. On each win, press the winning number by one $6 unit. Starts at Math.ceil(minBet/6)*6. State resets each hand.' fiveCountMinPassLineMaxOddsPlaceSixEight.title = 'Five-Count: Min Pass Line + Max Odds + Place Six and Eight' -fiveCountMinPassLineMaxOddsPlaceSixEight.description = 'Applies the five-count gate before engaging minPassLineMaxOddsPlaceSixEight. Waits for a new shooter to establish a point (count 1) then survive four more qualifying rolls (counts 2-5) before any bets are placed.' +fiveCountMinPassLineMaxOddsPlaceSixEight.description = 'Applies the five-count gate before engaging minPassLineMaxOddsPlaceSixEight. Waits for a new shooter to establish a point (count 1) then survive four more qualifying rolls (counts 2-5) before any bets are placed (max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' export { noBetting, From 9a2cdd5f42f4ba723dadae48a6fd1497243a34a5 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 28 Mar 2026 06:44:13 +0000 Subject: [PATCH 2/2] Remove table-specific odds multipliers from strategy descriptions The actual multipliers depend on the table rules config, so descriptions should say "max odds", "mid odds", or "min odds" rather than hardcoding values like 3x/4x/5x. https://claude.ai/code/session_01PbqjbhBGj97oWNo1z6XWdi --- README.md | 18 +++++++++--------- betting.js | 18 +++++++++--------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 4fc170e..cd5060a 100644 --- a/README.md +++ b/README.md @@ -44,11 +44,11 @@ function myStrategy ({ rules, bets, hand, playerMind }) { ... } |---|---| | `noBetting` | Makes no bets. Useful as a baseline or placeholder. | | `minPassLineOnly` | Pass line bet at `minBet` on each come-out. No odds. | -| `minPassLineMaxOdds` | Pass line at `minBet` + maximum free odds behind the line once a point is set (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules). | -| `minPassLineMidOdds` | Pass line at `minBet` + approximately half of maximum odds once a point is set. Odds multiple is `Math.ceil(maxOddsMultiple / 2)` (2x on 4/10, 2x on 5/9, 3x on 6/8 with default 3-4-5 table rules). | -| `minPassLineMinOdds` | Pass line at `minBet` + minimum payable odds (approximately 1x) once a point is set. Rounds up to nearest $5 for points 6/8, nearest even number for points 5/9, exact `minBet` for points 4/10. | +| `minPassLineMaxOdds` | Pass line at `minBet` + max odds behind the line once a point is set. | +| `minPassLineMidOdds` | Pass line at `minBet` + mid odds behind the line once a point is set. Odds multiple is `Math.ceil(maxOddsMultiple / 2)`. | +| `minPassLineMinOdds` | Pass line at `minBet` + min odds behind the line once a point is set. Rounds up to nearest $5 for points 6/8, nearest even number for points 5/9, exact `minBet` for points 4/10. | | `placeSixEight` | Place the 6 and 8 at the nearest multiple of $6 ≥ `minBet`. No pass line. Bets come down on a win and are re-placed next turn. | -| `minComeLineMaxOdds` | One come bet at `minBet` with max odds once it travels to a point (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules). | +| `minComeLineMaxOdds` | One come bet at `minBet` with max odds once it travels to a point. | ### variants @@ -62,10 +62,10 @@ function myStrategy ({ rules, bets, hand, playerMind }) { ... } | strategy | description | |---|---| | `minPassLinePlaceSixEight` | Pass line + place 6 and 8 (skips whichever is the point). | -| `minPassLineMaxOddsPlaceSixEight` | Pass line + max odds + place 6 and 8 (skips point). Max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules. | -| `minPassLineMaxOddsMinComeLineMaxOdds` | Pass line + max odds + one come bet with max odds behind each (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules). | -| `passCome68` | Pass line + max odds + one come bet with max odds + place 6/8 (skips numbers covered by pass or come). Max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules. | -| `passcome2place68` | Pass line + max odds + up to two come bets with max odds + place 6/8 (skips covered numbers). Max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules. | +| `minPassLineMaxOddsPlaceSixEight` | Pass line + max odds + place 6 and 8 (skips point). | +| `minPassLineMaxOddsMinComeLineMaxOdds` | Pass line + max odds + one come bet with max odds behind each. | +| `passCome68` | Pass line + max odds + one come bet with max odds + place 6/8 (skips numbers covered by pass or come). | +| `passcome2place68` | Pass line + max odds + up to two come bets with max odds + place 6/8 (skips covered numbers). | ### stateful strategies @@ -74,7 +74,7 @@ These strategies track state across rolls within a hand via `playerMind`. | strategy | description | |---|---| | `pressPlaceSixEight` | Place 6 and 8. On each win, press the winning number by one $6 unit. Starts at `Math.ceil(minBet/6)*6`. Resets each hand. | -| `fiveCountMinPassLineMaxOddsPlaceSixEight` | Applies the five-count gate before engaging `minPassLineMaxOddsPlaceSixEight`. Waits for a new shooter to establish a point (count 1) then survive four more qualifying rolls (counts 2–5) before any bets are placed (max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules). | +| `fiveCountMinPassLineMaxOddsPlaceSixEight` | Applies the five-count gate before engaging `minPassLineMaxOddsPlaceSixEight`. Waits for a new shooter to establish a point (count 1) then survive four more qualifying rolls (counts 2–5) before any bets are placed. | ## simulate a hand diff --git a/betting.js b/betting.js index 6131dd2..c94ca3d 100644 --- a/betting.js +++ b/betting.js @@ -336,13 +336,13 @@ lineMaxOdds.title = 'Line Max Odds' lineMaxOdds.description = 'Generic helper: places a line bet and maximum odds behind it once a point is set. Parameterised by betKey (pass or come).' minPassLineMaxOdds.title = 'Min Pass Line + Max Odds' -minPassLineMaxOdds.description = 'Pass line at minBet plus maximum free odds behind the line once a point is set (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' +minPassLineMaxOdds.description = 'Pass line at minBet plus max odds behind the line once a point is set.' minPassLineMidOdds.title = 'Min Pass Line + Mid Odds' -minPassLineMidOdds.description = 'Pass line at minBet plus approximately half of maximum odds once a point is set. Odds multiple is Math.ceil(maxOddsMultiple / 2) (2x on 4/10, 2x on 5/9, 3x on 6/8 with default 3-4-5 table rules).' +minPassLineMidOdds.description = 'Pass line at minBet plus mid odds behind the line once a point is set. Odds multiple is Math.ceil(maxOddsMultiple / 2).' minPassLineMinOdds.title = 'Min Pass Line + Min Odds' -minPassLineMinOdds.description = 'Pass line at minBet plus minimum payable odds (approximately 1x) once a point is set. Rounds up to nearest $5 for points 6/8, nearest even number for points 5/9, exact minBet for points 4/10.' +minPassLineMinOdds.description = 'Pass line at minBet plus min odds behind the line once a point is set. Rounds up to nearest $5 for points 6/8, nearest even number for points 5/9, exact minBet for points 4/10.' placeSixEight.title = 'Place Six and Eight' placeSixEight.description = 'Place the 6 and 8 at the nearest multiple of $6 >= minBet. No pass line. Bets come down on a win and are re-placed next turn.' @@ -357,25 +357,25 @@ minPassLinePlaceSixEight.title = 'Min Pass Line + Place Six and Eight' minPassLinePlaceSixEight.description = 'Pass line plus place 6 and 8, skipping whichever number is the current point.' minPassLineMaxOddsPlaceSixEight.title = 'Min Pass Line + Max Odds + Place Six and Eight' -minPassLineMaxOddsPlaceSixEight.description = 'Pass line plus maximum odds (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules) plus place 6 and 8, skipping the current point.' +minPassLineMaxOddsPlaceSixEight.description = 'Pass line plus max odds plus place 6 and 8, skipping the current point.' minPassLineMaxOddsMinComeLineMaxOdds.title = 'Min Pass Line + Max Odds + Min Come Line + Max Odds' -minPassLineMaxOddsMinComeLineMaxOdds.description = 'Pass line plus maximum odds plus one come bet with maximum odds behind each (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' +minPassLineMaxOddsMinComeLineMaxOdds.description = 'Pass line plus max odds plus one come bet with max odds behind each.' minComeLineMaxOdds.title = 'Min Come Line + Max Odds' -minComeLineMaxOdds.description = 'One come bet at minBet with maximum odds once it travels to a point (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' +minComeLineMaxOdds.description = 'One come bet at minBet with max odds once it travels to a point.' passCome68.title = 'Pass + Come + Place Six and Eight' -passCome68.description = 'Pass line plus maximum odds plus one come bet with maximum odds plus place 6 and 8, skipping numbers already covered by pass or come (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' +passCome68.description = 'Pass line plus max odds plus one come bet with max odds plus place 6 and 8, skipping numbers already covered by pass or come.' passcome2place68.title = 'Pass + Two Come Bets + Place Six and Eight' -passcome2place68.description = 'Pass line plus maximum odds plus up to two come bets with maximum odds plus place 6 and 8, skipping numbers already covered by pass or come (3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' +passcome2place68.description = 'Pass line plus max odds plus up to two come bets with max odds plus place 6 and 8, skipping numbers already covered by pass or come.' pressPlaceSixEight.title = 'Press Place Six and Eight' pressPlaceSixEight.description = 'Place 6 and 8. On each win, press the winning number by one $6 unit. Starts at Math.ceil(minBet/6)*6. State resets each hand.' fiveCountMinPassLineMaxOddsPlaceSixEight.title = 'Five-Count: Min Pass Line + Max Odds + Place Six and Eight' -fiveCountMinPassLineMaxOddsPlaceSixEight.description = 'Applies the five-count gate before engaging minPassLineMaxOddsPlaceSixEight. Waits for a new shooter to establish a point (count 1) then survive four more qualifying rolls (counts 2-5) before any bets are placed (max odds: 3x on 4/10, 4x on 5/9, 5x on 6/8 with default 3-4-5 table rules).' +fiveCountMinPassLineMaxOddsPlaceSixEight.description = 'Applies the five-count gate before engaging minPassLineMaxOddsPlaceSixEight. Waits for a new shooter to establish a point (count 1) then survive four more qualifying rolls (counts 2-5) before any bets are placed.' export { noBetting,