1
0
Fork 0
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:
Joe R 2024-03-15 19:35:03 -04:00
parent b31ea75798
commit 572103b2c4
6 changed files with 88 additions and 28 deletions

View file

@ -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>

View 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>.

View 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.

View file

@ -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))),

View file

@ -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))))

View file

@ -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)