FAILURE MAP
← Case archive

FA-83632 / Card game rule engines / Member archive

The last bidder becomes declarer · case 02

When partner first named the strain, the raiser is reported as declarer.

Member previewVariant 2 · 3 implementations · 8 checks per implementation

Case contract

Input list of calls (bids like "2H"/"3N", "P", "X", "XX") starting with dealer seat 0. Each bid must outrank the previous bid (level, then C<D<H<S<N). X requires the last non-pass call to be an opponent bid; XX an opponent X. Four initial passes -> ["passed out", None, None]; three passes after a bid -> ["contract", bid+X/XX, declarer] where declarer is the first player of the declaring side to name the strain. Illegal call -> ["illegal", index, None]; unfinished -> ["open", None, None].

Why this case matters

Card-game engines, scoring apps and online tables apply this rule automatically on every hand.

One recorded failure

Sample boundary fixture

This sample comes from the broken implementation of a controlled reproducer.

Boundary fixtureActualExpectedOutcome
auction case 6["contract", "2H", 0]["contract", "2H", 2]Failed

MEMBER ARCHIVE

The complete case is available to members.

This record includes three runnable implementations, regression fixtures, execution results, and source hashes.

Member access is invitation-based. Sign in with your invited account to inspect the sources.

Sign in to the archive ↗