Additional flip on discard variant - endgame and updated rules.md and new rules page.

This commit is contained in:
Aaron D. Lee
2026-01-26 01:01:08 -05:00
parent e9909fa967
commit 67021b2b51
14 changed files with 771 additions and 54 deletions

View File

@@ -191,25 +191,30 @@ def get_test_configs() -> list[tuple[str, GameOptions]]:
# Baseline (no house rules)
configs.append(("BASELINE", GameOptions(
initial_flips=2,
flip_on_discard=False,
flip_mode="never",
use_jokers=False,
)))
# === Standard Options ===
configs.append(("flip_on_discard", GameOptions(
configs.append(("flip_mode_always", GameOptions(
initial_flips=2,
flip_on_discard=True,
flip_mode="always",
)))
configs.append(("flip_mode_endgame", GameOptions(
initial_flips=2,
flip_mode="endgame",
)))
configs.append(("initial_flips=0", GameOptions(
initial_flips=0,
flip_on_discard=False,
flip_mode="never",
)))
configs.append(("initial_flips=1", GameOptions(
initial_flips=1,
flip_on_discard=False,
flip_mode="never",
)))
configs.append(("knock_penalty", GameOptions(
@@ -300,13 +305,13 @@ def get_test_configs() -> list[tuple[str, GameOptions]]:
configs.append(("CLASSIC+ (jokers + flip)", GameOptions(
initial_flips=2,
flip_on_discard=True,
flip_mode="always",
use_jokers=True,
)))
configs.append(("EVERYTHING", GameOptions(
initial_flips=2,
flip_on_discard=True,
flip_mode="always",
knock_penalty=True,
use_jokers=True,
lucky_swing=True,
@@ -472,8 +477,8 @@ def print_expected_effects(results: list[RuleTestResult]):
status = "" if diff > 0 else "?"
checks.append((r.name, expected, f"{actual} ({diff:+.1f})", status))
# flip_on_discard might slightly lower scores (more info)
r = find("flip_on_discard")
# flip_mode_always might slightly lower scores (more info)
r = find("flip_mode_always")
if r and r.scores:
diff = r.mean_score - baseline.mean_score
expected = "SIMILAR or lower"