mirror of
https://github.com/shlomif/PySolFC.git
synced 2025-04-05 00:02:29 -04:00
Klondike with jokers.
This commit is contained in:
parent
b31ea75798
commit
572103b2c4
6 changed files with 88 additions and 28 deletions
|
@ -1,4 +1,4 @@
|
||||||
<h1>Hex A Klon by Three</h1>
|
<h1>Hex A Klon (Draw 3)</h1>
|
||||||
Klondike type. One deck. Unlimited redeals.
|
Klondike type. One deck. Unlimited redeals.
|
||||||
|
|
||||||
<h3>Object</h3>
|
<h3>Object</h3>
|
17
html-src/rules/jokeklon.html
Normal file
17
html-src/rules/jokeklon.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<h1>Joke Klon</h1>
|
||||||
|
<p>
|
||||||
|
Klondike type. 1 joker deck. 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 jokers. Any card or sequence can be played on a joker,
|
||||||
|
and a joker can be played on any card or sequence, or an empty
|
||||||
|
space. Jokers can be moved to their foundation once all the other
|
||||||
|
cards have been moved to the foundations.
|
||||||
|
<p>
|
||||||
|
A french deck variant of <a href="hexaklon.html">Hex A Klon</a>.
|
12
html-src/rules/jokeklondraw3.html
Normal file
12
html-src/rules/jokeklondraw3.html
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<h1>Joke Klon (Draw 3)</h1>
|
||||||
|
<p>
|
||||||
|
Klondike type. 1 joker deck. Unlimited redeals.
|
||||||
|
|
||||||
|
<h3>Object</h3>
|
||||||
|
<p>
|
||||||
|
Move all cards to the foundations.
|
||||||
|
|
||||||
|
<h3>Quick Description</h3>
|
||||||
|
<p>
|
||||||
|
Like <a href="jokeklon.html">Joke Klon</a>,
|
||||||
|
but deal three cards from the talon at a time.
|
|
@ -598,7 +598,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, 956)) + tuple(range(11017, 11020)) +
|
('dev', tuple(range(906, 958)) + tuple(range(11017, 11020)) +
|
||||||
tuple(range(5600, 5624)) + tuple(range(18000, 18005)) +
|
tuple(range(5600, 5624)) + tuple(range(18000, 18005)) +
|
||||||
tuple(range(19000, 19012)) + tuple(range(22303, 22311)) +
|
tuple(range(19000, 19012)) + tuple(range(22303, 22311)) +
|
||||||
tuple(range(22353, 22361))),
|
tuple(range(22353, 22361))),
|
||||||
|
|
|
@ -505,6 +505,31 @@ class Wildcards(Somerset):
|
||||||
self.s.talon.dealRow(rows=self.s.rows[7:])
|
self.s.talon.dealRow(rows=self.s.rows[7:])
|
||||||
self.s.talon.dealRow(rows=self.s.rows[8:])
|
self.s.talon.dealRow(rows=self.s.rows[8:])
|
||||||
|
|
||||||
|
|
||||||
|
# ************************************************************************
|
||||||
|
# * Joke Klon
|
||||||
|
# ************************************************************************
|
||||||
|
|
||||||
|
class JokeKlon_RowStack(KingAC_RowStack):
|
||||||
|
def acceptsCards(self, from_stack, cards):
|
||||||
|
stackcards = self.cards
|
||||||
|
if (stackcards and stackcards[-1].suit == 4) or cards[0].suit == 4:
|
||||||
|
return 1
|
||||||
|
if not self.basicAcceptsCards(from_stack, cards):
|
||||||
|
return 0
|
||||||
|
return KingAC_RowStack.acceptsCards(self, from_stack, cards)
|
||||||
|
|
||||||
|
|
||||||
|
class JokeKlon(Klondike):
|
||||||
|
RowStack_Class = JokeKlon_RowStack
|
||||||
|
Foundation_Class = Wildcards_Foundation
|
||||||
|
|
||||||
|
|
||||||
|
class JokeKlonByThrees(KlondikeByThrees):
|
||||||
|
RowStack_Class = JokeKlon_RowStack
|
||||||
|
Foundation_Class = Wildcards_Foundation
|
||||||
|
|
||||||
|
|
||||||
# ************************************************************************
|
# ************************************************************************
|
||||||
# * Canister
|
# * Canister
|
||||||
# * American Canister
|
# * American Canister
|
||||||
|
@ -1768,3 +1793,9 @@ registerGame(GameInfo(954, Wildcards, "Wildcards",
|
||||||
GI.GT_BELEAGUERED_CASTLE | GI.GT_OPEN, 1, 0,
|
GI.GT_BELEAGUERED_CASTLE | GI.GT_OPEN, 1, 0,
|
||||||
GI.SL_MOSTLY_SKILL,
|
GI.SL_MOSTLY_SKILL,
|
||||||
subcategory=GI.GS_JOKER_DECK, trumps=list(range(2))))
|
subcategory=GI.GS_JOKER_DECK, trumps=list(range(2))))
|
||||||
|
registerGame(GameInfo(956, JokeKlon, "Joke Klon",
|
||||||
|
GI.GT_KLONDIKE, 1, -1, GI.SL_BALANCED,
|
||||||
|
subcategory=GI.GS_JOKER_DECK, trumps=list(range(2))))
|
||||||
|
registerGame(GameInfo(957, JokeKlonByThrees, "Joke Klon (Draw 3)",
|
||||||
|
GI.GT_KLONDIKE, 1, -1, GI.SL_MOSTLY_LUCK,
|
||||||
|
subcategory=GI.GS_JOKER_DECK, trumps=list(range(2))))
|
||||||
|
|
|
@ -1618,7 +1618,7 @@ r(165, BitsNBytes, 'Bits n Bytes', GI.GT_HEXADECK, 1, 1, GI.SL_BALANCED)
|
||||||
r(166, HexAKlon, 'Hex A Klon', GI.GT_HEXADECK, 1, -1, GI.SL_BALANCED)
|
r(166, HexAKlon, 'Hex A Klon', GI.GT_HEXADECK, 1, -1, GI.SL_BALANCED)
|
||||||
r(16666, KlondikePlus16, 'Klondike Plus 16', GI.GT_HEXADECK, 1, 1,
|
r(16666, KlondikePlus16, 'Klondike Plus 16', GI.GT_HEXADECK, 1, 1,
|
||||||
GI.SL_BALANCED)
|
GI.SL_BALANCED)
|
||||||
r(16667, HexAKlonByThrees, 'Hex A Klon by Threes', GI.GT_HEXADECK, 1, -1,
|
r(16667, HexAKlonByThrees, 'Hex A Klon (Draw 3)', GI.GT_HEXADECK, 1, -1,
|
||||||
GI.SL_BALANCED)
|
GI.SL_BALANCED)
|
||||||
r(16668, KingOnlyHexAKlon, 'King Only Hex A Klon', GI.GT_HEXADECK, 1, -1,
|
r(16668, KingOnlyHexAKlon, 'King Only Hex A Klon', GI.GT_HEXADECK, 1, -1,
|
||||||
GI.SL_BALANCED)
|
GI.SL_BALANCED)
|
||||||
|
|
Loading…
Add table
Reference in a new issue