card-game.el/known-games.org
Corwin Brust b5410e1830 Add 16 games and known-games research; bump to 1.0.60
Console UNICODE games on the cg-core EIEIO engine, all ERT-tested (88/88):
- Tableau solitaire (cg-solitaire.el): Klondike, FreeCell, Spider, Yukon,
  Canfield, Forty Thieves, Scorpion.
- Pile solitaire (cg-patience.el): Golf, TriPeaks, Pyramid.
- Trick-taking (cg-trick.el): Hearts, Spades, Whist, Oh Hell.
- Shedding/climbing: Crazy Eights (cg-eights.el), President (cg-president.el).

Wire all into the card-game chooser, Makefile, and README; add
known-games.org research collation; bump every file to 1.0.60.
2026-06-25 01:58:24 -05:00

1113 lines
47 KiB
Org Mode
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#+TITLE: Known Games — research collation for card-games.el
#+AUTHOR: Corwin Brust (research compiled with Mentat)
#+OPTIONS: toc:2 num:nil
#+STARTUP: showall
* About this file
This is a *research collation*, not an order list. It records card games
we have looked into, what we learned about their rules, a rough level-of-
effort (LoE) guess as a T-shirt size, and links to authoritative rules.
We only consider *building* a game once its Rules section is filled in well
enough that we believe we could implement it. People will suggest games
over time; before researching a new one, search this file for its ~name~ to
see whether we have already looked at it and what we found.
** Meta-table fields
Each game is a top-level section containing a left-header table with:
- *name* :: common name (section heading matches).
- *package* :: ~NA~ if unbuilt, otherwise the launch command in
=card-games= (e.g. ~M-x cg-klondike~).
- *players* :: supported player counts.
- *LoE* :: T-shirt size — *S* easier · *M* normal · *H* clearly more work.
- *engine* :: which shared engine/cluster it belongs to (see end).
- *links* :: authoritative rules.
- *added* / *updated* :: ISO dates.
** T-shirt sizing key
- *S* :: small — little new logic; mostly reuses an existing engine.
- *M* :: medium — a normal game's worth of new rules/UI.
- *H* :: hard — multi-deck, melding, or heavy scoring; clearly more work.
* Beggar-My-Neighbour
| name | Beggar-My-Neighbour |
| package | NA |
| players | 2 (3-4 variants) |
| LoE | S |
| engine | shedding/auto |
| links | https://en.wikipedia.org/wiki/Beggar-my-neighbour |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Deal the whole 52-card deck out evenly, face down, one stack per player.
Players do not look at their cards. In turn, each player plays the top
card of their stack face up to a central pile. Play passes until someone
plays a "penalty card" (an honour): Ace, King, Queen, or Jack. The *next*
player must then pay a forfeit by playing cards to the pile: 4 for an Ace,
3 for a King, 2 for a Queen, 1 for a Jack. If during a forfeit another
honour appears, the forfeit cancels and the obligation flips to the
following player. If a forfeit is paid out with only number cards, the
player who laid the last honour takes the whole central pile and places it
face down under their stack, then leads again. A player who runs out of
cards is out; last player holding cards wins.
** Notes
Fully deterministic once dealt — *zero decisions*. Ideal first "auto-play"
demo: the engine just animates. Famous for sometimes never terminating.
* Briscola
| name | Briscola |
| package | NA |
| players | 2, 4 (partnership) |
| LoE | M |
| engine | trick (no follow-suit) |
| links | https://en.wikipedia.org/wiki/Briscola · https://www.pagat.com/aceten/briscola.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
40-card Italian deck (or strip 8/9/10... — actually strip the 8s,9s,10s
from a French deck to get 40, ranks A,3,K,Q,J,7,6,5,4,2). Card-point
values: Ace 11, Three 10, King 4, Queen/Horse 3, Jack/Knave 2, others 0
(total 120). Deal 3 cards each; turn the next card face up — its suit is
the *briscola* (trump) for the hand — and place it half-under the stock.
No requirement to follow suit. Highest briscola wins; else highest card
of the led suit. Winner of each trick draws first from stock, then others,
restoring hands to 3. The last face-up trump is the final card drawn.
Continue until the deck and hands are exhausted (20 tricks total in 2p).
Score the card points captured; 61+ wins.
** Notes
No-follow-suit makes the trick resolver simpler than 500/Spades. Shares
the deck/trick/AI scaffolding of the trick cluster; good companion to Scopa
for an "Italian games" set.
* Canasta
| name | Canasta |
| package | NA |
| players | 4 (partnership); 2-3 variants |
| LoE | H |
| engine | rummy/meld (multi-deck) |
| links | https://en.wikipedia.org/wiki/Canasta · https://www.pagat.com/rummy/canasta.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Two 52-card decks + 4 jokers (108). Deal 11 each. Jokers and 2s are
wild. Players draw and discard, melding sets of 3+ equal ranks (no runs).
A *canasta* is a meld of 7: *natural/clean* (no wilds, 500 bonus) or
*mixed/dirty* (1-3 wilds, 300 bonus). Red 3s are bonus cards laid aside
(100 each; all four = 800). Black 3s block the discard pile and can only
be melded when going out. Minimum first-meld point count rises with your
team's cumulative score (e.g. 50/90/120). The discard pile can be "frozen"
and taken wholesale if you can meld its top card. Going out requires at
least one canasta; +100 bonus (+200 concealed). Card values: jokers 50,
2s & aces 20, K-8 10, 7-4 & black 3 5.
** Notes
The heavyweight of the meld family: wilds, frozen pile, escalating minimums,
multi-deck. Build *Hand and Foot* first (simpler cousin) to prove the meld
engine, then extend.
* Canfield
| name | Canfield |
| package | ~M-x cg-canfield~ |
| players | 1 (solitaire) |
| LoE | M |
| engine | tableau-solitaire |
| links | https://en.wikipedia.org/wiki/Canfield_(solitaire) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal 13 cards to a face-down *reserve* (demon) with the top
turned up. Deal one card to the first *foundation*; its rank sets the base
rank for all four foundations (they build up in suit, wrapping K→A). Deal
4 cards face up as the *tableau*. Remaining cards form the stock, dealt to
waste 3 at a time with unlimited redeals. Tableau builds down in alter-
nating colour, wrapping A→K; groups move as units. Empty tableau columns
are filled from the reserve (when the reserve empties, from the waste).
Win by building all four foundations up 13 cards.
** Notes
Same engine as Klondike/FreeCell plus a *reserve* pile and a *variable
foundation base rank*. Build Klondike first; Canfield is then mostly the
reserve + base-rank wrinkle. Famously hard (~8% win).
* Casino
| name | Casino |
| package | NA |
| players | 2-4 |
| LoE | M |
| engine | fishing |
| links | https://en.wikipedia.org/wiki/Cassino_(card_game) · https://www.pagat.com/fishing/casino.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal 2 to each player and 4 face up to the table (then 2 more
to players, repeating until the deck is gone, 2 at a time). On your turn
play one card to: *capture* table cards of equal rank (face cards by rank
only) or sets of number cards summing to your card's value (A=1); *build* a
combination you can later capture; or *trail* (place a card on the table).
A capture that clears the table is a *sweep* (+1). Number cards count
their pips for building. Scoring at deck's end: most cards 3, most spades
1, the 10♦ ("big casino") 2, the 2♠ ("little casino") 1, each Ace 1, each
sweep 1. Play to 21 over hands.
** Notes
Fishing engine, shared with Scopa. Builds are the tricky part (track build
value + owner). Pair with Scopa for the capture-engine cluster.
* Clock (solitaire)
| name | Clock |
| package | NA |
| players | 1 (solitaire) |
| LoE | S |
| engine | pile-solitaire |
| links | https://en.wikipedia.org/wiki/Clock_(card_game) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Deal all 52 into 13 piles of 4 (12 in a clock-face ring + 1 in the centre
= Kings). Turn up the centre's top card, slide it face up under the pile
of its rank (Ace=1 … J=11, Q=12, K=centre), and turn up that pile's top
card; continue. You win if all 13 piles are turned face up before the 4th
King surfaces (which ends the game). Pure chance — no decisions.
** Notes
Another zero-decision auto-demo, like Beggar-My-Neighbour. Trivial state
machine; nice for testing the renderer's "ring" layout.
* Concentration (Memory)
| name | Concentration (Memory / Pairs) |
| package | NA |
| players | 1+ |
| LoE | S |
| engine | grid-flip |
| links | https://en.wikipedia.org/wiki/Concentration_(card_game) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Shuffle 52 face down in a grid. On a turn, flip two cards; if they match
in rank, keep them and go again; otherwise flip them back. Most pairs
wins. Solo: minimise turns.
** Notes
Reuses the Gaps grid + cursor directly; only "face-down + reveal memory"
is new. Good cheap win that exercises the existing board renderer.
* Crazy Eights
| name | Crazy Eights |
| package | ~M-x cg-eights~ |
| players | 2-5 |
| LoE | M |
| engine | shedding |
| links | https://en.wikipedia.org/wiki/Crazy_Eights · https://www.pagat.com/eights/crazy8s.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal 5-7 each; flip one to start the discard pile; rest is
stock. On your turn play a card matching the top card's *rank or suit*.
*Eights are wild* — play any time and name the next suit. If you can't
play, draw from stock (until playable or stock empty, per variant). First
to shed all cards wins; score opponents' remaining cards (8=50, faces 10,
ace 1, else pip). The ancestor of UNO.
** Notes
The canonical shedding game; AI is easy (play matching, save eights).
Engine generalises to President-style climbing later. Very popular.
* Cribbage
| name | Cribbage |
| package | NA |
| players | 2 (3-4 variants) |
| LoE | M |
| engine | cribbage (own scorer) |
| links | https://en.wikipedia.org/wiki/Rules_of_cribbage · https://www.pagat.com/adders/crib6.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52 + a cribbage board (121 holes). Deal 6 each (2p); each player
discards 2 to the dealer's *crib*. Cut a *starter*; if it's a Jack, dealer
pegs 2 ("his heels"). *The Play (pegging):* alternate laying cards, calling
the running total (face=10, ace=1); never exceed 31. Score during play:
total 15 = 2; 31 = 2; pair = 2, pair-royal = 6, double-pair-royal = 12;
runs of 3+ = length; last card ("go"/last) = 1. Reset to 0 after 31 or a
go. *The Show:* count each hand then the crib (dealer last), with the
starter, for: every combo summing to 15 = 2; pairs = 2; runs = length;
flush = 4 (5 with starter; crib flush needs all 5); Jack of starter's suit
in hand ("his nobs") = 1. First to 121 wins.
** Notes
Unique scoring engine (the 15s/pairs/runs/flush counter is the whole game).
No trump, no melds — its own cluster. The combinatorial hand-scorer is the
fun, testable core. High wishlist value.
* Euchre
| name | Euchre |
| package | NA |
| players | 4 (partnership); 2-3 variants |
| LoE | M |
| engine | trick (trump + bowers) |
| links | https://en.wikipedia.org/wiki/Euchre · https://www.pagat.com/euchre/euchre.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
24-card deck (9-A in four suits). Deal 5 each; turn the next card up.
Bidding: in turn, *order up* (accept the turned suit as trump, dealer takes
the card) or pass; if all pass, a second round lets players *name* a
different trump. *Bowers:* Jack of trump = highest (right bower); Jack of
same colour = second highest (left bower, counts as trump). The maker's
team must take 3+ of 5 tricks: 3-4 = 1 point, all 5 (march) = 2; *going
alone* and taking all 5 = 4. If the makers fail (*euchred*), defenders get
2. First to 10 points wins.
** Notes
Best second trick game after 500: small hand, the bower mechanic is the
only real novelty over the 500/Spades trick resolver. Hugely popular in
the US Midwest.
* Forty Thieves
| name | Forty Thieves |
| package | ~M-x cg-forty-thieves~ |
| players | 1 (solitaire) |
| LoE | M |
| engine | tableau-solitaire (2 decks) |
| links | https://en.wikipedia.org/wiki/Forty_Thieves_(solitaire) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Two decks (104). Deal 10 columns of 4 cards, all face up. Eight
foundations build up by suit A→K. Tableau builds *down by suit*; move one
card at a time (no group moves in the strict rules). Stock dealt one at a
time to a single waste, no redeal. Empty columns take any card. Win by
filling all eight foundations.
** Notes
Two-deck tableau game — proves the engine scales to 104 cards and 8
foundations. Strict (down-by-suit, single-card) so move logic is simpler
than Klondike, but very hard to win.
* FreeCell
| name | FreeCell |
| package | ~M-x cg-freecell~ |
| players | 1 (solitaire) |
| LoE | M |
| engine | tableau-solitaire |
| links | https://en.wikipedia.org/wiki/FreeCell · https://www.pagat.com/patience/freecell.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52, *all dealt face up*: 8 columns (first four of 7, last four of
6). Four *free cells* hold one card each. Four foundations build up by
suit A→K. Tableau builds down in alternating colour. Move one card at a
time, but a "supermove" of N cards is allowed when (free cells + 1) ×
2^(empty columns) ≥ N. Nearly every deal is winnable.
** Notes
Same tableau/foundation engine as Klondike, minus the stock/waste, plus
free cells and the supermove count. No hidden cards → pure skill; great
for a deterministic, fully testable solver-friendly game. Very popular.
* Gin Rummy
| name | Gin Rummy |
| package | NA |
| players | 2 |
| LoE | M |
| engine | rummy/meld |
| links | https://en.wikipedia.org/wiki/Gin_rummy · https://www.pagat.com/rummy/gin.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal 10 each; flip one to start the discard. Draw (stock or
discard top) then discard. Form melds: runs (3+ same suit in sequence) and
sets (3-4 same rank). *Knock* when unmatched ("deadwood") ≤ 10; *gin* when
deadwood = 0 (+25 bonus). After a knock, the opponent lays off cards onto
the knocker's melds; difference in deadwood scores; if the opponent has ≤
the knocker (*undercut*), they score the difference + 25. Game to 100.
** Notes
The two-hand meld game. The deadwood/meld-optimiser (find the best meld
partition to minimise deadwood) is the reusable core for the whole rummy
family. Strong wishlist item.
* Go Fish
| name | Go Fish |
| package | NA |
| players | 2-6 |
| LoE | S |
| engine | ask/match |
| links | https://en.wikipedia.org/wiki/Go_Fish · https://www.pagat.com/quartet/gofish.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal 5-7 each; rest is the "pool". On your turn ask a named
player for a rank you hold; if they have any, they give all of them and you
ask again; else "Go Fish" — draw from the pool (extra turn if you drew the
rank asked). Complete *books* (all 4 of a rank), lay them down; most books
when cards run out wins.
** Notes
Simple AI (track who asked for what = basic memory). Hidden-hand info game;
the "ask a player" interaction is new but small. Good kid-friendly title.
* Golf (solitaire)
| name | Golf |
| package | ~M-x cg-golf~ |
| players | 1 (solitaire) |
| LoE | S |
| engine | pile-solitaire (waste-build) |
| links | https://en.wikipedia.org/wiki/Golf_(patience) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal 7 columns of 5 face up (35). One card to the waste; the
rest is stock. Move an *exposed* tableau card to the waste if it is one
rank higher or lower than the waste top (no wrap unless variant; suit
ignored). When stuck, deal the next stock card to the waste. Clear all
tableau cards to win; score = cards left when stock is exhausted.
** Notes
Tiny rule set, one legal-move test (±1 rank). Shares its waste-build core
with TriPeaks. Fast, satisfying, very testable.
* Hand and Foot
| name | Hand and Foot |
| package | NA |
| players | 4 (partnership); 2-6 variants |
| LoE | H |
| engine | rummy/meld (multi-deck) |
| links | https://en.wikipedia.org/wiki/Hand_and_Foot_(card_game) · https://www.pagat.com/rummy/handfoot.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Typically 5-6 decks incl. jokers; deal each player a *hand* (11) and a
*foot* (11) — you play the hand first, then pick up the foot. Draw 2,
discard 1. Meld sets of same rank (no runs). *Clean/red* canasta = 7 with
no wilds (500); *dirty/black* = 7 with wilds (300). 2s and jokers wild;
red 3s are bonus. Going out needs a minimum number of clean + dirty
canastas and you must finish the foot. Per-round minimum first-meld counts
rise each round.
** Notes
Simpler than full Canasta (sets only, no frozen-pile finesse) so it is the
right *first* multi-deck meld build; Canasta then extends it. On the
original wishlist (3-player Hand and Foot).
* Hearts
| name | Hearts |
| package | ~M-x cg-hearts~ |
| players | 3-4 (4 classic) |
| LoE | M |
| engine | trick (avoidance) |
| links | https://en.wikipedia.org/wiki/Hearts_(card_game) · https://www.pagat.com/reverse/hearts.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52, 4 players, deal 13 each. Pass 3 cards (left/right/across/none
rotating). Holder of 2♣ leads it. Follow suit if able; cannot lead hearts
until "broken" (a heart or Q♠ discarded off-suit). No trump. Each heart =
1 penalty, Q♠ = 13. *Shooting the moon:* take all hearts + Q♠ → 0 to self,
26 to everyone else. Play until someone hits 100; lowest score wins.
** Notes
Same trick resolver as Spades/500 but *no trump* and *penalty* scoring
(avoidance) + the passing phase + "hearts broken" lead rule. Very popular;
3-handed too (drop 2♦, deal 17). Strong build target this wave.
* Hell's Half-Acre
| name | Hell's Half-Acre (Gaps variant) |
| package | card-games (~M-x cg-hells-half-acre~) |
| players | 1 (solitaire) |
| LoE | S (done) |
| engine | gaps-grid |
| links | https://en.wikipedia.org/wiki/Gaps |
| added | 2026-06-23 |
| updated | 2026-06-24 |
** Rules
A Gaps/Montana variant built *downward* from Kings (anchor rank K, step
-1). Lay out 52 in a 4×13 grid, remove the four 2s leaving gaps; fill a
gap with the card one rank lower than its left neighbour in the same suit.
Limited redeals. See Montana for the shared machinery.
** Notes
*Already implemented* as a subclass of ~cg-gaps-game~ (proves deriving a
game from a shared base). Differs from Montana only by head/step.
* Klondike
| name | Klondike |
| package | ~M-x cg-klondike~ |
| players | 1 (solitaire) |
| LoE | M |
| engine | tableau-solitaire |
| links | https://en.wikipedia.org/wiki/Klondike_(solitaire) · https://www.pagat.com/patience/klondike.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Seven columns of 1..7 cards, only the last of each face up.
Four foundations build up by suit A→K. Tableau builds down in alternating
colour; only a King (or group headed by one) moves to an empty column.
Turn a hidden card when it becomes the column's last. Stock dealt to waste
1 (or 3) at a time; redeals per variant. Win by sending all 52 to
foundations. This is "Solitaire" as most people know it.
** Notes
*The* keystone solitaire — build first; FreeCell, Canfield, Yukon, Forty
Thieves all reuse its tableau/foundation/stock-waste engine. Top priority.
* Knock Rummy
| name | Knock Rummy (Poker Rum) |
| package | NA |
| players | 2-5 |
| LoE | M |
| engine | rummy/meld |
| links | https://en.wikipedia.org/wiki/Knock_rummy · https://www.pagat.com/rummy/knockrummy.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Like basic Rummy (draw/discard, melds of sets and runs) but a player may
*knock* on any turn instead of melding as they go: lay down all cards
grouped into melds + deadwood; lowest deadwood wins the difference from
each opponent; knocking with 0 deadwood = rummy bonus.
** Notes
Essentially Gin generalised to 2-5 players; if Gin's meld-optimiser exists,
this is an S add-on. Listed M standalone.
* Montana (Gaps)
| name | Montana (Gaps) |
| package | card-games (~M-x cg-montana~, ~cg-gaps~) |
| players | 1 (solitaire) |
| LoE | S (done) |
| engine | gaps-grid |
| links | https://en.wikipedia.org/wiki/Gaps |
| added | 2026-06-23 |
| updated | 2026-06-24 |
** Rules
Lay out 52 in a 4×13 grid; remove the four Aces leaving gaps. Build each
row upward in a single suit starting at 2 (anchor rank 2, step +1): a gap is
filled by the card one rank higher than its left neighbour, same suit; a gap
to the right of a King (or at row start) is dead. Reshuffle stuck cards a
limited number of times. Win when each row is a single suit 2→K.
** Notes
*Already implemented* (~cg-gaps.el~) as the base ~cg-gaps-game~ with the
Hell's-Half-Acre subclass. The project's first solitaire.
* Napoleon (Nap)
| name | Napoleon (Nap) |
| package | NA |
| players | 2-6 (best 4-5) |
| LoE | M |
| engine | trick (trump, bidding) |
| links | https://en.wikipedia.org/wiki/Napoleon_(card_game) · https://www.pagat.com/napoleon/nap.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52, deal 5 each. One round of bidding: declare how many of 5
tricks you will take (2, 3, 4, or "nap" = all 5); highest bid plays alone
vs the rest, the bid suit's first led card... actually trump = the suit the
declarer leads to the first trick. Make your bid to score; fail and you
are set. Simple, fast gambling-style trick game.
** Notes
A compact solo-vs-field trick game; reuses the trick resolver with a tiny
bidding layer. Good "lightweight Euchre".
* Oh Hell
| name | Oh Hell (Oh Pshaw / Blackout) |
| package | ~M-x cg-ohhell~ |
| players | 3-7 |
| LoE | M |
| engine | trick (exact-bid) |
| links | https://en.wikipedia.org/wiki/Oh_Hell · https://www.pagat.com/exact/ohhell.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Hand size changes each round (1,2,3,… up and/or back down).
Deal that many; turn the next card for trump (none in the max round). Each
player bids exactly how many tricks they will take; the *hook* rule forbids
the dealer from making total bids equal the number of tricks. Follow suit;
trump wins. Score: making your bid exactly = 10 + bid (common variant);
missing = 0 (or minus the miss). Most points after all rounds wins.
** Notes
Exact-bid scoring is the twist on the trick engine; variable hand size needs
a round driver. Excellent with AI; scales 3-7 players.
* Old Maid
| name | Old Maid |
| package | NA |
| players | 2-8 |
| LoE | S |
| engine | pair-discard |
| links | https://en.wikipedia.org/wiki/Old_Maid · https://www.pagat.com/quartet/oldmaid.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Remove one Queen (leaving 51; three Queens form the "old maid"). Deal all
out (uneven OK). Everyone discards pairs from hand. In turn, draw one
(unseen) from the player on your left and discard any new pair. Play until
all pairs are down; whoever holds the odd Queen loses.
** Notes
On the original wishlist. Pure mechanism, easy AI; the only state is hands
+ "draw from neighbour". Quick, kid-friendly.
* Pinochle
| name | Pinochle (single deck) |
| package | NA |
| players | 2 (4 partnership) |
| LoE | H |
| engine | trick + meld |
| links | https://en.wikipedia.org/wiki/Pinochle · https://www.pagat.com/marriage/pinmain.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
48-card pinochle deck (two each of 9,J,Q,K,10,A in four suits; ranking
A,10,K,Q,J,9). Phases: *bid*, *meld*, *trick*. Deal 12 each (2p). Bidding
sets trump and a target. *Meld* (declared, scored before play): run A-10-K-
Q-J of trump 150; royal marriage (K-Q trump) 40, common marriage 20;
pinochle (Q♠+J♦) 40, double 300; dix (9 of trump) 10; sets like four aces
100, etc. *Trick play:* must follow suit *and* head the trick if able
(win if you can); trump if void. Counters: each Ace/Ten/King = ... (A 11,
10 10, K 4, Q 3, J 2 in common scoring; or the 4/3/2 simplified) plus 1 for
last trick. Add meld + trick points; reaching the target scores, else set.
** Notes
The hard trick game: requires both a meld scorer *and* the strict
"must-win-if-able" trick rule + the special 48-card deck. Defer until the
trick engine and a meld scorer (from rummy) both exist.
* Pitch (Setback)
| name | Pitch (Auction Pitch / Setback) |
| package | NA |
| players | 2-7 (best 4 partnership) |
| LoE | M |
| engine | trick (point-trump) |
| links | https://en.wikipedia.org/wiki/Pitch_(card_game) · https://www.pagat.com/allfours/pitch.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52, deal 6 each (in 3+3). Bid 1-4 (or pass); high bidder is the
*pitcher* and leads — the suit led to the first trick becomes trump.
Follow suit or trump (you may always trump; off-trump you must follow).
Four points available: *High* (highest trump in play), *Low* (lowest trump
in play, to whoever takes it), *Jack* (of trump, if in play, to its taker),
*Game* (most card-points by value A=4,K=3,Q=2,J=1,10=10). Pitcher must
make the bid or be *set back* (subtract the bid). First to 7 (or 11) wins.
** Notes
"Led suit becomes trump" + the High/Low/Jack/Game point tally are the new
bits over the trick engine. Classic Americana; partnership variant fits the
4-seat scaffold.
* President
| name | President (Scum) |
| package | ~M-x cg-president~ |
| players | 3-8 (best 4-6) |
| LoE | M |
| engine | climbing/shedding |
| links | https://en.wikipedia.org/wiki/President_(card_game) · https://www.pagat.com/climbing/president.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal all out. Rank high→low: 2,A,K,Q,J,10,…,3. Leader plays
1-4 of a kind; each player in turn must play the *same count* of a strictly
higher rank or pass; once all but one pass (or someone matches a "complete"
set per variant), the pile clears and the last player leads. First out =
President, last = Scum. Next deal, Scum gives the President their two best
cards and gets two free choices back (Vice ranks trade one).
** Notes
The climbing-game archetype (extends the Crazy-Eights shedding core with a
"must beat the last play" comparator + role/exchange meta). Lively with
AI; build Crazy Eights first.
* Pyramid
| name | Pyramid |
| package | ~M-x cg-pyramid~ |
| players | 1 (solitaire) |
| LoE | M |
| engine | pile-solitaire (sum-13) |
| links | https://en.wikipedia.org/wiki/Pyramid_(solitaire) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal 28 in a 7-row triangle (each card half-covered by two
below). Remove pairs of *exposed* cards summing to 13 (A=1, J=11, Q=12, K=
13 removed alone). Deal stock to waste; pair waste/exposed cards. Redeals
per variant. Clear the pyramid to win.
** Notes
The "sum to N" matcher (cf. Gaps' rank logic) over a triangular exposure
graph. Distinct exposure model from Klondike; share the "sum-13" rule with
nothing else, but the renderer's triangle is reusable for TriPeaks.
* Rummy (Basic / 500 Rum)
| name | Rummy (Basic / 500 Rum) |
| package | NA |
| players | 2-6 |
| LoE | M |
| engine | rummy/meld |
| links | https://en.wikipedia.org/wiki/Rummy · https://www.pagat.com/rummy/500rum.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal 7 (2p) / 10 etc. Draw (stock or discard) then discard.
Meld runs (3+ same-suit sequence) and sets (3-4 same rank) to the table;
*lay off* onto existing melds. Basic: first to shed all wins, score
opponents' cards. *500 Rum:* melds score their card values (A=15 or 1, face
10, pip face value); you may take *any* card from the discard pile if you
immediately meld it (and everything above it joins your hand); play to 500.
** Notes
On the original wishlist (rummy 500). Shares the meld model with Gin; 500
Rum adds melds-score-points + deep-discard-take. Core rummy build.
* Scopa
| name | Scopa |
| package | NA |
| players | 2, 4 (partnership) |
| LoE | M |
| engine | fishing |
| links | https://en.wikipedia.org/wiki/Scopa · https://www.pagat.com/fishing/scopa.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
40-card deck (strip 8/9/10 from French deck; ranks A=1..7,J=8,Horse/Q=9,
K=10 for capture). Deal 3 each, 4 to the table. Play a card to *capture*
a table card of equal value, or a set summing to it; if both a single and a
combo are possible, the single is forced. Capturing all table cards = a
*scopa* (+1). Refill hands 3 at a time from stock. End scoring: most cards
1, most coins/diamonds 1, the *settebello* (7♦) 1, best *primiera* 1
(per-suit best card: 7=21,6=18,A=16,5=15,4=14,3=13,2=12,face=10), plus each
scopa. Play to 11.
** Notes
Fishing engine shared with Casino; primiera scoring is the fiddly part.
Pairs with Briscola for an Italian set. Uses a 40-card deck — the engine
already abstracts the deck.
* Scorpion
| name | Scorpion |
| package | ~M-x cg-scorpion~ |
| players | 1 (solitaire) |
| LoE | M |
| engine | tableau-solitaire |
| links | https://en.wikipedia.org/wiki/Scorpion_(solitaire) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Seven columns of 7 (top three rows of the first four columns
face down). Build *down by suit*; unlike Spider you may move a card *with
everything on top of it* regardless of order. Stock of 3 cards dealt to
the column bottoms when stuck. Goal: four K→A suit sequences.
** Notes
A "move the buried pile" twist on the tableau engine, kin to Spider but
single-deck. Good once Spider exists.
* Snap
| name | Snap |
| package | NA |
| players | 2-4 |
| LoE | S |
| engine | reflex/match |
| links | https://en.wikipedia.org/wiki/Snap_(card_game) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Deal all out face down. Players in turn flip their top card to a personal
face-up pile. When two face-up tops show the same rank, the first to call
"Snap!" takes both piles. Collect all cards to win.
** Notes
Reflex game — needs a *timed* input (press key fastest). AI "reaction
time" is a tunable delay. Tests the engine's real-time input path; small.
* Spades
| name | Spades |
| package | ~M-x cg-spades~ |
| players | 4 (partnership) |
| LoE | M |
| engine | trick (trump, bid, partnership) |
| links | https://en.wikipedia.org/wiki/Spades · https://www.pagat.com/auctionwhist/spades.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52, 4 players in 2 partnerships, deal 13 each. Spades are *always
trump*. Each player bids the tricks they expect (0 = *nil*, with bonus/
penalty). Follow suit; cannot lead spades until "broken" (a spade played
off-suit) unless only spades remain. Score: making the team's combined bid
= 10 × bid + 1 per overtrick ("bag"); 10 bags = -100; missing the bid = -10
× bid; nil made = +100 (failed -100). First to 500 wins.
** Notes
*Closest game to the already-built 500*: bidding + partnership + tricks +
spades-always-trump (simpler than 500's complex trump/joker). The cg-bid
trick/partnership machinery is the most directly reusable here. Top
trick-game target this wave. On the original wishlist (four-player spades).
* Spider
| name | Spider |
| package | ~M-x cg-spider~ |
| players | 1 (solitaire) |
| LoE | M |
| engine | tableau-solitaire (2 decks) |
| links | https://en.wikipedia.org/wiki/Spider_(solitaire) · https://www.pagat.com/patience/spider.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Two decks (104). Ten columns (four of 6, six of 5; only the bottom card
of each face up). Build *down regardless of suit*, but you may only move a
*run of the same suit* as a unit. Complete a K→A same-suit run and it is
removed. Stock deals one card to every column at once (no empty columns
allowed when dealing). 1/2/4-suit difficulty variants. Win by removing
all eight suit-runs.
** Notes
On the wishlist. Two-deck tableau; the "same-suit run moves/clears" rule is
the novelty. Difficulty knob (suits) is a nice defcustom. Build after
Klondike; shares the column/foundation-removal engine.
* Spit (Speed)
| name | Spit (Speed) |
| package | NA |
| players | 2 |
| LoE | M |
| engine | real-time tableau |
| links | https://en.wikipedia.org/wiki/Spit_(card_game) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Split the deck between two players. Each lays a personal tableau (5
stockpiles) and keeps a "spit" pile. On "spit", both flip a centre card
simultaneously; players *race* (no turns) to play tableau cards onto either
centre pile, building up or down by one (wrapping). When both stuck, spit
again. First to empty their cards wins the round; loser takes the smaller
centre pile.
** Notes
Real-time, two-pile build ±1 with wrap. Needs the timed-input loop (like
Snap) plus a reactive AI. Hardest of the "fast" games to make feel fair vs
AI; M.
* Spite and Malice
| name | Spite and Malice (Cat and Mouse) |
| package | NA |
| players | 2 (3+ variants) |
| LoE | M |
| engine | stock-race / shedding |
| links | https://en.wikipedia.org/wiki/Spite_and_Malice · https://www.pagat.com/eights/spite.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Two decks + jokers. Each player has a face-down *pay-off* (goal) pile;
race to empty it. Shared centre *build* piles go up A→Q (Kings wild);
complete a pile (Q) and it is recycled. On your turn play from hand,
pay-off top, or four personal discard piles onto the centre; you must start
each centre pile with an Ace. End your turn by discarding to one of your
four discard piles. First to exhaust the pay-off pile wins.
** Notes
Solitaire-flavoured competitive build game; reuses foundation "build up"
logic with wild Kings. Good 2-player title that isn't a trick or rummy
game.
* TriPeaks
| name | TriPeaks |
| package | ~M-x cg-tripeaks~ |
| players | 1 (solitaire) |
| LoE | S |
| engine | pile-solitaire (waste-build) |
| links | https://en.wikipedia.org/wiki/Tri_Peaks_(card_game) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Deal 18 cards as three overlapping peaks over a row of 10
(28 on the board), rest is stock. Move an *exposed* board card to the waste
if it is ±1 rank from the waste top (wrap A-K-A); chain as far as you can.
Deal from stock when stuck. Clear the board to win; longer chains score
more.
** Notes
Same ±1 waste-build as Golf, on a peaks layout (renderer shares Pyramid's
triangle). Combine Golf + TriPeaks behind one engine.
* War
| name | War |
| package | NA |
| players | 2 |
| LoE | S |
| engine | auto/compare |
| links | https://en.wikipedia.org/wiki/War_(card_game) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Split the deck in two face-down stacks. Both flip the top card; higher
rank takes both. Tie = "war": each lays 3 face down + 1 up; higher up-card
takes all (recurse on further ties). Collect all 52 to win.
** Notes
Zero-decision auto-demo (like Beggar/Clock). Trivial; nice for animation
and as the very first "two-player" engine smoke test.
* Whist
| name | Whist |
| package | ~M-x cg-whist~ |
| players | 4 (partnership) |
| LoE | M |
| engine | trick (trump, no bid) |
| links | https://en.wikipedia.org/wiki/Whist · https://www.pagat.com/whist/whist.html |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52, 4 players in 2 partnerships, deal 13 each; turn the dealer's
last card up for trump (it joins their hand). No bidding. Follow suit;
trump wins; highest of led suit otherwise. Score 1 point per trick over 6
("the book"); honours variants optional. Game to 5 (short) or 9 (long).
** Notes
The purest trick game — the trick engine with *no bidding* and a fixed
trump. Easiest trick-game build; a good first proof of the shared trick
resolver before Spades/Hearts add their twists.
* Yukon
| name | Yukon |
| package | ~M-x cg-yukon~ |
| players | 1 (solitaire) |
| LoE | S |
| engine | tableau-solitaire |
| links | https://en.wikipedia.org/wiki/Yukon_(solitaire) |
| added | 2026-06-24 |
| updated | 2026-06-24 |
** Rules
Standard 52. Like Klondike's seven columns, but *all* remaining cards are
dealt face up onto the columns (no stock/waste). Build foundations up by
suit A→K. Tableau builds down in alternating colour, but you may move *any*
face-up card together with every card on top of it (the group need not be
ordered). Empty columns take Kings (+ their pile).
** Notes
Klondike layout with "grab-any-buried-group" moves and no stock — an *S*
add-on once the Klondike tableau engine exists.
* 500 (Bid)
| name | 500 (Bid) |
| package | card-games (~M-x cg-bid~) |
| players | 4 (partnership); + live multiplayer |
| LoE | H (done) |
| engine | trick (trump+joker, bid, kitty) |
| links | https://en.wikipedia.org/wiki/500_(card_game) · https://www.pagat.com/euchre/500.html |
| added | 2026-06-23 |
| updated | 2026-06-24 |
** Rules
Implemented: 43/45-card variant, 5-card kitty, Avondale bidding (suits +
NT + misère/open misère), joker > right/left bower trump order, 10 tricks,
front-door win at 500 on a made contract, back-door loss at -500. Networked
host-authoritative live play (~M-x cg-bid-host~ / ~cg-bid-join~).
** Notes
*Already implemented* (~cg-bid.el~, ~cg-bid-ui.el~, ~cg-bid-net.el~) with
smart AI and SVG table UI. The reference trick implementation that Spades/
Hearts/Euchre/Whist will factor a shared engine out of.
* Shared engines / clusters (build-planning view)
Games group by the engine they want, which drives the build order:
- *gaps-grid* (DONE) :: Montana, Hell's Half-Acre. Reusable for
Concentration (face-down grid).
- *tableau-solitaire* :: Klondike → FreeCell, Canfield, Yukon, Forty
Thieves, Scorpion, Spider (2-deck). One stock/waste/foundation/column
engine; biggest single payoff (≥7 games, all solo, no user input).
- *pile-solitaire* :: Golf, TriPeaks (shared ±1 waste-build), Pyramid
(sum-13), Clock (auto).
- *trick* :: 500 (DONE, reference) → Whist (no bid) → Spades, Hearts (bid/
penalty + partnership) → Euchre, Oh Hell, Pitch, Napoleon, Briscola →
Pinochle (adds meld). Factor a ~cg-trick~ base from cg-bid.
- *shedding/climbing* :: Crazy Eights → President.
- *rummy/meld* :: Gin → Rummy/500 Rum, Knock Rummy → Hand and Foot →
Canasta. One meld-finder/scorer reused throughout.
- *fishing* :: Scopa, Casino (shared capture-by-value engine).
- *auto (zero-decision)* :: War, Beggar-My-Neighbour, Clock, Snap (Snap
adds timed input).
- *own scorer* :: Cribbage (15s/pairs/runs/flush counter).
- *stock-race* :: Spite and Malice.
** Build priorities (no user input needed · unlocks others · popular)
1. *tableau-solitaire engine + Klondike, FreeCell, Spider* — solo, no
input, hugely popular, unlocks Canfield/Yukon/Forty Thieves/Scorpion.
2. *trick engine + Spades and Hearts* — most popular trick games, reuse the
500 machinery, unlock Euchre/Whist/Oh Hell/Pitch.
3. *Crazy Eights* — popular, self-contained, unlocks President.
4. *pile-solitaire + Golf/TriPeaks*; *Cribbage*; then the rummy and fishing
clusters.