The problem I needed to solve
With two players holding two and one cards, some turns force a draw without a choice. I made that case an explicit count-based rule.
Implementation in this snapshot
JokerGame.SkipForcedFinalDraw skips the two-card receiver only when exactly two active players have counts two versus one. The one-card player chooses between two cards.
The design decision and its cost
The rule depends on counts rather than the Joker’s location. It applies equally to humans and bots, while empty seats leave the rotation.
Current boundaries
Three active players or counts two versus three do not activate the exception. Finishing requires one remaining Joker and three seats in FinishOrder; one emptied hand does not finish the match.
Review scenarios and contract meaning
The ending exception is best explained with exactly two active seats. One holds two cards and the other only one. Making the two-card holder draw from a one-card hand creates no real choice. Skipping that turn gives the one-card holder a decision between the opponent’s two cards. Crucially, the condition uses card counts rather than reading the Joker’s location to manufacture a desirable turn. It consequently applies to humans and bots alike and should not be described as hidden assistance. The changed turn can also be explained externally using visible hand sizes.
The precise condition prevents casual generalization. Two players alone are insufficient: two versus three cards does not trigger it. Three active seats are another state, even if two hands are small. Emptying one hand removes that seat from rotation but does not end the whole match. One remaining Joker together with three seats in FinishOrder gives a fuller ending definition. Checking these boundaries helps avoid premature winner or loser messages and keeps the final stage tied to model rules.
A short explanation could prevent players from reading the changed turn as an error. The count-based rule is explainable without revealing hidden cards. Such guidance is an experience proposal, not a claim that final scene copy exists. The value is model behavior explainable through information the player may know, which presentation can communicate.
What this stage taught me
For me, this preserves a meaningful final decision. Players get an actual choice without the program revealing hidden information or changing turn order solely to favor a human.




