From f07221b4e1d8aa464a44fe566884ccc0565406e9 Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 1 Nov 2026 16:17:19 +0100 Subject: v3.2.0: straight and split bets anywhere on the felt; add history command --- docs/GAMES.md | 19 ++++++++++++++++--- docs/TESTING.md | 17 ++++++++++++++--- 2 files changed, 30 insertions(+), 6 deletions(-) (limited to 'docs') diff --git a/docs/GAMES.md b/docs/GAMES.md index 8cc668f..bd372b1 100644 --- a/docs/GAMES.md +++ b/docs/GAMES.md @@ -80,9 +80,11 @@ Q forfeit an active hand (bet is lost), or leave when no hand is active - European wheel: 0-36, one green zero. - The felt is drawn in full and bet with a cursor. Over the numbers the cursor - sits on a *lattice point*, the way a chip sits between numbers on a real - felt: an inner point covers four numbers (corner), an edge point covers two - (split), and an outer corner is a straight. + walks a grid twice as fine as the felt: on a cell it is a straight, on the + line between two cells it is a split, and on a crossing it is a corner. Every + number and every pair of adjacent numbers is reachable, as on a real felt. +- The status line names the current bet and its odds, for example + `Bet: 16/17 ยท pays 18x`. - Bet types and returns (per unit staked, stake included): | Bet | Covers | Return | @@ -202,6 +204,17 @@ ROULETTE_RESULT +``` + +`count` defaults to 20 and is capped at 50. Each record carries `game`, `bet`, +`winnings`, `balance_after`, `at` (UTC) and the game's own `details` object, +newest first. `HISTORY` without a session returns `ERROR Not logged in`. + Blackjack is a multi-step session: ``` diff --git a/docs/TESTING.md b/docs/TESTING.md index c68b6c4..ac07a3f 100644 --- a/docs/TESTING.md +++ b/docs/TESTING.md @@ -40,7 +40,7 @@ or a vendored OpenSSL. | `tests/blackjack.rs` | Card totals, naturals, hit/stand/double, dealer bust, S17, state parsing. | | `tests/crash.rs` | Multiplier curve, payout floor, crash-point distribution, house edge, cap. | | `tests/protocol.rs` | Newline buffering and timeout/error classification. | -| `tests/roulette.rs` | Wheel, every bet type and payout, zero handling, cursor lattice, result parser. | +| `tests/roulette.rs` | Wheel, every bet type and payout, zero handling, cursor grid (straight/split/corner), result parser. | | `tests/server_core.rs` | Handler, bcrypt migration, SQL injection, transaction rollback, `plays` audit, sessions. | | `tests/server_setup.rs` | `--init` identity generation, PKCS#12 loadability, overwrite refusal. | | `tests/slots.rs` | Server slots payout rules and overflow handling. | @@ -98,8 +98,11 @@ Use an 80-column terminal because several output lines are width-sensitive. 1. `play roulette` draws the full felt: 0, the 3x12 numbers, dozens, columns, and the six outside cells, with the cursor on number 1. 2. Arrows move the cursor. On the numbers the highlighted cells show the bet: - one number (straight), two (split), four (corner). Down leaves the felt into - the dozens, then columns, then outside; Up walks back. + one number (straight), two (split), four (corner). Every number and every + adjacent pair is reachable: from 1, Right is the 1/4 split and Right again is + number 4; Up is the 1/2 split and Up again is number 2. The status line names + the bet and its odds. Down leaves the felt into the dozens, then columns, + then outside; Up walks back. 3. ENTER places the chip where the cursor is; `C` clears; `+`/`=`/`-` change the chip size. The bets line lists every chip and the total. 4. Space scrolls the wheel under a fixed ball marker and ends on the winning @@ -113,6 +116,14 @@ Use an 80-column terminal because several output lines are width-sensitive. 6. The result line names the number, color and parity, the total returned and the profit. The next spin reuses the placed chips. +## Manual history check + +1. Play a few rounds across games, then run `history`. +2. The table is newest first and shows the time, game, bet, winnings, balance + and a one-line result (`17 black`, `cashed 1.12x`, `none`, `win`). +3. `history 2` shows two rows; `history 0` and `history nope` are rejected + without sending anything. A fresh account says `No plays recorded yet.` + ## Manual terminal size check 1. Start the client in a terminal smaller than 80x24: it must print -- cgit v1.2.3