1
0
Fork 0
mirror of https://github.com/shlomif/PySolFC.git synced 2025-04-22 03:04:09 -04:00

Add Sevastopol game

This commit is contained in:
Joe R 2024-06-23 20:22:59 -04:00
parent b62630ab5f
commit b3c8390fac
3 changed files with 39 additions and 4 deletions

View file

@ -0,0 +1,18 @@
<h1>Sevastopol</h1>
<p>
Spider type. 1 deck. No redeal.
<h3>Object</h3>
<p>
Group all the cards in sets of 13 cards in descending sequence
by suit from King to Ace and move such sets to the foundations.
<h3>Quick Description</h3>
<p>
Like <a href="kiev.html">Kiev</a>, but four of the tableau piles
are only dealt three cards.
<h3>Notes</h3>
<p>
Sevastopol was invented by Jan Wolter, and first appeared in his
app <a href="https://politaire.com">Politaire</a>.

View file

@ -516,7 +516,7 @@ class GI:
800, 814, 820, 825, 889, 911, 926, 800, 814, 820, 825, 889, 911, 926,
941)), 941)),
("Mary Whitmore Jones", (421, 624,)), ("Mary Whitmore Jones", (421, 624,)),
("Jan Wolter", (917, 939, 946,)), ("Jan Wolter", (917, 939, 946, 963,)),
) )
GAMES_BY_PYSOL_VERSION = ( GAMES_BY_PYSOL_VERSION = (
@ -604,7 +604,7 @@ class GI:
tuple(range(13168, 13170)) + tuple(range(18000, 18005)) + tuple(range(13168, 13170)) + 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))),
('dev', tuple(range(961, 963))), ('dev', tuple(range(961, 964))),
) )
# 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

@ -570,8 +570,6 @@ class Queensland(Yukon):
# ************************************************************************ # ************************************************************************
# * Russian Spider # * Russian Spider
# * Double Russian Spider # * Double Russian Spider
# * Kiev
# * Dnieper
# ************************************************************************ # ************************************************************************
class RussianSpider_RowStack(Yukon_SS_RowStack): # Spider_SS_RowStack class RussianSpider_RowStack(Yukon_SS_RowStack): # Spider_SS_RowStack
@ -600,6 +598,12 @@ class DoubleRussianSpider(RussianSpider, DoubleRussianSolitaire):
DoubleRussianSolitaire.startGame(self) DoubleRussianSolitaire.startGame(self)
# ************************************************************************
# * Kiev
# * Dnieper
# * Sevastopol
# ************************************************************************
class Kiev(RussianSpider): class Kiev(RussianSpider):
RowStack_Class = RussianSpider_RowStack RowStack_Class = RussianSpider_RowStack
Layout_Method = staticmethod(Layout.klondikeLayout) Layout_Method = staticmethod(Layout.klondikeLayout)
@ -618,6 +622,17 @@ class Dnieper(Kiev):
RowStack_Class = StackWrapper(RussianSpider_RowStack, mod=13) RowStack_Class = StackWrapper(RussianSpider_RowStack, mod=13)
class Sevastopol(Kiev):
def startGame(self):
for i in range(2):
self.s.talon.dealRow(flip=0, frames=0)
r = self.s.rows
rows = (r[1], r[3], r[5])
self.s.talon.dealRow(rows=rows, flip=0, frames=0)
self._startAndDealRow()
# ************************************************************************ # ************************************************************************
# * Brisbane # * Brisbane
# ************************************************************************ # ************************************************************************
@ -916,3 +931,5 @@ registerGame(GameInfo(936, YukonKings, "Yukon Kings",
GI.GT_YUKON, 1, 0, GI.SL_BALANCED)) GI.GT_YUKON, 1, 0, GI.SL_BALANCED))
registerGame(GameInfo(942, QuadrupleYukon, "Quadruple Yukon", registerGame(GameInfo(942, QuadrupleYukon, "Quadruple Yukon",
GI.GT_YUKON, 4, 0, GI.SL_BALANCED)) GI.GT_YUKON, 4, 0, GI.SL_BALANCED))
registerGame(GameInfo(963, Sevastopol, "Sevastopol",
GI.GT_SPIDER, 1, 0, GI.SL_BALANCED))