mirror of
https://github.com/shlomif/PySolFC.git
synced 2025-04-05 00:02:29 -04:00
Compare commits
4 commits
054c0f0368
...
54a978b4e2
Author | SHA1 | Date | |
---|---|---|---|
|
54a978b4e2 | ||
|
5b9f64a7eb | ||
|
21c2780e8e | ||
|
ed2da8cd46 |
17 changed files with 63 additions and 36 deletions
12
html-src/rules/outbackpatience.html
Normal file
12
html-src/rules/outbackpatience.html
Normal file
|
@ -0,0 +1,12 @@
|
|||
<h1>Outback Patience</h1>
|
||||
<p>
|
||||
Yukon type. 2 decks. No redeal.
|
||||
|
||||
<h3>Object</h3>
|
||||
<p>
|
||||
Move all cards to the foundations.
|
||||
|
||||
<h3>Quick Description</h3>
|
||||
<p>
|
||||
Like <a href="austalianpatience.html">Australian Patience</a>,
|
||||
but with two decks, and eight piles of seven cards each.
|
|
@ -2653,7 +2653,7 @@ msgid "Automatic play"
|
|||
msgstr "Automatisierung"
|
||||
|
||||
#: pysollib/kivy/menubar.py:513
|
||||
msgid "Auto face up"
|
||||
msgid "Auto face-up"
|
||||
msgstr "Automatisch aufdecken"
|
||||
|
||||
#: pysollib/kivy/menubar.py:523
|
||||
|
@ -5174,7 +5174,7 @@ msgstr "Kommentare..."
|
|||
msgid "Log..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Demo Log..."
|
||||
msgid "Demo log..."
|
||||
msgstr ""
|
||||
|
||||
#: pysollib/ui/tktile/menubar.py:427
|
||||
|
|
|
@ -2694,7 +2694,7 @@ msgid "Automatic play"
|
|||
msgstr "Jouer auto"
|
||||
|
||||
#: pysollib/kivy/menubar.py:513
|
||||
msgid "Auto face up"
|
||||
msgid "Auto face-up"
|
||||
msgstr "Retourner auto"
|
||||
|
||||
#: pysollib/kivy/menubar.py:523
|
||||
|
@ -5225,7 +5225,7 @@ msgstr "&Commentaires..."
|
|||
msgid "Log..."
|
||||
msgstr "Journal..."
|
||||
|
||||
msgid "Demo Log..."
|
||||
msgid "Demo log..."
|
||||
msgstr ""
|
||||
|
||||
#: pysollib/ui/tktile/menubar.py:427
|
||||
|
|
|
@ -2707,7 +2707,7 @@ msgstr "Gioco automatico"
|
|||
|
||||
#: pysollib/kivy/menubar.py:513
|
||||
#, fuzzy
|
||||
msgid "Auto face up"
|
||||
msgid "Auto face-up"
|
||||
msgstr "Auto &scopri"
|
||||
|
||||
#: pysollib/kivy/menubar.py:523
|
||||
|
@ -5291,7 +5291,7 @@ msgstr "&Commenti..."
|
|||
msgid "Log..."
|
||||
msgstr "Log..."
|
||||
|
||||
msgid "Demo Log..."
|
||||
msgid "Demo log..."
|
||||
msgstr ""
|
||||
|
||||
#: pysollib/ui/tktile/menubar.py:427
|
||||
|
|
|
@ -2707,7 +2707,7 @@ msgid "Automatic play"
|
|||
msgstr "Gra &automatyczna"
|
||||
|
||||
#: pysollib/kivy/menubar.py:513
|
||||
msgid "Auto face up"
|
||||
msgid "Auto face-up"
|
||||
msgstr "Odkrywaj automatycznie"
|
||||
|
||||
#: pysollib/kivy/menubar.py:523
|
||||
|
@ -5245,7 +5245,7 @@ msgstr "Komentarze..."
|
|||
msgid "Log..."
|
||||
msgstr "Log..."
|
||||
|
||||
msgid "Demo Log..."
|
||||
msgid "Demo log..."
|
||||
msgstr ""
|
||||
|
||||
#: pysollib/ui/tktile/menubar.py:427
|
||||
|
|
|
@ -2715,7 +2715,7 @@ msgid "Automatic play"
|
|||
msgstr "Jogar automaticamente"
|
||||
|
||||
#: pysollib/kivy/menubar.py:513
|
||||
msgid "Auto face up"
|
||||
msgid "Auto face-up"
|
||||
msgstr "Virar pra cima automaticamente"
|
||||
|
||||
#: pysollib/kivy/menubar.py:523
|
||||
|
@ -5247,7 +5247,7 @@ msgstr "&Comentários..."
|
|||
msgid "Log..."
|
||||
msgstr "Registro"
|
||||
|
||||
msgid "Demo Log..."
|
||||
msgid "Demo log..."
|
||||
msgstr ""
|
||||
|
||||
#: pysollib/ui/tktile/menubar.py:427
|
||||
|
|
|
@ -2524,7 +2524,7 @@ msgid "Automatic play"
|
|||
msgstr ""
|
||||
|
||||
#: pysollib/kivy/menubar.py:513
|
||||
msgid "Auto face up"
|
||||
msgid "Auto face-up"
|
||||
msgstr ""
|
||||
|
||||
#: pysollib/kivy/menubar.py:523
|
||||
|
@ -4977,7 +4977,7 @@ msgstr ""
|
|||
msgid "Log..."
|
||||
msgstr ""
|
||||
|
||||
msgid "Demo Log..."
|
||||
msgid "Demo log..."
|
||||
msgstr ""
|
||||
|
||||
#: pysollib/ui/tktile/menubar.py:427
|
||||
|
|
|
@ -2713,7 +2713,7 @@ msgstr "Настройки &автоматической игры"
|
|||
|
||||
#: pysollib/kivy/menubar.py:513
|
||||
#, fuzzy
|
||||
msgid "Auto face up"
|
||||
msgid "Auto face-up"
|
||||
msgstr "Автоматически &переворачивать"
|
||||
|
||||
#: pysollib/kivy/menubar.py:523
|
||||
|
@ -5314,7 +5314,7 @@ msgstr "&Комментарии..."
|
|||
msgid "Log..."
|
||||
msgstr "Лог..."
|
||||
|
||||
msgid "Demo Log..."
|
||||
msgid "Demo log..."
|
||||
msgstr ""
|
||||
|
||||
#: pysollib/ui/tktile/menubar.py:427
|
||||
|
|
|
@ -320,7 +320,6 @@ class GI:
|
|||
904: 68, # Lexington Harp
|
||||
237: 22231, # Three Peaks
|
||||
297: 631, # Alternation/Alternations
|
||||
526: 447, # Australian/Outback Patience
|
||||
640: 566, # Hypotenuse/Brazilian Patience
|
||||
|
||||
# Lost Mahjongg Layouts
|
||||
|
@ -575,7 +574,7 @@ class GI:
|
|||
('fc-0.9.0', tuple(range(323, 421))),
|
||||
('fc-0.9.1', tuple(range(421, 441))),
|
||||
('fc-0.9.2', tuple(range(441, 466))),
|
||||
('fc-0.9.3', tuple(range(466, 661))),
|
||||
('fc-0.9.3', tuple(range(466, 526)) + tuple(range(527, 661))),
|
||||
('fc-0.9.4', tuple(range(661, 671))),
|
||||
('fc-1.0', tuple(range(671, 711))),
|
||||
('fc-1.1', tuple(range(711, 759))),
|
||||
|
@ -595,7 +594,7 @@ class GI:
|
|||
tuple(range(19000, 19012)) + tuple(range(22303, 22311)) +
|
||||
tuple(range(22353, 22361))),
|
||||
('fc-3.1', tuple(range(961, 971))),
|
||||
('dev', tuple(range(971, 973)) + tuple(range(18005, 18007))),
|
||||
('dev', tuple(range(971, 973)) + tuple(range(18005, 18007)) + (526,)),
|
||||
)
|
||||
|
||||
# deprecated - the correct way is to or a GI.GT_XXX flag
|
||||
|
|
|
@ -1266,10 +1266,12 @@ class Dashavatara(Game):
|
|||
# *
|
||||
# ***********************************************************************/
|
||||
|
||||
def r(id, gameclass, name, game_type, decks, redeals, skill_level):
|
||||
def r(id, gameclass, name, game_type, decks, redeals, skill_level,
|
||||
altnames=()):
|
||||
game_type = game_type | GI.GT_DASHAVATARA_GANJIFA
|
||||
gi = GameInfo(id, gameclass, name, game_type, decks, redeals, skill_level,
|
||||
suits=list(range(10)), ranks=list(range(12)))
|
||||
suits=list(range(10)), ranks=list(range(12)),
|
||||
altnames=altnames)
|
||||
registerGame(gi)
|
||||
return gi
|
||||
|
||||
|
|
|
@ -1605,11 +1605,12 @@ class MagicMontana(Montana):
|
|||
# ************************************************************************
|
||||
|
||||
|
||||
def r(id, gameclass, name, game_type, decks, redeals, skill_level):
|
||||
def r(id, gameclass, name, game_type, decks, redeals, skill_level,
|
||||
altnames=()):
|
||||
game_type = game_type | GI.GT_HEXADECK
|
||||
gi = GameInfo(id, gameclass, name, game_type, decks, redeals, skill_level,
|
||||
suits=list(range(4)), ranks=list(range(16)),
|
||||
trumps=list(range(4)))
|
||||
trumps=list(range(4)), altnames=altnames)
|
||||
registerGame(gi)
|
||||
return gi
|
||||
|
||||
|
@ -1633,7 +1634,7 @@ r(16674, HiddenPassages, 'Hidden Passages', GI.GT_HEXADECK, 1, 1,
|
|||
r(16675, CluitjarsLair, 'Cluitjar\'s Lair', GI.GT_HEXADECK, 1, 0,
|
||||
GI.SL_BALANCED)
|
||||
r(16676, MerlinsMeander, 'Merlin\'s Meander', GI.GT_HEXADECK, 2, 2,
|
||||
GI.SL_BALANCED)
|
||||
GI.SL_BALANCED, altnames=('Merlin\'s Coil'))
|
||||
r(16677, MagesGame, 'Mage\'s Game', GI.GT_HEXADECK | GI.GT_OPEN, 1, 0,
|
||||
GI.SL_BALANCED)
|
||||
r(16678, Convolution, 'Convolution', GI.GT_HEXADECK | GI.GT_OPEN, 2, 0,
|
||||
|
|
|
@ -1157,10 +1157,12 @@ class AshtaDikapala(Game):
|
|||
# *
|
||||
# ************************************************************************
|
||||
|
||||
def r(id, gameclass, name, game_type, decks, redeals, skill_level):
|
||||
def r(id, gameclass, name, game_type, decks, redeals, skill_level,
|
||||
altnames=()):
|
||||
game_type = game_type | GI.GT_MUGHAL_GANJIFA
|
||||
gi = GameInfo(id, gameclass, name, game_type, decks, redeals, skill_level,
|
||||
suits=list(range(8)), ranks=list(range(12)))
|
||||
suits=list(range(8)), ranks=list(range(12)),
|
||||
altnames=altnames)
|
||||
registerGame(gi)
|
||||
return gi
|
||||
|
||||
|
@ -1187,6 +1189,6 @@ r(16001, Danda, 'Danda', GI.GT_MUGHAL_GANJIFA, 1, 0, GI.SL_MOSTLY_SKILL)
|
|||
r(16002, Khadga, 'Khadga', GI.GT_MUGHAL_GANJIFA, 1, 0, GI.SL_MOSTLY_SKILL)
|
||||
r(16003, Makara, 'Makara', GI.GT_MUGHAL_GANJIFA, 1, 0, GI.SL_MOSTLY_SKILL)
|
||||
r(16004, AshtaDikapala, 'Ashta Dikapala', GI.GT_MUGHAL_GANJIFA, 1, 0,
|
||||
GI.SL_BALANCED)
|
||||
GI.SL_BALANCED, altnames=('Eight Guardians'))
|
||||
|
||||
del r
|
||||
|
|
|
@ -501,11 +501,11 @@ class TrumpsRow(Montana):
|
|||
# ************************************************************************
|
||||
|
||||
def r(id, gameclass, name, game_type, decks, redeals, skill_level,
|
||||
numcards=78):
|
||||
numcards=78, altnames=()):
|
||||
game_type = game_type | GI.GT_TAROCK | GI.GT_CONTRIB | GI.GT_ORIGINAL
|
||||
gi = GameInfo(id, gameclass, name, game_type, decks, redeals, skill_level,
|
||||
ranks=list(range(14)), trumps=list(range(22)),
|
||||
si={"ncards": numcards})
|
||||
altnames=altnames, si={"ncards": numcards})
|
||||
registerGame(gi)
|
||||
return gi
|
||||
|
||||
|
@ -519,7 +519,8 @@ r(13166, Serpent, 'Serpent', GI.GT_TAROCK | GI.GT_OPEN, 2, 0,
|
|||
GI.SL_MOSTLY_SKILL)
|
||||
r(13167, Rambling, 'Rambling', GI.GT_TAROCK | GI.GT_OPEN, 2, 0,
|
||||
GI.SL_MOSTLY_SKILL)
|
||||
r(13168, FoolsUp, "Fool's Up", GI.GT_TAROCK, 1, 0, GI.SL_LUCK)
|
||||
r(13168, FoolsUp, "Fool's Up", GI.GT_TAROCK, 1, 0, GI.SL_LUCK,
|
||||
altnames=('Solitairot'))
|
||||
r(13169, TrumpsRow, "Trumps Row", GI.GT_TAROCK, 1, 4, GI.SL_MOSTLY_SKILL,
|
||||
numcards=73)
|
||||
r(22232, LeGrandeTeton, 'Le Grande Teton', GI.GT_TAROCK, 1, 0, GI.SL_BALANCED)
|
||||
|
|
|
@ -472,6 +472,7 @@ class Panopticon(TenAcross):
|
|||
|
||||
# ************************************************************************
|
||||
# * Australian Patience
|
||||
# * Outback Patience
|
||||
# * Tasmanian Patience
|
||||
# * Canberra
|
||||
# * Raw Prawn
|
||||
|
@ -482,9 +483,9 @@ class AustralianPatience(RussianSolitaire):
|
|||
|
||||
RowStack_Class = StackWrapper(Yukon_SS_RowStack, base_rank=KING)
|
||||
|
||||
def createGame(self, rows=7, max_rounds=1, num_deal=1):
|
||||
def createGame(self, rows=7, max_rounds=1, num_deal=1, playcards=16):
|
||||
l, s = Layout(self), self.s
|
||||
Layout.klondikeLayout(l, rows=rows, waste=1)
|
||||
Layout.klondikeLayout(l, rows=rows, waste=1, playcards=playcards)
|
||||
self.setSize(l.size[0], l.size[1])
|
||||
s.talon = WasteTalonStack(l.s.talon.x, l.s.talon.y, self,
|
||||
max_rounds=max_rounds, num_deal=num_deal)
|
||||
|
@ -500,6 +501,14 @@ class AustralianPatience(RussianSolitaire):
|
|||
self._startDealNumRowsAndDealRowAndCards(3)
|
||||
|
||||
|
||||
class OutbackPatience(AustralianPatience):
|
||||
def createGame(self):
|
||||
AustralianPatience.createGame(self, rows=8, playcards=25)
|
||||
|
||||
def startGame(self):
|
||||
self._startDealNumRowsAndDealRowAndCards(6)
|
||||
|
||||
|
||||
class TasmanianPatience(AustralianPatience):
|
||||
def createGame(self):
|
||||
AustralianPatience.createGame(self, max_rounds=-1, num_deal=3)
|
||||
|
@ -895,8 +904,7 @@ registerGame(GameInfo(387, Roslin, "Roslin",
|
|||
GI.GT_YUKON, 1, 0, GI.SL_MOSTLY_SKILL,
|
||||
altnames=("Roslyn",)))
|
||||
registerGame(GameInfo(447, AustralianPatience, "Australian Patience",
|
||||
GI.GT_YUKON, 1, 0, GI.SL_BALANCED,
|
||||
altnames=('Outback Patience',)))
|
||||
GI.GT_YUKON, 1, 0, GI.SL_BALANCED))
|
||||
registerGame(GameInfo(450, RawPrawn, "Raw Prawn",
|
||||
GI.GT_YUKON, 1, 0, GI.SL_BALANCED))
|
||||
registerGame(GameInfo(456, BimBom, "Bim Bom",
|
||||
|
@ -909,6 +917,8 @@ registerGame(GameInfo(492, Geoffrey, "Geoffrey",
|
|||
GI.GT_YUKON, 1, 0, GI.SL_MOSTLY_SKILL))
|
||||
registerGame(GameInfo(525, Queensland, "Queensland",
|
||||
GI.GT_YUKON, 1, 0, GI.SL_BALANCED))
|
||||
registerGame(GameInfo(526, OutbackPatience, "Outback Patience",
|
||||
GI.GT_YUKON, 2, 0, GI.SL_BALANCED))
|
||||
registerGame(GameInfo(530, RussianSpider, "Russian Spider",
|
||||
GI.GT_SPIDER, 1, 0, GI.SL_BALANCED,
|
||||
altnames=('Ukrainian Solitaire',)))
|
||||
|
|
|
@ -571,7 +571,7 @@ class LOptionsMenuGenerator(LTreeGenerator):
|
|||
LTreeNode(text=_('Automatic play')))
|
||||
if rg:
|
||||
self.addCheckNode(tv, rg,
|
||||
_('Auto face up'),
|
||||
_('Auto face-up'),
|
||||
self.menubar.tkopt.autofaceup,
|
||||
self.menubar.mOptAutoFaceUp)
|
||||
|
||||
|
|
|
@ -259,7 +259,7 @@ class PysolMenubarTk:
|
|||
]
|
||||
for label, action, opt_name, update_game in (
|
||||
('A&uto drop', 'optautodrop', 'autodrop', False),
|
||||
('Auto &face up', '', 'autofaceup', False),
|
||||
('Auto &face-up', '', 'autofaceup', False),
|
||||
('Auto &deal', '', 'autodeal', False),
|
||||
('&Quick play', '', 'quickplay', False),
|
||||
('Enable &undo', '', 'undo', False),
|
||||
|
|
|
@ -621,7 +621,7 @@ class PysolMenubarTkCommon:
|
|||
label=n_("Log..."),
|
||||
command=lambda: self.mPlayerStats(mode=103))
|
||||
menu.add_command(
|
||||
label=n_("Demo Log..."),
|
||||
label=n_("Demo log..."),
|
||||
command=lambda: self.mPlayerStats(mode=1103))
|
||||
menu.add_separator()
|
||||
menu.add_command(
|
||||
|
@ -666,7 +666,7 @@ class PysolMenubarTkCommon:
|
|||
command=self.mOptPlayerOptions, accelerator=m+'P')
|
||||
submenu = MfxMenu(menu, label=n_("&Automatic play"))
|
||||
submenu.add_checkbutton(
|
||||
label=n_("Auto &face up"), variable=self.tkopt.autofaceup,
|
||||
label=n_("Auto &face-up"), variable=self.tkopt.autofaceup,
|
||||
command=self.mOptAutoFaceUp)
|
||||
submenu.add_checkbutton(
|
||||
label=n_("A&uto drop"), variable=self.tkopt.autodrop,
|
||||
|
|
Loading…
Add table
Reference in a new issue