Hearts
CardAvoid the hearts.
Game Rules: Hearts
Game Identity
- Name: Hearts
- Player Count: 3–5 players. Standard: 4. (Six-handed Hearts exists in some references but is not supported by this app.)
- Teams: No teams — every player scores individually.
- Theme: Pen-on-paper scorekeeper for the classic trick-taking card game. The app does not deal cards or simulate trick play; it records the per-hand point total for each player.
- Dealer / Rotation: The dealer role rotates clockwise after each hand.
Deck Adjustments (context for trick play, not enforced by the app)
- 3 players: remove the 2♣ (51 cards, 17 each).
- 4 players: full 52-card deck (13 each) — standard.
- 5 players: remove the 2♣ and 2♦ (50 cards, 10 each).
Scoring Mechanics
- Scoring Variant: Evasion — the lowest cumulative score wins.
- Target Score: 100 (modern standard, app default). 50 is a common shorter variant.
- Unit of Scoring: Penalty points per hand.
- Lower vs. Higher: Lower is better. Hearts is the only built-in game with
scoreLowerIsBetter = true.
Rules & Validation
Per-Hand Logic
- Points per Hand: Exactly 26 penalty points are distributed each hand:
- Each ♥ captured = 1 point (13 hearts × 1 = 13 pts).
- Q♠ captured = 13 points.
- All other cards = 0 points.
- Validation Rules:
- The sum of all player point entries for a hand MUST equal 26. The Save button is disabled until the total is exactly 26.
- Each player's value must be between 0 and 26 inclusive (
HeartsRules.minPointsPerPlayer/maxPointsPerPlayer). - The hand's player count must be between 3 and 5 (
HeartsRules.minPlayers/maxPlayers).
- Normalization (Shoot the Moon):
- If the validator detects exactly one player at 26 and every other player at 0, that player "shot the moon".
- The committed scores are rewritten: shooter → 0, every other player → 26.
- The original raw input is preserved on the transaction's
payload.rawInputandpayload.moonAppliedfields for history display. - Any other distribution that sums to 26 is committed as-entered (no normalization).
Special Actions / Bonuses
Shoot the Moon (a.k.a. Slam, "Take All"):
- Trigger: a single player captures all 13 hearts AND the Q♠ in one hand.
- Effect (this app): shooter scores 0; every opponent gains 26.
- Detected automatically from the entered values — no toggle. Tapping "Shoot Moon" next to a player is a shortcut that pre-fills the picker (shooter = 26, others = 0) so the user can save with one tap.
Card-Play Concepts (Context Only — Not Enforced by App)
The app does not enforce trick-play rules; these affect how the 26 points get distributed in real life, not what the app records:
- Passing Rotation: In a standard 4-player game, cards are passed before each hand:
- Left
- Right
- Across
- Hold (No passing) The cycle repeats every 4 hands.
- ♥ cannot be led until they have been "broken" (someone discards a heart on a non-hearts trick) or the leader has only hearts left.
- The 2♣ leads the first trick (or 3♣ in 5-player when 2♣ is removed).
...
Win Conditions
- Condition: The game ends as soon as any player's cumulative score reaches or exceeds the target (default 100). The player with the lowest cumulative score wins.
- Tie-Breaker: If multiple players are tied for the lowest score at game end, the rule book calls for additional hands to be played until the tie is broken. The app surfaces the tie via the
endConditionMessage("Hearts end condition reached. Current leader(s): A, B.") and lets the user keep recording hands manually — there is no automated tie-break.
Set Up in Doodle Score
Hearts has a dedicated scorecard in Doodle Score — everything is pre-configured including score tracking, validation, and special rules.
Download the app, tap New Scorecard, and choose Hearts.
Track Hearts in Doodle Score
Free scorekeeper app for iOS & Android