mirror of
https://github.com/shlomif/PySolFC.git
synced 2025-04-05 00:02:29 -04:00
Added quad deck game variants.
This commit is contained in:
parent
ae9aa78cde
commit
b455e386f1
10 changed files with 112 additions and 42 deletions
|
@ -1,12 +1,12 @@
|
||||||
<h1>Double Klondike by Threes</h1>
|
<h1>Double Klondike (Draw 3)</h1>
|
||||||
<p>
|
<p>
|
||||||
Klondike type. 2 decks. Unlimited redeals.
|
Klondike type. 2 decks. Unlimited redeals.
|
||||||
|
|
||||||
<h3>Object</h3>
|
<h3>Object</h3>
|
||||||
<p>
|
<p>
|
||||||
Move all cards to the foundations.
|
Move all cards to the foundations.
|
||||||
|
|
||||||
<h3>Quick Description</h3>
|
<h3>Quick Description</h3>
|
||||||
<p>
|
<p>
|
||||||
Like <a href="doubleklondike.html">Double Klondike</a>,
|
Like <a href="doubleklondike.html">Double Klondike</a>,
|
||||||
but deal three cards from the talon at a time.
|
but deal three cards from the talon at a time.
|
|
@ -1,12 +1,12 @@
|
||||||
<h1>Klondike by Threes</h1>
|
<h1>Klondike (Draw 3)</h1>
|
||||||
<p>
|
<p>
|
||||||
Klondike type. 1 deck. Unlimited redeals.
|
Klondike type. 1 deck. Unlimited redeals.
|
||||||
|
|
||||||
<h3>Object</h3>
|
<h3>Object</h3>
|
||||||
<p>
|
<p>
|
||||||
Move all cards to the foundations.
|
Move all cards to the foundations.
|
||||||
|
|
||||||
<h3>Quick Description</h3>
|
<h3>Quick Description</h3>
|
||||||
<p>
|
<p>
|
||||||
Like <a href="klondike.html">Klondike</a>,
|
Like <a href="klondike.html">Klondike</a>,
|
||||||
but deal three cards from the talon at a time.
|
but deal three cards from the talon at a time.
|
12
html-src/rules/quadruplecanfield.html
Normal file
12
html-src/rules/quadruplecanfield.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<h1>Quadruple Canfield</h1>
|
||||||
|
<p>
|
||||||
|
Canfield type. 4 decks. Unlimited redeals.
|
||||||
|
|
||||||
|
<h3>Object</h3>
|
||||||
|
<p>
|
||||||
|
Move all cards to the foundations.
|
||||||
|
|
||||||
|
<h3>Quick Description</h3>
|
||||||
|
<p>
|
||||||
|
Like <a href="canfield.html">Canfield</a>,
|
||||||
|
but with four decks and eight playing piles.
|
12
html-src/rules/quadrupleklondike.html
Normal file
12
html-src/rules/quadrupleklondike.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<h1>Quadruple Klondike</h1>
|
||||||
|
<p>
|
||||||
|
Klondike type. 4 decks. Unlimited redeals.
|
||||||
|
|
||||||
|
<h3>Object</h3>
|
||||||
|
<p>
|
||||||
|
Move all cards to the foundations.
|
||||||
|
|
||||||
|
<h3>Quick Description</h3>
|
||||||
|
<p>
|
||||||
|
Like <a href="klondike.html">Klondike</a>,
|
||||||
|
but with four decks and 16 playing piles.
|
12
html-src/rules/quadrupleklondikedraw3.html
Normal file
12
html-src/rules/quadrupleklondikedraw3.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<h1>Quadruple Klondike (Draw 3)</h1>
|
||||||
|
<p>
|
||||||
|
Klondike type. 4 decks. Unlimited redeals.
|
||||||
|
|
||||||
|
<h3>Object</h3>
|
||||||
|
<p>
|
||||||
|
Move all cards to the foundations.
|
||||||
|
|
||||||
|
<h3>Quick Description</h3>
|
||||||
|
<p>
|
||||||
|
Like <a href="quadrupleklondike.html">Quadruple Klondike</a>,
|
||||||
|
but deal three cards from the talon at a time.
|
|
@ -1,12 +1,12 @@
|
||||||
<h1>Triple Klondike by Threes</h1>
|
<h1>Triple Klondike (Draw 3)</h1>
|
||||||
<p>
|
<p>
|
||||||
Klondike type. 3 decks. Unlimited redeals.
|
Klondike type. 3 decks. Unlimited redeals.
|
||||||
|
|
||||||
<h3>Object</h3>
|
<h3>Object</h3>
|
||||||
<p>
|
<p>
|
||||||
Move all cards to the foundations.
|
Move all cards to the foundations.
|
||||||
|
|
||||||
<h3>Quick Description</h3>
|
<h3>Quick Description</h3>
|
||||||
<p>
|
<p>
|
||||||
Like <a href="tripleklondike.html">Triple Klondike</a>,
|
Like <a href="tripleklondike.html">Triple Klondike</a>,
|
||||||
but deal three cards from the talon at a time.
|
but deal three cards from the talon at a time.
|
|
@ -575,7 +575,7 @@ class GI:
|
||||||
('fc-2.20', tuple(range(855, 897))),
|
('fc-2.20', tuple(range(855, 897))),
|
||||||
('fc-2.21', tuple(range(897, 900)) + tuple(range(11014, 11017)) +
|
('fc-2.21', tuple(range(897, 900)) + tuple(range(11014, 11017)) +
|
||||||
tuple(range(13160, 13163)) + (16682,)),
|
tuple(range(13160, 13163)) + (16682,)),
|
||||||
('dev', tuple(range(906, 920)) + tuple(range(11017, 11020)) +
|
('dev', tuple(range(906, 923)) + tuple(range(11017, 11020)) +
|
||||||
tuple(range(22303, 22311)) + tuple(range(22353, 22361))),
|
tuple(range(22303, 22311)) + tuple(range(22353, 22361))),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -603,7 +603,7 @@ class GI:
|
||||||
105, # Canfield
|
105, # Canfield
|
||||||
158, # Imperial Trumps
|
158, # Imperial Trumps
|
||||||
279, # Kings
|
279, # Kings
|
||||||
903, # Ace Up
|
903, # Aces Up
|
||||||
5034, # Mahjongg Flying Dragon
|
5034, # Mahjongg Flying Dragon
|
||||||
5401, # Mahjongg Taipei
|
5401, # Mahjongg Taipei
|
||||||
12345, # Oonsoo
|
12345, # Oonsoo
|
||||||
|
|
|
@ -652,6 +652,17 @@ class TripleCanfield(Canfield):
|
||||||
Canfield.createGame(self, rows=7)
|
Canfield.createGame(self, rows=7)
|
||||||
|
|
||||||
|
|
||||||
|
# ************************************************************************
|
||||||
|
# * Quadruple Canfield
|
||||||
|
# ************************************************************************
|
||||||
|
|
||||||
|
class QuadrupleCanfield(Canfield):
|
||||||
|
INITIAL_RESERVE_CARDS = 39
|
||||||
|
|
||||||
|
def createGame(self):
|
||||||
|
Canfield.createGame(self, rows=8)
|
||||||
|
|
||||||
|
|
||||||
# ************************************************************************
|
# ************************************************************************
|
||||||
# * Acme
|
# * Acme
|
||||||
# ************************************************************************
|
# ************************************************************************
|
||||||
|
@ -1041,3 +1052,5 @@ registerGame(GameInfo(835, CasinoCanfield, "Casino Canfield",
|
||||||
altnames="Reno"))
|
altnames="Reno"))
|
||||||
registerGame(GameInfo(896, ThePlot, "The Plot",
|
registerGame(GameInfo(896, ThePlot, "The Plot",
|
||||||
GI.GT_CANFIELD, 2, 0, GI.SL_BALANCED))
|
GI.GT_CANFIELD, 2, 0, GI.SL_BALANCED))
|
||||||
|
registerGame(GameInfo(922, QuadrupleCanfield, "Quadruple Canfield",
|
||||||
|
GI.GT_CANFIELD, 4, -1, GI.SL_BALANCED))
|
||||||
|
|
|
@ -182,6 +182,21 @@ class ChineseKlondike(DoubleKlondike):
|
||||||
DoubleKlondike.createGame(self, rows=12)
|
DoubleKlondike.createGame(self, rows=12)
|
||||||
|
|
||||||
|
|
||||||
|
# ************************************************************************
|
||||||
|
# * Quadruple Klondike
|
||||||
|
# * Quadruple Klondike by Threes
|
||||||
|
# ************************************************************************
|
||||||
|
|
||||||
|
class QuadrupleKlondike(DoubleKlondike):
|
||||||
|
def createGame(self):
|
||||||
|
DoubleKlondike.createGame(self, rows=16)
|
||||||
|
|
||||||
|
|
||||||
|
class QuadrupleKlondikeByThrees(DoubleKlondike):
|
||||||
|
def createGame(self):
|
||||||
|
DoubleKlondike.createGame(self, rows=16, num_deal=3)
|
||||||
|
|
||||||
|
|
||||||
# ************************************************************************
|
# ************************************************************************
|
||||||
# * Lady Jane
|
# * Lady Jane
|
||||||
# * Inquisitor
|
# * Inquisitor
|
||||||
|
@ -418,7 +433,7 @@ class PittTheYounger(Churchill):
|
||||||
# register the game
|
# register the game
|
||||||
registerGame(GameInfo(21, DoubleKlondike, "Double Klondike",
|
registerGame(GameInfo(21, DoubleKlondike, "Double Klondike",
|
||||||
GI.GT_KLONDIKE, 2, -1, GI.SL_BALANCED))
|
GI.GT_KLONDIKE, 2, -1, GI.SL_BALANCED))
|
||||||
registerGame(GameInfo(28, DoubleKlondikeByThrees, "Double Klondike by Threes",
|
registerGame(GameInfo(28, DoubleKlondikeByThrees, "Double Klondike (Draw 3)",
|
||||||
GI.GT_KLONDIKE, 2, -1, GI.SL_MOSTLY_LUCK))
|
GI.GT_KLONDIKE, 2, -1, GI.SL_MOSTLY_LUCK))
|
||||||
registerGame(GameInfo(25, Gargantua, "Gargantua",
|
registerGame(GameInfo(25, Gargantua, "Gargantua",
|
||||||
GI.GT_KLONDIKE, 2, 1, GI.SL_BALANCED,
|
GI.GT_KLONDIKE, 2, 1, GI.SL_BALANCED,
|
||||||
|
@ -433,7 +448,7 @@ registerGame(GameInfo(51, Steps, "Steps",
|
||||||
GI.GT_KLONDIKE, 2, 1, GI.SL_BALANCED))
|
GI.GT_KLONDIKE, 2, 1, GI.SL_BALANCED))
|
||||||
registerGame(GameInfo(273, TripleKlondike, "Triple Klondike",
|
registerGame(GameInfo(273, TripleKlondike, "Triple Klondike",
|
||||||
GI.GT_KLONDIKE, 3, -1, GI.SL_BALANCED))
|
GI.GT_KLONDIKE, 3, -1, GI.SL_BALANCED))
|
||||||
registerGame(GameInfo(274, TripleKlondikeByThrees, "Triple Klondike by Threes",
|
registerGame(GameInfo(274, TripleKlondikeByThrees, "Triple Klondike (Draw 3)",
|
||||||
GI.GT_KLONDIKE, 3, -1, GI.SL_MOSTLY_LUCK))
|
GI.GT_KLONDIKE, 3, -1, GI.SL_MOSTLY_LUCK))
|
||||||
registerGame(GameInfo(495, LadyJane, "Lady Jane",
|
registerGame(GameInfo(495, LadyJane, "Lady Jane",
|
||||||
GI.GT_KLONDIKE, 2, 1, GI.SL_BALANCED))
|
GI.GT_KLONDIKE, 2, 1, GI.SL_BALANCED))
|
||||||
|
@ -465,3 +480,8 @@ registerGame(GameInfo(828, Churchill, "Churchill",
|
||||||
altnames=('Prime Minister')))
|
altnames=('Prime Minister')))
|
||||||
registerGame(GameInfo(885, PittTheYounger, "Pitt the Younger",
|
registerGame(GameInfo(885, PittTheYounger, "Pitt the Younger",
|
||||||
GI.GT_GYPSY, 2, 0, GI.SL_BALANCED))
|
GI.GT_GYPSY, 2, 0, GI.SL_BALANCED))
|
||||||
|
registerGame(GameInfo(920, QuadrupleKlondike, "Quadruple Klondike",
|
||||||
|
GI.GT_KLONDIKE, 4, -1, GI.SL_BALANCED))
|
||||||
|
registerGame(GameInfo(921, QuadrupleKlondikeByThrees,
|
||||||
|
"Quadruple Klondike (Draw 3)",
|
||||||
|
GI.GT_KLONDIKE, 4, -1, GI.SL_BALANCED))
|
||||||
|
|
|
@ -1617,7 +1617,7 @@ registerGame(GameInfo(61, CasinoKlondike, "Casino Klondike",
|
||||||
GI.GT_KLONDIKE | GI.GT_SCORE, 1, 2, GI.SL_BALANCED))
|
GI.GT_KLONDIKE | GI.GT_SCORE, 1, 2, GI.SL_BALANCED))
|
||||||
registerGame(GameInfo(129, VegasKlondike, "Vegas Klondike",
|
registerGame(GameInfo(129, VegasKlondike, "Vegas Klondike",
|
||||||
GI.GT_KLONDIKE | GI.GT_SCORE, 1, 0, GI.SL_BALANCED))
|
GI.GT_KLONDIKE | GI.GT_SCORE, 1, 0, GI.SL_BALANCED))
|
||||||
registerGame(GameInfo(18, KlondikeByThrees, "Klondike by Threes",
|
registerGame(GameInfo(18, KlondikeByThrees, "Klondike (Draw 3)",
|
||||||
GI.GT_KLONDIKE, 1, -1, GI.SL_MOSTLY_LUCK))
|
GI.GT_KLONDIKE, 1, -1, GI.SL_MOSTLY_LUCK))
|
||||||
registerGame(GameInfo(58, ThumbAndPouch, "Thumb and Pouch",
|
registerGame(GameInfo(58, ThumbAndPouch, "Thumb and Pouch",
|
||||||
GI.GT_KLONDIKE, 1, 0, GI.SL_MOSTLY_LUCK))
|
GI.GT_KLONDIKE, 1, 0, GI.SL_MOSTLY_LUCK))
|
||||||
|
@ -1680,7 +1680,8 @@ registerGame(GameInfo(326, Lanes, "Lanes",
|
||||||
registerGame(GameInfo(327, ThirtySix, "Thirty-Six",
|
registerGame(GameInfo(327, ThirtySix, "Thirty-Six",
|
||||||
GI.GT_KLONDIKE, 1, 0, GI.SL_BALANCED))
|
GI.GT_KLONDIKE, 1, 0, GI.SL_BALANCED))
|
||||||
registerGame(GameInfo(350, Q_C_, "Q.C.",
|
registerGame(GameInfo(350, Q_C_, "Q.C.",
|
||||||
GI.GT_KLONDIKE, 2, 1, GI.SL_BALANCED))
|
GI.GT_KLONDIKE, 2, 1, GI.SL_BALANCED,
|
||||||
|
altnames=("K.C.",)))
|
||||||
registerGame(GameInfo(361, NorthwestTerritory, "Northwest Territory",
|
registerGame(GameInfo(361, NorthwestTerritory, "Northwest Territory",
|
||||||
GI.GT_RAGLAN, 1, 0, GI.SL_BALANCED))
|
GI.GT_RAGLAN, 1, 0, GI.SL_BALANCED))
|
||||||
registerGame(GameInfo(362, Morehead, "Morehead",
|
registerGame(GameInfo(362, Morehead, "Morehead",
|
||||||
|
|
Loading…
Add table
Reference in a new issue