FA-83661 / Card game rule engines / Open access
A lone hand taking three or four tricks scores 2 · case 01
Partial lone hands are over-rewarded.
ROOT CAUSE
The partial branch applies a lone bonus.
VERIFIED REPAIR
Partial makes score 1 regardless of going alone.
Unsuccessful approach: Scoring four-trick hands as 2 still over-rewards partial makes.
Case contract
Input [makers_tricks, maker_alone, defender_alone]. Makers with 3-4 tricks score 1; all 5 score 2, or 4 when alone. Makers with fewer than 3 are euchred: defenders score 2, or 4 when a defender played alone. Return [team, points].
Why this case matters
Card-game engines, scoring apps and online tables apply this rule automatically on every hand.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
tricks, alone, def_alone = x
if tricks >= 3:
if tricks == 5:
return ['makers', 4 if alone else 2]
return ['makers', 2 if alone else 1]
return ['defenders', 4 if def_alone else 2]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[[[1, True, True], ['defenders', 4]], [[2, False, False], ['defenders', 2]], [[2, False, True], ['defenders', 4]], [[2, True, False], ['defenders', 2]], [[2, True, True], ['defenders', 4]], [[3, False, False], ['makers', 1]], [[3, True, False], ['makers', 1]], [[4, True, False], ['makers', 1]]], [[[3, True, False], ['makers', 1]], [[3, True, True], ['makers', 1]], [[4, False, False], ['makers', 1]], [[4, False, True], ['makers', 1]], [[4, True, False], ['makers', 1]], [[4, True, True], ['makers', 1]], [[4, True, True], ['makers', 1]], [[5, False, False], ['makers', 2]]], [[[0, False, False], ['defenders', 2]], [[0, False, True], ['defenders', 4]], [[0, True, False], ['defenders', 2]], [[0, True, True], ['defenders', 4]], [[1, False, False], ['defenders', 2]], [[4, False, False], ['makers', 1]], [[4, True, False], ['makers', 1]], [[5, True, True], ['makers', 4]]], [[[1, True, False], ['defenders', 2]], [[1, True, True], ['defenders', 4]], [[2, False, False], ['defenders', 2]], [[2, False, True], ['defenders', 4]], [[2, True, False], ['defenders', 2]], [[2, True, True], ['defenders', 4]], [[3, True, True], ['makers', 1]], [[4, False, True], ['makers', 1]]], [[[3, False, True], ['makers', 1]], [[3, True, False], ['makers', 1]], [[3, True, True], ['makers', 1]], [[4, False, False], ['makers', 1]], [[4, False, True], ['makers', 1]], [[4, True, False], ['makers', 1]], [[4, True, True], ['makers', 1]], [[5, False, False], ['makers', 2]]]]
for i, (args, expected) in enumerate(fixtures[N-1]):
check("hand points case %d" % i, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| hand points case 0 | ['defenders', 4] | ['defenders', 4] | Passed |
| hand points case 1 | ['defenders', 2] | ['defenders', 2] | Passed |
| hand points case 2 | ['defenders', 4] | ['defenders', 4] | Passed |
| hand points case 3 | ['defenders', 2] | ['defenders', 2] | Passed |
| hand points case 4 | ['defenders', 4] | ['defenders', 4] | Passed |
| hand points case 5 | ['makers', 1] | ['makers', 1] | Passed |
| hand points case 6 | ['makers', 2] | ['makers', 1] | Failed |
| hand points case 7 | ['makers', 2] | ['makers', 1] | Failed |
SHA-256 / 3cc36e03575f4e43d5cd59ae603d8b849cf3c897d4223e98a1e706962ca2c034
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
tricks, alone, def_alone = x
if tricks >= 3:
if tricks == 5:
return ['makers', 4 if alone else 2]
return ['makers', 1 if tricks == 3 else 2]
return ['defenders', 4 if def_alone else 2]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[[[1, True, True], ['defenders', 4]], [[2, False, False], ['defenders', 2]], [[2, False, True], ['defenders', 4]], [[2, True, False], ['defenders', 2]], [[2, True, True], ['defenders', 4]], [[3, False, False], ['makers', 1]], [[3, True, False], ['makers', 1]], [[4, True, False], ['makers', 1]]], [[[3, True, False], ['makers', 1]], [[3, True, True], ['makers', 1]], [[4, False, False], ['makers', 1]], [[4, False, True], ['makers', 1]], [[4, True, False], ['makers', 1]], [[4, True, True], ['makers', 1]], [[4, True, True], ['makers', 1]], [[5, False, False], ['makers', 2]]], [[[0, False, False], ['defenders', 2]], [[0, False, True], ['defenders', 4]], [[0, True, False], ['defenders', 2]], [[0, True, True], ['defenders', 4]], [[1, False, False], ['defenders', 2]], [[4, False, False], ['makers', 1]], [[4, True, False], ['makers', 1]], [[5, True, True], ['makers', 4]]], [[[1, True, False], ['defenders', 2]], [[1, True, True], ['defenders', 4]], [[2, False, False], ['defenders', 2]], [[2, False, True], ['defenders', 4]], [[2, True, False], ['defenders', 2]], [[2, True, True], ['defenders', 4]], [[3, True, True], ['makers', 1]], [[4, False, True], ['makers', 1]]], [[[3, False, True], ['makers', 1]], [[3, True, False], ['makers', 1]], [[3, True, True], ['makers', 1]], [[4, False, False], ['makers', 1]], [[4, False, True], ['makers', 1]], [[4, True, False], ['makers', 1]], [[4, True, True], ['makers', 1]], [[5, False, False], ['makers', 2]]]]
for i, (args, expected) in enumerate(fixtures[N-1]):
check("hand points case %d" % i, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| hand points case 0 | ['defenders', 4] | ['defenders', 4] | Passed |
| hand points case 1 | ['defenders', 2] | ['defenders', 2] | Passed |
| hand points case 2 | ['defenders', 4] | ['defenders', 4] | Passed |
| hand points case 3 | ['defenders', 2] | ['defenders', 2] | Passed |
| hand points case 4 | ['defenders', 4] | ['defenders', 4] | Passed |
| hand points case 5 | ['makers', 1] | ['makers', 1] | Passed |
| hand points case 6 | ['makers', 1] | ['makers', 1] | Passed |
| hand points case 7 | ['makers', 2] | ['makers', 1] | Failed |
SHA-256 / 3a1e7ebfbb79c4ec25b828b73f9ddafb086608ef8fd9165ca33856f0cd9e8328
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
tricks, alone, def_alone = x
if tricks >= 3:
if tricks == 5:
return ['makers', 4 if alone else 2]
return ['makers', 1]
return ['defenders', 4 if def_alone else 2]
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[[[1, True, True], ['defenders', 4]], [[2, False, False], ['defenders', 2]], [[2, False, True], ['defenders', 4]], [[2, True, False], ['defenders', 2]], [[2, True, True], ['defenders', 4]], [[3, False, False], ['makers', 1]], [[3, True, False], ['makers', 1]], [[4, True, False], ['makers', 1]]], [[[3, True, False], ['makers', 1]], [[3, True, True], ['makers', 1]], [[4, False, False], ['makers', 1]], [[4, False, True], ['makers', 1]], [[4, True, False], ['makers', 1]], [[4, True, True], ['makers', 1]], [[4, True, True], ['makers', 1]], [[5, False, False], ['makers', 2]]], [[[0, False, False], ['defenders', 2]], [[0, False, True], ['defenders', 4]], [[0, True, False], ['defenders', 2]], [[0, True, True], ['defenders', 4]], [[1, False, False], ['defenders', 2]], [[4, False, False], ['makers', 1]], [[4, True, False], ['makers', 1]], [[5, True, True], ['makers', 4]]], [[[1, True, False], ['defenders', 2]], [[1, True, True], ['defenders', 4]], [[2, False, False], ['defenders', 2]], [[2, False, True], ['defenders', 4]], [[2, True, False], ['defenders', 2]], [[2, True, True], ['defenders', 4]], [[3, True, True], ['makers', 1]], [[4, False, True], ['makers', 1]]], [[[3, False, True], ['makers', 1]], [[3, True, False], ['makers', 1]], [[3, True, True], ['makers', 1]], [[4, False, False], ['makers', 1]], [[4, False, True], ['makers', 1]], [[4, True, False], ['makers', 1]], [[4, True, True], ['makers', 1]], [[5, False, False], ['makers', 2]]]]
for i, (args, expected) in enumerate(fixtures[N-1]):
check("hand points case %d" % i, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| hand points case 0 | ['defenders', 4] | ['defenders', 4] | Passed |
| hand points case 1 | ['defenders', 2] | ['defenders', 2] | Passed |
| hand points case 2 | ['defenders', 4] | ['defenders', 4] | Passed |
| hand points case 3 | ['defenders', 2] | ['defenders', 2] | Passed |
| hand points case 4 | ['defenders', 4] | ['defenders', 4] | Passed |
| hand points case 5 | ['makers', 1] | ['makers', 1] | Passed |
| hand points case 6 | ['makers', 1] | ['makers', 1] | Passed |
| hand points case 7 | ['makers', 1] | ['makers', 1] | Passed |
SHA-256 / 0cc48b96229635dab690f9a616b1891807b26623e01361c8c9e83d3de27ea497
Verification & scope
A bounded toy rule contract stated explicitly in the contract field; cards are two-character codes (rank, suit). Not a complete implementation of any published rulebook or casino table rules. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:50:23.769263+00:00.
Case digest / 474ad42fc5b636b1f42cfdaa64e12506ea3f90f539ac67e6c96e4c25d8ca98c7