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,26 +1,26 @@
<h1>Hex A Klon by Three</h1>
Klondike type. One deck. Unlimited redeals.
<h3>Object</h3>
Move all cards to the Foundations.
<h3>Quick description</h3>
Similar to <a href="klondike.html">Klondike</a>
with <a href="../hexadeck.html">Hex A Deck</a>
variations.
<h3>Rules</h3>
Game play is like Klondike with the Wizards being wild. They can be played
on the tableau as any rank or color. Once a Wizard is played on a row however
that row may become unmovable. If a Wizard is played in it's proper rank
position the row can still be moved. A stack with two Wizards can be moved
only if they are both in their rank position and they are not adjacent to
each other. The Wizards will not move off of the tableau until all the other
cards have been moved to the foundations. Cards are dealt from the talon three
at a time. Any card or sequence may be played on the canvas. Cards may
be played from the foundations.
<h3>Strategy</h3>
Keep the Wizards off of piles that contain face down cards. Once all the
cards on the tableau are face up try to get the Wizards out of the way. Put
them all on one row stack until the suit cards have been moved to the foundations.
<h1>Hex A Klon (Draw 3)</h1>
Klondike type. One deck. Unlimited redeals.
<h3>Object</h3>
Move all cards to the Foundations.
<h3>Quick description</h3>
Similar to <a href="klondike.html">Klondike</a>
with <a href="../hexadeck.html">Hex A Deck</a>
variations.
<h3>Rules</h3>
Game play is like Klondike with the Wizards being wild. They can be played
on the tableau as any rank or color. Once a Wizard is played on a row however
that row may become unmovable. If a Wizard is played in it's proper rank
position the row can still be moved. A stack with two Wizards can be moved
only if they are both in their rank position and they are not adjacent to
each other. The Wizards will not move off of the tableau until all the other
cards have been moved to the foundations. Cards are dealt from the talon three
at a time. Any card or sequence may be played on the canvas. Cards may
be played from the foundations.
<h3>Strategy</h3>
Keep the Wizards off of piles that contain face down cards. Once all the
cards on the tableau are face up try to get the Wizards out of the way. Put
them all on one row stack until the suit cards have been moved to the foundations.

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.21', tuple(range(897, 900)) + tuple(range(11014, 11017)) +
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(19000, 19012)) + tuple(range(22303, 22311)) +
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[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
# * American Canister
@ -1768,3 +1793,9 @@ registerGame(GameInfo(954, Wildcards, "Wildcards",
GI.GT_BELEAGUERED_CASTLE | GI.GT_OPEN, 1, 0,
GI.SL_MOSTLY_SKILL,
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(16666, KlondikePlus16, 'Klondike Plus 16', GI.GT_HEXADECK, 1, 1,
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)
r(16668, KingOnlyHexAKlon, 'King Only Hex A Klon', GI.GT_HEXADECK, 1, -1,
GI.SL_BALANCED)