Come bets never travel — they are permanent copies of the Pass Line #28
Labels
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rosa/casino#28
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
A Come bet at a real craps table has its own come-out. Placed while a point
stands, it is settled immediately by the next roll on 7 or 11 (win) and on 2, 3
or 12 (lose); any other total becomes that bet's point, and from then on it
wins when its own point is rolled and loses on a 7. Don't Come is its mirror.
So a player can hold several positions, each waiting on a different number.
Craps here implements neither half. A Come bet is a permanent copy of the Pass
Line: it wins on every 7 or 11 and loses on every 2, 3 or 12, for as long as it
stands, and it never takes a point of its own. A player who places one and then
rolls a 7 wins it — where at a real table, once that bet had travelled, the same
7 would take it.
This simplification is preserved deliberately by #27, which cuts the engine/UI
seam and makes the round terminate. It is much cheaper to fix afterwards: once
the round is a value-returning engine with scripted dice, a travelling Come bet
is a change to how one position settles, and it can be asserted directly. Today
it cannot be reached by a test at all.
Worth settling as part of that work:
position
point — at a real table it stays up for the next shooter, which this casino
has no concept of
decides for Don't Pass
Related: #27
Agent Brief
Category: enhancement
Summary: Come and Don't Come bets take a point of their own and travel; the round runs on through point hits and ends only when the shooter sevens out.
Current behavior:
A Come bet is a permanent copy of the Pass Line. It has no come-out of its own
and never takes a point: for as long as it stands it wins on 7 or 11 and loses
on 2, 3 or 12, whichever roll they fall on. Don't Come mirrors that copy,
including a barred 12 that pushes on any 12 rather than only on the bet's own
come-out.
The round ends on the first of three events — a come-out that settles the line,
the shooter hitting the point, or a seven-out — and everything still standing
when it ends is swept to the house. Confirmed by driving a scripted round:
a real table the first travels the bet to 5 and the second pays it.
Don't Come is paid by that 7 — this is money the house should not be
collecting.
sitting on the very number that was hit.
Desired behavior:
Follow the table. A Come bet has two lives, and which one it is in decides what
each total does to it.
Before it travels — the single roll immediately after it is placed, which is
that bet's own come-out:
After it travels:
would have settled it before it travelled included
Don't Come mirrors this. Before it travels, 2 or 3 wins, 7 or 11 loses, and the
barred 12 pushes. After it travels, a 7 wins it and its own come point loses
it — and it is indifferent to a 12, because the bar applies to a bet's own
come-out and to nothing else.
A player can hold several of these at once, each on a different come point, each
settling on its own.
The round takes the shape a craps round actually has. The shooter keeps the dice
through everything but a seven-out:
is another come-out.
come-out. Positions that have travelled stay up, untouched, and work through
the new come-out.
thing that does.
The sweep goes away rather than moving: a 7 settles every bet this table takes,
so the roll that ends the round leaves nothing standing behind it. No position
is ever taken by the house without the dice having decided it.
Because the round can now outlast any one bet, the player needs a way off the
table. They get one when they have nothing at risk. A position still riding
keeps them there — a Come bet is a contract and cannot be taken down — and they
are never asked to roll with nothing on the table.
Key interfaces:
travels.
Betstays a plain proposition carrying no state: it is whatavailable_bets()offers the player to pick from and whatDisplaynames, soa travelled Come bet cannot be a different
Bet.Payoutshould carry the come point the position stood on, so the UI can tella player holding three Come bets which one just settled.
Craps::is_finished()becomes true only after a seven-out.distinguish a player who may leave from one who may not.
is the only ending left. The rule that a multi-roll position still standing at
the end of the round loses can be deleted outright, not adjusted.
Craps::placeandCraps::roll/Craps::settlekeep their shapes.Craps::with_diceremains the determinism seam per ADR-0002 — every criterionbelow is reachable through it.
record how long a round runs and why, since craps now stretches the glossary's
round further than any other game here.
Acceptance criteria:
Travel:
and on 2, 3 or 12 (loses)
that would have settled it before it travelled now settle nothing
win on a roll that leaves the other standing
hits it, alongside the Pass Line
Round shape:
running, with the next roll a come-out again
come-out, leaving travelled positions standing
naturals is still running until the 7 arrives
Pass Line loses on the same roll
payout settles a position the dice did not decide
At the table:
several Come bets do not read identically
Mister Green still finds a broke player on the way out
Out of scope:
the engine's header comment
one takes it only under a point — a genuine deviation, but a separate change
Brief addendum — #35 folded in
#35 specified the same change from the other direction and is closed as a
duplicate of this one. Its criteria are covered by the brief above, bar two,
which are added here.
The open decision #35 raised — what becomes of a Come position still standing
when the round ends — does not survive the round shape this brief specifies.
The round no longer ends on a point hit, so a travelled position is never
orphaned by one: it stays up and works through the new come-out. The only
ending left is a seven-out, and a 7 settles every bet this table takes. There
is nothing standing at the end of a round to decide the fate of.
Additional acceptance criteria:
behaving like the two sides of the line. It describes a bet's own
come-out, the come point it travels to, and what settles it afterwards
mise run cipasses