From 3d6636ee2ebdecbba953bf1b68f877f4149f5760 Mon Sep 17 00:00:00 2001 From: skomoroh Date: Sun, 1 Oct 2006 21:09:18 +0000 Subject: [PATCH] + 2 new games * updated translation * misc. improvements and bugs fixes git-svn-id: file:///home/shlomif/Backup/svn-dumps/PySolFC/svnsync-repos/pysolfc/PySolFC/trunk@75 efabe8c0-fbe8-4139-b769-b5e6d273206e --- po/ru_games.po | 98 +++++++++++++++----------------------- pysollib/games/golf.py | 56 ++++++++++++++++++++-- pysollib/games/gypsy.py | 10 ++-- pysollib/games/klondike.py | 2 + pysollib/stack.py | 1 + 5 files changed, 99 insertions(+), 68 deletions(-) diff --git a/po/ru_games.po b/po/ru_games.po index 208b853a..3558ae23 100644 --- a/po/ru_games.po +++ b/po/ru_games.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: PySol 0.0.1\n" "POT-Creation-Date: Thu Sep 21 15:56:22 2006\n" -"PO-Revision-Date: 2006-09-17 17:05+0400\n" +"PO-Revision-Date: 2006-09-30 18:19+0400\n" "Last-Translator: Скоморох \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" @@ -47,13 +47,11 @@ msgstr "8 x 8" msgid "Abacus" msgstr "Абак" -#, fuzzy msgid "Accordion" -msgstr "Скорпион" +msgstr "Аккордеон" -#, fuzzy msgid "Aces High" -msgstr "Тузы вверх" +msgstr "Тузы сверху" msgid "Aces Up" msgstr "Тузы вверх" @@ -211,11 +209,10 @@ msgid "Balance" msgstr "Баланс" msgid "Balarama" -msgstr "" +msgstr "Баларама" -#, fuzzy msgid "Baroness" -msgstr "Основа" +msgstr "Баронесса" msgid "Bastille Day" msgstr "День Бастилии" @@ -244,7 +241,6 @@ msgstr "Клюв и ласты" msgid "Beatle" msgstr "Жук" -#, fuzzy msgid "Beetle" msgstr "Жук" @@ -272,9 +268,8 @@ msgstr "Большой Внутренний двор" msgid "Big Deal" msgstr "Большая Расдача" -#, fuzzy msgid "Big Divorce" -msgstr "Большая дыра" +msgstr "Большой разрыв" #, fuzzy msgid "Big Easy" @@ -283,9 +278,8 @@ msgstr "Большая арфа" msgid "Big Flying Dragon" msgstr "Большой Летящий Дракон" -#, fuzzy msgid "Big Forty" -msgstr "Форт" +msgstr "Большие сорок" msgid "Big Harp" msgstr "Большая арфа" @@ -383,12 +377,11 @@ msgstr "Мост" msgid "Bridge 2" msgstr "Мост 2" -#, fuzzy msgid "Bridget's Game" -msgstr "Мост 2" +msgstr "Пасьянс Бриджит" msgid "Bridget's Game Doubled" -msgstr "" +msgstr "Двойной Пасьянс Бриджит" msgid "Brigade" msgstr "Бригада" @@ -518,7 +511,7 @@ msgid "Chelicera" msgstr "Хелицера" msgid "Cheops" -msgstr "" +msgstr "Хеопс" msgid "Chequers" msgstr "Шахматный порядок" @@ -596,9 +589,8 @@ msgstr "Виток" msgid "Corkscrew" msgstr "Штопор" -#, fuzzy msgid "Corner Card" -msgstr "Углы" +msgstr "Угловая карта" msgid "Corner Suite" msgstr "Угловые масти" @@ -907,9 +899,8 @@ msgstr "Восемь квадратов" msgid "Eight Times Eight" msgstr "Восемь раз по восемь" -#, fuzzy msgid "Eight by Eight" -msgstr "Восемь раз по восемь" +msgstr "Восемь на восемь" msgid "Elba" msgstr "Ельба" @@ -991,12 +982,11 @@ msgstr "Очаровательный веер" msgid "Fastness" msgstr "Крепость" -#, fuzzy msgid "Fatimeh's Game" -msgstr "Бабушкина игра" +msgstr "Пасьянс Фатимы" msgid "Fatimeh's Game Relaxed" -msgstr "" +msgstr "Облегчённый Пасьянс Фатимы" #, fuzzy msgid "Fifteen Puzzle" @@ -1030,9 +1020,8 @@ msgstr "Маджонг Fish face" msgid "Five Aces" msgstr "Пять тузов" -#, fuzzy msgid "Five Piles" -msgstr "Пять тузов" +msgstr "Пять кучек" msgid "Five Pyramids" msgstr "Пять пирамид" @@ -1043,9 +1032,8 @@ msgstr "Фламенко" msgid "Floating City" msgstr "Плавающий город" -#, fuzzy msgid "Floradora" -msgstr "Колорадо" +msgstr "Флорадора" msgid "Flower Arrangement" msgstr "Аранжировка цветов" @@ -1392,9 +1380,8 @@ msgstr "Дурацкое удовольствие" msgid "Idle Aces" msgstr "Свободные тузы" -#, fuzzy msgid "Idle Year" -msgstr "Свободные тузы" +msgstr "Свободный год" msgid "IloveU" msgstr "IloveU" @@ -1498,26 +1485,25 @@ msgid "K for Kyodai" msgstr "Маджонг K for Kyodai" msgid "Kali's Game" -msgstr "" +msgstr "Пасьянс Кали" msgid "Kali's Game Doubled" -msgstr "" +msgstr "Двойной Пасьянс Кали" msgid "Kali's Game Relaxed" -msgstr "" +msgstr "Облегчённый Пасьянс Кали" msgid "Kansas" msgstr "Канзас" -#, fuzzy msgid "Katrina's Game" -msgstr "Бабушкина игра" +msgstr "Пасьянс Катрины" msgid "Katrina's Game Doubled" -msgstr "" +msgstr "Двойной Пасьянс Катрины" msgid "Katrina's Game Relaxed" -msgstr "" +msgstr "Облегчённый Пасьянс Катрины" msgid "Khadga" msgstr "Khadga" @@ -1546,9 +1532,8 @@ msgstr "" msgid "Klondike" msgstr "Клондайк" -#, fuzzy msgid "Klondike Plus 16" -msgstr "Клондайк" +msgstr "Клондайк Плюс 16" msgid "Klondike by Threes" msgstr "Клондайк по три" @@ -1660,15 +1645,14 @@ msgstr "Ленивая леди" msgid "Lanes" msgstr "Тропинки" -#, fuzzy msgid "Lara's Game" -msgstr "Бабушкина игра" +msgstr "Пасьянс Лары" msgid "Lara's Game Doubled" -msgstr "" +msgstr "Двойной Пасьянс Лары" msgid "Lara's Game Relaxed" -msgstr "" +msgstr "Облегчённый Пасьянс Лары" msgid "Last Chance" msgstr "Последний шанс" @@ -1713,9 +1697,8 @@ msgstr "Малыш Билли" msgid "Little Easy" msgstr "Малые ворота" -#, fuzzy msgid "Little Forty" -msgstr "Малые ворота" +msgstr "Малые сорок" msgid "Little Gate" msgstr "Малые ворота" @@ -1753,9 +1736,8 @@ msgstr "Счастливые Тринадцать" msgid "Madame" msgstr "Мадам" -#, fuzzy msgid "Mage's Game" -msgstr "Бабушкина игра" +msgstr "Пасьянс Меги" msgid "Mahjongg Altar" msgstr "Маджонг Алтарь" @@ -2701,9 +2683,8 @@ msgstr "Настойчивость" msgid "Phantom Blockade" msgstr "Призрачная блокада" -#, fuzzy msgid "Pharaohs" -msgstr "Патриархи" +msgstr "Фараоны" msgid "Phoenix" msgstr "Феникс" @@ -3042,7 +3023,7 @@ msgid "Senate +" msgstr "Сенат +" msgid "Senior Wrangler" -msgstr "" +msgstr "Сеньор Врангель" msgid "Serpent" msgstr "Змея" @@ -3149,7 +3130,7 @@ msgid "Sixes and Sevens" msgstr "Шестёрки и семёрки" msgid "Skippy" -msgstr "" +msgstr "Попрыгунчик" msgid "Skiz" msgstr "" @@ -3303,7 +3284,7 @@ msgid "Storehouse" msgstr "Сокровищница" msgid "Straight Up" -msgstr "" +msgstr "Прямолинейный" msgid "Strata" msgstr "Пласт" @@ -3326,7 +3307,7 @@ msgstr "Улицы и аллеи" #, fuzzy msgid "Striptease" -msgstr "Пласт" +msgstr "Стриптиз" msgid "Stronghold" msgstr "Твердыня" @@ -3349,9 +3330,8 @@ msgstr "Турецкий султан" msgid "Sumo" msgstr "Сумо" -#, fuzzy msgid "SunMoon" -msgstr "Голубая луна" +msgstr "СолнцеЛуна" msgid "Super Challenge FreeCell" msgstr "Очень Сложная Свободная ячейка" @@ -3502,9 +3482,8 @@ msgstr "Маджонг Totally Random-Made" msgid "Tournament" msgstr "Турнир" -#, fuzzy msgid "Tower of Babel" -msgstr "Ханойская башня" +msgstr "Вавилонская башня" msgid "Tower of Hanoy" msgstr "Ханойская башня" @@ -3622,9 +3601,8 @@ msgstr "" msgid "Vamana" msgstr "" -#, fuzzy msgid "Vanishing Cross" -msgstr "Маджонг Крест" +msgstr "Исчезающий Крест" #, fuzzy msgid "Varaha" @@ -3643,7 +3621,7 @@ msgid "Vertical" msgstr "Вертикаль" msgid "Very Big Divorce" -msgstr "" +msgstr "Очень большой разрыв" msgid "Vi" msgstr "" diff --git a/pysollib/games/golf.py b/pysollib/games/golf.py index 51eb939a..1e77d66f 100644 --- a/pysollib/games/golf.py +++ b/pysollib/games/golf.py @@ -506,9 +506,6 @@ class Robert(Game): DIAMOND = 3 -class DiamondMine_Foundation(AbstractFoundationStack): - pass - class DiamondMine_RowStack(RK_RowStack): def acceptsCards(self, from_stack, cards): if not RK_RowStack.acceptsCards(self, from_stack, cards): @@ -558,6 +555,55 @@ class DiamondMine(Game): shallHighlightMatch = Game._shallHighlightMatch_RK +# /*********************************************************************** +# // Dolphin +# ************************************************************************/ + +class Dolphin(Game): + + def createGame(self, rows=8, reserves=4, playcards=6): + l, s = Layout(self), self.s + self.setSize(l.XM+rows*l.XS, l.YM+3*l.YS+playcards*l.YOFFSET) + + dx = (self.width-l.XM-(reserves+1)*l.XS)/3 + x, y = l.XM+dx, l.YM + for i in range(reserves): + s.reserves.append(ReserveStack(x, y, self)) + x += l.XS + x += dx + max_cards = 52*self.gameinfo.decks + s.foundations.append(RK_FoundationStack(x, y, self, + base_rank=ANY_RANK, mod=13, max_cards=max_cards)) + x, y = l.XM, l.YM+l.YS + for i in range(rows): + s.rows.append(BasicRowStack(x, y, self)) + x += l.XS + s.talon = InitialDealTalonStack(l.XM, self.height-l.YS, self) + + l.defaultAll() + + def startGame(self): + for i in range(5): + self.s.talon.dealRow(frames=0) + self.startDealSample() + self.s.talon.dealRow() + self.s.talon.dealRowAvail() + + +class DoubleDolphin(Dolphin): + + def createGame(self): + Dolphin.createGame(self, rows=10, reserves=5, playcards=10) + + def startGame(self): + for i in range(9): + self.s.talon.dealRow(frames=0) + self.startDealSample() + self.s.talon.dealRow() + self.s.talon.dealRowAvail() + + + # register the game registerGame(GameInfo(36, Golf, "Golf", GI.GT_GOLF, 1, 0, GI.SL_BALANCED)) @@ -580,4 +626,8 @@ registerGame(GameInfo(432, Robert, "Robert", GI.GT_GOLF, 1, 2, GI.SL_LUCK)) registerGame(GameInfo(551, DiamondMine, "Diamond Mine", GI.GT_1DECK_TYPE, 1, 0, GI.SL_BALANCED)) +registerGame(GameInfo(661, Dolphin, "Dolphin", + GI.GT_GOLF, 1, 0, GI.SL_MOSTLY_SKILL | GI.GT_ORIGINAL)) +registerGame(GameInfo(662, DoubleDolphin, "Double Dolphin", + GI.GT_GOLF, 2, 0, GI.SL_MOSTLY_SKILL | GI.GT_ORIGINAL)) diff --git a/pysollib/games/gypsy.py b/pysollib/games/gypsy.py index 718cf761..bf59c31a 100644 --- a/pysollib/games/gypsy.py +++ b/pysollib/games/gypsy.py @@ -233,7 +233,7 @@ class MissMilligan(Gypsy): l, s = Layout(self), self.s # set window - self.setSize(l.XM + (1+max(8,rows))*l.XS, l.YM + (1+max(4, reserves))*l.YS) + self.setSize(l.XM + (1+max(8,rows))*l.XS, l.YM + (1+max(4, reserves))*l.YS+l.TEXT_HEIGHT) # create stacks x, y = l.XM, l.YM @@ -242,14 +242,14 @@ class MissMilligan(Gypsy): x = x + l.XS s.foundations.append(self.Foundation_Class(x, y, self, suit=i/2)) x, y = l.XM, y + l.YS - rx, ry = x + l.XS - l.XM/2, y - l.YM/2 + rx, ry = x + l.XS - l.CW/2, y - l.CH/2 for i in range(reserves): - s.reserves.append(self.ReserveStack_Class(x, y, self)) + s.reserves.append(self.ReserveStack_Class(x, y+l.TEXT_HEIGHT, self)) y = y + l.YS + l.createText(s.talon, "s") if s.reserves: - self.setRegion(s.reserves, (-999, ry, rx - 1, 999999)) + self.setRegion(s.reserves, (-999, ry+l.TEXT_HEIGHT, rx-1, 999999)) else: - l.createText(s.talon, "s") rx = -999 x, y = l.XM + (8-rows)*l.XS/2, l.YM + l.YS for i in range(rows): diff --git a/pysollib/games/klondike.py b/pysollib/games/klondike.py index 155845a5..149912f1 100644 --- a/pysollib/games/klondike.py +++ b/pysollib/games/klondike.py @@ -168,6 +168,8 @@ class Chinaman(ThumbAndPouch): class Whitehead_RowStack(SS_RowStack): def _isAcceptableSequence(self, cards): return isSameColorSequence(cards, self.cap.mod, self.cap.dir) + def getHelp(self): + return _('Tableau. Build down by color.') class Whitehead(Klondike): RowStack_Class = Whitehead_RowStack diff --git a/pysollib/stack.py b/pysollib/stack.py index 46099155..8a3c900a 100644 --- a/pysollib/stack.py +++ b/pysollib/stack.py @@ -937,6 +937,7 @@ class Stack: self.game.event_handled = True # for Game.undoHandler if self.game.demo: self.game.stopDemo(event) + return EVENT_HANDLED self.game.interruptSleep() if self.game.busy: return EVENT_HANDLED if self.game.drag.stack and cancel_drag: