1
0
Fork 0
mirror of https://github.com/shlomif/PySolFC.git synced 2025-04-05 00:02:29 -04:00

Organized Double Montana/two deck Montana variants.

This commit is contained in:
Joe R 2022-12-21 20:54:14 -05:00
parent 0a55fffdb7
commit abd4b5327b
4 changed files with 38 additions and 11 deletions

View file

@ -1,17 +1,15 @@
<h1>Double Montana</h1> <h1>Double Montana</h1>
<p> <p>
Montana type. 2 decks. No redeal. Montana type. 2 decks. 2 redeals.
<h3>Object</h3> <h3>Object</h3>
<p> <p>
Group all the cards in sets of 13 cards in ascending sequence Group all the cards in sets of 12 cards in ascending sequence
by suit from Ace to King. by suit from Two to King.
<h3>Quick Description</h3> <h3>Quick Description</h3>
<p> <p>
Like <a href="montana.html">Montana</a>, but with two decks, Like <a href="montana.html">Montana</a>, but with two decks.
aces are included in the deal, leaving the leftmost spot in each row
empty, and there is no redeal.
<h3>Notes</h3> <h3>Notes</h3>
<p> <p>

View file

@ -0,0 +1,18 @@
<h1>Paganini II</h1>
<p>
Montana type. 2 decks. No redeal.
<h3>Object</h3>
<p>
Group all the cards in sets of 13 cards in ascending sequence
by suit from Ace to King.
<h3>Quick Description</h3>
<p>
Like <a href="montana.html">Montana</a>, but with two decks,
aces are included in the deal, leaving the leftmost spot in each row
empty, and there is no redeal.
<h3>Notes</h3>
<p>
<i>Autodrop</i> is disabled for this game.

View file

@ -548,7 +548,7 @@ class GI:
tuple(range(22217, 22219))), tuple(range(22217, 22219))),
('fc-2.14', tuple(range(811, 827))), ('fc-2.14', tuple(range(811, 827))),
('fc-2.15', tuple(range(827, 855)) + tuple(range(22400, 22407))), ('fc-2.15', tuple(range(827, 855)) + tuple(range(22400, 22407))),
('dev', tuple(range(855, 877))) ('dev', tuple(range(855, 878)))
) )
# deprecated - the correct way is to or a GI.GT_XXX flag # deprecated - the correct way is to or a GI.GT_XXX flag

View file

@ -597,9 +597,17 @@ class Spoilt(Game):
# ************************************************************************ # ************************************************************************
# * Double Montana # * Double Montana
# * Paganini II
# * Double Blue Moon
# * Double Red Moon
# ************************************************************************ # ************************************************************************
class DoubleMontana(Montana): class DoubleMontana(Montana):
Talon_Class = StackWrapper(Montana_Talon, max_rounds=3)
RLEN, RSTEP, RBASE = 104, 13, 1
class PaganiniII(DoubleMontana):
Talon_Class = InitialDealTalonStack Talon_Class = InitialDealTalonStack
Hint_Class = Galary_Hint Hint_Class = Galary_Hint
RLEN, RSTEP, RBASE = 112, 14, 0 RLEN, RSTEP, RBASE = 112, 14, 0
@ -610,7 +618,7 @@ class DoubleMontana(Montana):
def startGame(self): def startGame(self):
frames = 0 frames = 0
for i in range(self.RLEN): for i in range(self.RLEN):
if i == self.RLEN-self.RSTEP: # last row if i == self.RLEN - self.RSTEP: # last row
self.startDealSample() self.startDealSample()
frames = -1 frames = -1
if i % self.RSTEP == 0: # left column if i % self.RSTEP == 0: # left column
@ -618,7 +626,7 @@ class DoubleMontana(Montana):
self.s.talon.dealRow(rows=(self.s.rows[i],), frames=frames) self.s.talon.dealRow(rows=(self.s.rows[i],), frames=frames)
class DoubleBlueMoon(DoubleMontana, BlueMoon): class DoubleBlueMoon(PaganiniII, BlueMoon):
Talon_Class = StackWrapper(Montana_Talon, max_rounds=3) Talon_Class = StackWrapper(Montana_Talon, max_rounds=3)
RLEN, RSTEP, RBASE = 112, 14, 0 RLEN, RSTEP, RBASE = 112, 14, 0
@ -627,7 +635,7 @@ class DoubleBlueMoon(DoubleMontana, BlueMoon):
startGame = BlueMoon.startGame startGame = BlueMoon.startGame
class DoubleRedMoon(DoubleMontana, RedMoon): class DoubleRedMoon(PaganiniII, RedMoon):
Talon_Class = StackWrapper(Montana_Talon, max_rounds=3) Talon_Class = StackWrapper(Montana_Talon, max_rounds=3)
RLEN, RROWS = 112, 8 RLEN, RROWS = 112, 8
_shuffleHook = RedMoon._shuffleHook _shuffleHook = RedMoon._shuffleHook
@ -688,7 +696,7 @@ registerGame(GameInfo(706, Paganini, "Paganini",
registerGame(GameInfo(736, Spoilt, "Spoilt", registerGame(GameInfo(736, Spoilt, "Spoilt",
GI.GT_MONTANA | GI.GT_STRIPPED, 1, 0, GI.SL_MOSTLY_LUCK, GI.GT_MONTANA | GI.GT_STRIPPED, 1, 0, GI.SL_MOSTLY_LUCK,
ranks=(0, 6, 7, 8, 9, 10, 11, 12))) ranks=(0, 6, 7, 8, 9, 10, 11, 12)))
registerGame(GameInfo(759, DoubleMontana, "Double Montana", registerGame(GameInfo(759, PaganiniII, "Paganini II",
GI.GT_MONTANA | GI.GT_OPEN, 2, 0, GI.SL_MOSTLY_SKILL)) GI.GT_MONTANA | GI.GT_OPEN, 2, 0, GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(770, DoubleBlueMoon, "Double Blue Moon", registerGame(GameInfo(770, DoubleBlueMoon, "Double Blue Moon",
GI.GT_MONTANA | GI.GT_OPEN, 2, 2, GI.SL_MOSTLY_SKILL)) GI.GT_MONTANA | GI.GT_OPEN, 2, 2, GI.SL_MOSTLY_SKILL))
@ -705,3 +713,6 @@ registerGame(GameInfo(795, Pretzel, "Pretzel",
registerGame(GameInfo(858, Station, "Station", registerGame(GameInfo(858, Station, "Station",
GI.GT_MONTANA | GI.GT_OPEN, 1, 2, GI.SL_MOSTLY_SKILL, GI.GT_MONTANA | GI.GT_OPEN, 1, 2, GI.SL_MOSTLY_SKILL,
si={"ncards": 48})) si={"ncards": 48}))
registerGame(GameInfo(877, DoubleMontana, "Double Montana",
GI.GT_MONTANA | GI.GT_OPEN, 2, 2, GI.SL_MOSTLY_SKILL,
si={"ncards": 96}))