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

+ 3 new games

git-svn-id: file:///home/shlomif/Backup/svn-dumps/PySolFC/svnsync-repos/pysolfc/PySolFC/trunk@96 efabe8c0-fbe8-4139-b769-b5e6d273206e
This commit is contained in:
skomoroh 2006-11-14 23:32:21 +00:00
parent 7c17688df7
commit ad3267e063
8 changed files with 577 additions and 485 deletions

View file

@ -5,7 +5,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PySol 0.0.1\n" "Project-Id-Version: PySol 0.0.1\n"
"POT-Creation-Date: Sat Nov 11 14:41:04 2006\n" "POT-Creation-Date: Tue Nov 14 16:43:27 2006\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -3411,6 +3411,9 @@ msgstr ""
msgid "Theater" msgid "Theater"
msgstr "" msgstr ""
msgid "Thieves of Egypt"
msgstr ""
msgid "Thirteen Up" msgid "Thirteen Up"
msgstr "" msgstr ""
@ -3513,6 +3516,9 @@ msgstr ""
msgid "Triple FreeCell" msgid "Triple FreeCell"
msgstr "" msgstr ""
msgid "Triple Interchange"
msgstr ""
msgid "Triple Klondike" msgid "Triple Klondike"
msgstr "" msgstr ""

File diff suppressed because it is too large Load diff

View file

@ -5,8 +5,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PySol 0.0.1\n" "Project-Id-Version: PySol 0.0.1\n"
"POT-Creation-Date: Sat Nov 11 14:41:04 2006\n" "POT-Creation-Date: Tue Nov 14 16:43:27 2006\n"
"PO-Revision-Date: 2006-11-11 14:43+0300\n" "PO-Revision-Date: 2006-11-14 17:04+0300\n"
"Last-Translator: Скоморох <skomoroh@gmail.com>\n" "Last-Translator: Скоморох <skomoroh@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n" "Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -2691,7 +2691,7 @@ msgid "Pegged Triangle 2"
msgstr "" msgstr ""
msgid "Penelope's Web" msgid "Penelope's Web"
msgstr "" msgstr "Ткань Пенелопы"
msgid "Penguin" msgid "Penguin"
msgstr "Пингвин" msgstr "Пингвин"
@ -2734,7 +2734,7 @@ msgid "Pitchfork"
msgstr "Камертон" msgstr "Камертон"
msgid "Plait" msgid "Plait"
msgstr "" msgstr "Плетёнка"
msgid "Plus Belle" msgid "Plus Belle"
msgstr "" msgstr ""
@ -2785,7 +2785,7 @@ msgid "Pyramid Golf"
msgstr "Пирамидальный Гольф" msgstr "Пирамидальный Гольф"
msgid "Q.C." msgid "Q.C."
msgstr "" msgstr "Q.C."
msgid "Quad" msgid "Quad"
msgstr "Четвёрка" msgstr "Четвёрка"
@ -2878,7 +2878,7 @@ msgid "Relaxed Pyramid"
msgstr "Смягчённая Пирамида" msgstr "Смягчённая Пирамида"
msgid "Relaxed Seahaven Towers" msgid "Relaxed Seahaven Towers"
msgstr "" msgstr "Смягчённые Приморские башни"
msgid "Relaxed Spider" msgid "Relaxed Spider"
msgstr "Смягчённый Паук" msgstr "Смягчённый Паук"
@ -3264,9 +3264,8 @@ msgstr "Квадрат"
msgid "Squares" msgid "Squares"
msgstr "Квадраты" msgstr "Квадраты"
#, fuzzy
msgid "Squaring" msgid "Squaring"
msgstr "Квадрат" msgstr "Квадратура"
msgid "St. Helena" msgid "St. Helena"
msgstr "Св. Елена" msgstr "Св. Елена"
@ -3459,6 +3458,9 @@ msgstr "Желание (открытое)"
msgid "Theater" msgid "Theater"
msgstr "Театр" msgstr "Театр"
msgid "Thieves of Egypt"
msgstr "Египетский вор"
msgid "Thirteen Up" msgid "Thirteen Up"
msgstr "Тринадцать вверх" msgstr "Тринадцать вверх"
@ -3568,6 +3570,9 @@ msgstr ""
msgid "Triple FreeCell" msgid "Triple FreeCell"
msgstr "Тройная Свободная ячейка" msgstr "Тройная Свободная ячейка"
msgid "Triple Interchange"
msgstr "Тройная Перестановка"
msgid "Triple Klondike" msgid "Triple Klondike"
msgstr "Тройной Клондайк" msgstr "Тройной Клондайк"
@ -3617,9 +3622,8 @@ msgstr "Маджонг Two Domes"
msgid "Two Familiars" msgid "Two Familiars"
msgstr "Два знакомца" msgstr "Два знакомца"
#, fuzzy
msgid "Two Pyramids" msgid "Two Pyramids"
msgstr "Пирамида" msgstr "Две пирамиды"
msgid "Two Squares" msgid "Two Squares"
msgstr "Два квадрата" msgstr "Два квадрата"
@ -3794,6 +3798,3 @@ msgstr "Зигзагообразный курс"
msgid "Zodiac" msgid "Zodiac"
msgstr "Зодиак" msgstr "Зодиак"
#~ msgid "Troika +"
#~ msgstr "Тройка +"

File diff suppressed because it is too large Load diff

View file

@ -970,6 +970,7 @@ class DoubleGoldMine(Streets):
# // Breakwater # // Breakwater
# // Forty Nine # // Forty Nine
# // Alternations # // Alternations
# // Triple Interchange
# ************************************************************************/ # ************************************************************************/
class Interchange(FortyThieves): class Interchange(FortyThieves):
@ -992,7 +993,8 @@ class Interchange(FortyThieves):
class Unlimited(Interchange): class Unlimited(Interchange):
def createGame(self): def createGame(self):
FortyThieves.createGame(self, rows=7, max_rounds=UNLIMITED_REDEALS) FortyThieves.createGame(self, rows=7, XOFFSET=0,
max_rounds=UNLIMITED_REDEALS)
class Breakwater(Interchange): class Breakwater(Interchange):
@ -1027,6 +1029,22 @@ class Alternations(Interchange):
shallHighlightMatch = Game._shallHighlightMatch_AC shallHighlightMatch = Game._shallHighlightMatch_AC
class TripleInterchange(Interchange):
RowStack_Class = SS_RowStack
def createGame(self):
FortyThieves.createGame(self, rows=9, XOFFSET=0,
max_rounds=UNLIMITED_REDEALS)
def startGame(self):
for i in (0,1,2,3):
self.s.talon.dealRow(frames=0)
self.s.talon.dealRow(flip=0, frames=0)
self.startDealSample()
self.s.talon.dealRow()
self.s.talon.dealCards()
# /*********************************************************************** # /***********************************************************************
# // Indian Patience # // Indian Patience
# ************************************************************************/ # ************************************************************************/
@ -1219,4 +1237,6 @@ registerGame(GameInfo(631, Alternations, "Alternations",
GI.GT_FORTY_THIEVES, 2, 0, GI.SL_BALANCED)) GI.GT_FORTY_THIEVES, 2, 0, GI.SL_BALANCED))
registerGame(GameInfo(632, Floradora, "Floradora", registerGame(GameInfo(632, Floradora, "Floradora",
GI.GT_FORTY_THIEVES, 2, 0, GI.SL_MOSTLY_LUCK)) GI.GT_FORTY_THIEVES, 2, 0, GI.SL_MOSTLY_LUCK))
registerGame(GameInfo(679, TripleInterchange, "Triple Interchange",
GI.GT_FORTY_THIEVES, 3, -1, GI.SL_MOSTLY_SKILL))

View file

@ -291,6 +291,27 @@ class DoubleKingsley(DoubleKlondike):
DoubleKlondike.createGame(self, max_rounds=1) DoubleKlondike.createGame(self, max_rounds=1)
# /***********************************************************************
# // Thieves of Egypt
# ************************************************************************/
class ThievesOfEgypt(DoubleKlondike):
Layout_Method = Layout.klondikeLayout
def createGame(self):
DoubleKlondike.createGame(self, rows=10, max_rounds=2)
def startGame(self):
# rows: 1 3 5 7 9 10 8 6 4 2
row = 0
for i in (0,2,4,6,8,9,7,5,3,1):
for j in range(i):
self.s.talon.dealRow(rows=[self.s.rows[row]], frames=0)
row += 1
self.startDealSample()
self.s.talon.dealRow()
self.s.talon.dealCards() # deal first card to WasteStack
# register the game # register the game
registerGame(GameInfo(21, DoubleKlondike, "Double Klondike", registerGame(GameInfo(21, DoubleKlondike, "Double Klondike",
@ -325,6 +346,6 @@ registerGame(GameInfo(591, Pantagruel, "Pantagruel",
GI.GT_KLONDIKE, 2, 0, GI.SL_BALANCED)) GI.GT_KLONDIKE, 2, 0, GI.SL_BALANCED))
registerGame(GameInfo(668, DoubleKingsley, "Double Kingsley", registerGame(GameInfo(668, DoubleKingsley, "Double Kingsley",
GI.GT_KLONDIKE, 2, 0, GI.SL_BALANCED)) GI.GT_KLONDIKE, 2, 0, GI.SL_BALANCED))
registerGame(GameInfo(678, ThievesOfEgypt, "Thieves of Egypt",
GI.GT_KLONDIKE, 2, 1, GI.SL_BALANCED))

View file

@ -44,6 +44,7 @@ from pysollib.layout import Layout
from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint
from pysollib.hint import SpiderType_Hint, YukonType_Hint from pysollib.hint import SpiderType_Hint, YukonType_Hint
# /*********************************************************************** # /***********************************************************************
# // # //
# ************************************************************************/ # ************************************************************************/
@ -807,6 +808,7 @@ class SimonJester(Spider):
self.startDealSample() self.startDealSample()
self.s.talon.dealRow(rows=self.s.rows[1:]) self.s.talon.dealRow(rows=self.s.rows[1:])
# /*********************************************************************** # /***********************************************************************
# // Applegate # // Applegate
# ************************************************************************/ # ************************************************************************/
@ -1113,13 +1115,39 @@ class ScorpionII(Scorpion):
self.s.talon.dealRow() self.s.talon.dealRow()
# /***********************************************************************
# // Tarantula
# ************************************************************************/
class Tarantula_RowStack(Spider_RowStack):
def _isSequence(self, cards):
return isSameColorSequence(cards, self.cap.mod, self.cap.dir)
def _isAcceptableSequence(self, cards):
return isRankSequence(cards, self.cap.mod, self.cap.dir)
def getHelp(self):
return _('Tableau. Build down regardless of suit. Sequences of cards in the same color can be moved as a unit.')
class Tarantula(Spider):
RowStack_Class = Tarantula_RowStack
def getQuickPlayScore(self, ncards, from_stack, to_stack):
if to_stack.cards:
if from_stack.cards[-1].suit == to_stack.cards[-1].suit:
# same suit
return 3
elif from_stack.cards[-1].color == to_stack.cards[-1].color:
# same color
return 2
return 1
return 0
# register the game # register the game
registerGame(GameInfo(10, RelaxedSpider, "Relaxed Spider", registerGame(GameInfo(10, RelaxedSpider, "Relaxed Spider",
GI.GT_SPIDER | GI.GT_RELAXED, 2, 0, GI.SL_MOSTLY_SKILL)) GI.GT_SPIDER | GI.GT_RELAXED, 2, 0, GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(11, Spider, "Spider", registerGame(GameInfo(11, Spider, "Spider",
GI.GT_SPIDER, 2, 0, GI.SL_MOSTLY_SKILL, GI.GT_SPIDER, 2, 0, GI.SL_MOSTLY_SKILL))
altnames=("Tarantula",) ))
registerGame(GameInfo(49, BlackWidow, "Black Widow", registerGame(GameInfo(49, BlackWidow, "Black Widow",
GI.GT_SPIDER, 2, 0, GI.SL_MOSTLY_SKILL, GI.GT_SPIDER, 2, 0, GI.SL_MOSTLY_SKILL,
altnames=("Scarab",) )) altnames=("Scarab",) ))
@ -1230,4 +1258,6 @@ registerGame(GameInfo(671, Incompatibility, "Incompatibility",
GI.GT_SPIDER, 2, 0, GI.SL_MOSTLY_SKILL)) GI.GT_SPIDER, 2, 0, GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(672, ScorpionII, "Scorpion II", registerGame(GameInfo(672, ScorpionII, "Scorpion II",
GI.GT_SPIDER, 1, 0, GI.SL_MOSTLY_SKILL)) GI.GT_SPIDER, 1, 0, GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(680, Tarantula, "Tarantula",
GI.GT_SPIDER, 2, 0, GI.SL_MOSTLY_SKILL))

View file

@ -54,11 +54,13 @@ def init():
if os.environ.has_key('PYSOL_CHECK_GAMES') or \ if os.environ.has_key('PYSOL_CHECK_GAMES') or \
os.environ.has_key('PYSOL_DEBUG'): os.environ.has_key('PYSOL_DEBUG'):
settings.CHECK_GAMES = True settings.CHECK_GAMES = True
print 'PySol debugging: set CHECK_GAMES to True'
if os.environ.has_key('PYSOL_DEBUG'): if os.environ.has_key('PYSOL_DEBUG'):
try: try:
settings.DEBUG = int(os.environ['PYSOL_DEBUG']) settings.DEBUG = int(os.environ['PYSOL_DEBUG'])
except: except:
settings.DEBUG = 1 settings.DEBUG = 1
print 'PySol debugging: set DEBUG to', settings.DEBUG
## init toolkit ## init toolkit
if '--gtk' in sys.argv: if '--gtk' in sys.argv: