diff --git a/html-src/rules/mainecoon.html b/html-src/rules/mainecoon.html new file mode 100644 index 00000000..a08b8006 --- /dev/null +++ b/html-src/rules/mainecoon.html @@ -0,0 +1,12 @@ +

Maine Coon

+

+Two-Deck game type. 2 decks. No redeal. + +

Object

+

+Move all cards to the foundation. + +

Rules

+

+Like Tabby Cat, but with 2 decks and 8 +foundations. diff --git a/html-src/rules/manx.html b/html-src/rules/manx.html new file mode 100644 index 00000000..22fcdce2 --- /dev/null +++ b/html-src/rules/manx.html @@ -0,0 +1,12 @@ +

Manx

+

+One-Deck game type. 1 deck. No redeal. + +

Object

+

+Move all cards to the foundation. + +

Rules

+

+Like Tabby Cat, but the reserve may hold +only a single card. diff --git a/html-src/rules/tabbycat.html b/html-src/rules/tabbycat.html new file mode 100644 index 00000000..c84badc3 --- /dev/null +++ b/html-src/rules/tabbycat.html @@ -0,0 +1,19 @@ +

Tabby Cat

+

+One-Deck game type. 1 deck. No redeal. + +

Object

+

+Move all cards to the foundation. + +

Rules

+

+Foundations are built up from Ace to King, regardless of suit. One +must move an entire Ace-to-King sequence to a foundation as one move. +

+The playing piles build down by rank, regardless of suit. A king may +be played on an ace.. An empty pile can receive any card, or +sequence. +

+When no more moves are possible, click on the talon. One card will be +added to each of the playing piles. diff --git a/po/games.pot b/po/games.pot index 8218c7db..a54c50b4 100644 --- a/po/games.pot +++ b/po/games.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PySol 0.0.1\n" -"POT-Creation-Date: Sat Sep 1 22:26:18 2007\n" +"POT-Creation-Date: Wed Sep 5 17:37:12 2007\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2418,6 +2418,9 @@ msgstr "" msgid "Mahjongg Yummy" msgstr "" +msgid "Maine Coon" +msgstr "" + msgid "Makara" msgstr "" @@ -2427,6 +2430,9 @@ msgstr "" msgid "Mancunian" msgstr "" +msgid "Manx" +msgstr "" + msgid "Maria" msgstr "" @@ -3507,6 +3513,9 @@ msgstr "" msgid "Sweet Sixteen" msgstr "" +msgid "Tabby Cat" +msgstr "" + msgid "Taipei" msgstr "" diff --git a/po/pysol.pot b/po/pysol.pot index df43fcf6..021bb338 100644 --- a/po/pysol.pot +++ b/po/pysol.pot @@ -14,7 +14,7 @@ msgid "" msgstr "" "#-#-#-#-# pysol-1.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: Sat Sep 1 22:27:31 2007\n" +"POT-Creation-Date: Wed Sep 5 17:38:29 2007\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -24,7 +24,7 @@ msgstr "" "Generated-By: pygettext.py 1.6con\n" "#-#-#-#-# pysol-2.pot (PACKAGE VERSION) #-#-#-#-#\n" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2007-09-01 22:27+0400\n" +"POT-Creation-Date: 2007-09-05 17:38+0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -762,13 +762,13 @@ msgid "" msgstr "" #: pysollib/games/canfield.py:544 pysollib/games/special/tarock.py:224 -#: pysollib/stack.py:1568 pysollib/util.py:78 pysollib/wizardutil.py:158 +#: pysollib/stack.py:1569 pysollib/util.py:78 pysollib/wizardutil.py:158 #: pysollib/wizardutil.py:216 msgid "King" msgstr "" #: pysollib/games/canfield.py:549 pysollib/games/special/tarock.py:224 -#: pysollib/stack.py:1567 pysollib/util.py:78 +#: pysollib/stack.py:1568 pysollib/util.py:78 msgid "Queen" msgstr "" @@ -793,12 +793,12 @@ msgid "Waste. Build up or down regardless of suit." msgstr "" #: pysollib/games/golf.py:117 pysollib/games/golf.py:305 -#: pysollib/stack.py:2321 +#: pysollib/stack.py:2330 msgid "Tableau. No building." msgstr "" #: pysollib/games/golf.py:390 pysollib/games/pileon.py:255 -#: pysollib/stack.py:2210 +#: pysollib/stack.py:2211 msgid "Foundation. Build up regardless of suit." msgstr "" @@ -812,11 +812,11 @@ msgid "" "moved as a unit." msgstr "" -#: pysollib/games/klondike.py:449 +#: pysollib/games/klondike.py:450 msgid "Reserve. Only Kings are acceptable." msgstr "" -#: pysollib/games/larasgame.py:163 pysollib/stack.py:1781 +#: pysollib/games/larasgame.py:163 pysollib/stack.py:1782 msgid "Round %d" msgstr "" @@ -890,7 +890,7 @@ msgid "Deal %d" msgstr "" #: pysollib/games/numerica.py:263 pysollib/games/royalcotillion.py:912 -#: pysollib/stack.py:2253 +#: pysollib/stack.py:2254 msgid "Foundation. Build up by color." msgstr "" @@ -956,7 +956,7 @@ msgstr "" #: pysollib/games/special/tarock.py:223 #: pysollib/games/ultra/dashavatara.py:351 #: pysollib/games/ultra/hexadeck.py:273 pysollib/games/ultra/mughal.py:254 -#: pysollib/stack.py:1569 pysollib/util.py:77 pysollib/wizardutil.py:157 +#: pysollib/stack.py:1570 pysollib/util.py:77 pysollib/wizardutil.py:157 #: pysollib/wizardutil.py:161 pysollib/wizardutil.py:215 msgid "Ace" msgstr "" @@ -1299,10 +1299,9 @@ msgid "" "PySol Fan Club edition\n" "%s%s\n" "\n" -"Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003\n" -"Markus F.X.J. Oberhumer\n" +"Copyright (C) 1998 - 2003 Markus F.X.J. Oberhumer.\n" "Copyright (C) 2003 Mt. Hood Playing Card Co.\n" -"Copyright (C) 2005 Skomoroh\n" +"Copyright (C) 2005 - 2007 Skomoroh.\n" "All Rights Reserved.\n" "\n" "PySol is free software distributed under the terms\n" @@ -1311,11 +1310,11 @@ msgid "" "For more information about this application visit" msgstr "" -#: pysollib/help.py:93 +#: pysollib/help.py:92 msgid "Credits" msgstr "" -#: pysollib/help.py:94 +#: pysollib/help.py:93 msgid "" " credits go to:\n" "\n" @@ -1330,15 +1329,15 @@ msgid "" "for making this program possible" msgstr "" -#: pysollib/help.py:129 +#: pysollib/help.py:128 msgid " HTML Problem" msgstr "" -#: pysollib/help.py:130 +#: pysollib/help.py:129 msgid "Cannot find help document\n" msgstr "" -#: pysollib/help.py:143 +#: pysollib/help.py:142 msgid " Help" msgstr "" @@ -1685,221 +1684,221 @@ msgstr "" msgid "Top 10" msgstr "" -#: pysollib/stack.py:1563 +#: pysollib/stack.py:1564 msgid "Base card - %s." msgstr "" -#: pysollib/stack.py:1564 +#: pysollib/stack.py:1565 msgid "Empty row cannot be filled." msgstr "" -#: pysollib/stack.py:1565 +#: pysollib/stack.py:1566 msgid "any card" msgstr "" -#: pysollib/stack.py:1566 pysollib/util.py:78 +#: pysollib/stack.py:1567 pysollib/util.py:78 msgid "Jack" msgstr "" -#: pysollib/stack.py:1576 +#: pysollib/stack.py:1577 msgid "No cards" msgstr "" -#: pysollib/stack.py:1577 +#: pysollib/stack.py:1578 msgid "%d card" msgid_plural "%d cards" msgstr[0] "" msgstr[1] "" -#: pysollib/stack.py:1790 pysollib/stack.py:1792 pysollib/stack.py:1828 +#: pysollib/stack.py:1791 pysollib/stack.py:1793 pysollib/stack.py:1829 msgid "Redeal" msgstr "" -#: pysollib/stack.py:1792 +#: pysollib/stack.py:1793 msgid "Stop" msgstr "" -#: pysollib/stack.py:1853 +#: pysollib/stack.py:1854 msgid "Variable redeals." msgstr "" -#: pysollib/stack.py:1854 +#: pysollib/stack.py:1855 msgid "Unlimited redeals." msgstr "" -#: pysollib/stack.py:1857 +#: pysollib/stack.py:1858 msgid "%d readeal" msgid_plural "%d redeals" msgstr[0] "" msgstr[1] "" -#: pysollib/stack.py:1859 +#: pysollib/stack.py:1860 msgid "Talon." msgstr "" -#: pysollib/stack.py:2124 pysollib/stack.py:2767 +#: pysollib/stack.py:2125 pysollib/stack.py:2776 msgid "Reserve. No building." msgstr "" -#: pysollib/stack.py:2161 +#: pysollib/stack.py:2162 msgid "Foundation." msgstr "" -#: pysollib/stack.py:2199 +#: pysollib/stack.py:2200 msgid "Foundation. Build up by suit." msgstr "" -#: pysollib/stack.py:2200 +#: pysollib/stack.py:2201 msgid "Foundation. Build down by suit." msgstr "" -#: pysollib/stack.py:2201 pysollib/stack.py:2212 pysollib/stack.py:2234 -#: pysollib/stack.py:2255 +#: pysollib/stack.py:2202 pysollib/stack.py:2213 pysollib/stack.py:2235 +#: pysollib/stack.py:2256 msgid "Foundation. Build by same rank." msgstr "" -#: pysollib/stack.py:2211 +#: pysollib/stack.py:2212 msgid "Foundation. Build down regardless of suit." msgstr "" -#: pysollib/stack.py:2232 +#: pysollib/stack.py:2233 msgid "Foundation. Build up by alternate color." msgstr "" -#: pysollib/stack.py:2233 +#: pysollib/stack.py:2234 msgid "Foundation. Build down by alternate color." msgstr "" -#: pysollib/stack.py:2254 +#: pysollib/stack.py:2255 msgid "Foundation. Build down by color." msgstr "" -#: pysollib/stack.py:2363 +#: pysollib/stack.py:2372 msgid "Tableau. Build up by alternate color." msgstr "" -#: pysollib/stack.py:2364 +#: pysollib/stack.py:2373 msgid "Tableau. Build down by alternate color." msgstr "" -#: pysollib/stack.py:2365 pysollib/stack.py:2375 pysollib/stack.py:2384 -#: pysollib/stack.py:2393 pysollib/stack.py:2403 pysollib/stack.py:2432 -#: pysollib/stack.py:2442 +#: pysollib/stack.py:2374 pysollib/stack.py:2384 pysollib/stack.py:2393 +#: pysollib/stack.py:2402 pysollib/stack.py:2412 pysollib/stack.py:2441 +#: pysollib/stack.py:2451 msgid "Tableau. Build by same rank." msgstr "" -#: pysollib/stack.py:2373 +#: pysollib/stack.py:2382 msgid "Tableau. Build up by color." msgstr "" -#: pysollib/stack.py:2374 +#: pysollib/stack.py:2383 msgid "Tableau. Build down by color." msgstr "" -#: pysollib/stack.py:2382 +#: pysollib/stack.py:2391 msgid "Tableau. Build up by suit." msgstr "" -#: pysollib/stack.py:2383 +#: pysollib/stack.py:2392 msgid "Tableau. Build down by suit." msgstr "" -#: pysollib/stack.py:2391 +#: pysollib/stack.py:2400 msgid "Tableau. Build up regardless of suit." msgstr "" -#: pysollib/stack.py:2392 +#: pysollib/stack.py:2401 msgid "Tableau. Build down regardless of suit." msgstr "" -#: pysollib/stack.py:2401 +#: pysollib/stack.py:2410 msgid "Tableau. Build up in any suit but the same." msgstr "" -#: pysollib/stack.py:2402 +#: pysollib/stack.py:2411 msgid "Tableau. Build down in any suit but the same." msgstr "" -#: pysollib/stack.py:2430 +#: pysollib/stack.py:2439 msgid "" "Tableau. Build up regardless of suit. Sequences of cards in alternate color " "can be moved as a unit." msgstr "" -#: pysollib/stack.py:2431 +#: pysollib/stack.py:2440 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in alternate " "color can be moved as a unit." msgstr "" -#: pysollib/stack.py:2440 +#: pysollib/stack.py:2449 msgid "" "Tableau. Build up regardless of suit. Sequences of cards in the same suit " "can be moved as a unit." msgstr "" -#: pysollib/stack.py:2441 +#: pysollib/stack.py:2450 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in the same suit " "can be moved as a unit." msgstr "" -#: pysollib/stack.py:2463 +#: pysollib/stack.py:2472 msgid "" "Tableau. Build up by alternate color, can move any face-up cards regardless " "of sequence." msgstr "" -#: pysollib/stack.py:2464 +#: pysollib/stack.py:2473 msgid "" "Tableau. Build down by alternate color, can move any face-up cards " "regardless of sequence." msgstr "" -#: pysollib/stack.py:2465 pysollib/stack.py:2478 pysollib/stack.py:2488 +#: pysollib/stack.py:2474 pysollib/stack.py:2487 pysollib/stack.py:2497 msgid "" "Tableau. Build by same rank, can move any face-up cards regardless of " "sequence." msgstr "" -#: pysollib/stack.py:2476 +#: pysollib/stack.py:2485 msgid "" "Tableau. Build up by suit, can move any face-up cards regardless of sequence." msgstr "" -#: pysollib/stack.py:2477 +#: pysollib/stack.py:2486 msgid "" "Tableau. Build down by suit, can move any face-up cards regardless of " "sequence." msgstr "" -#: pysollib/stack.py:2486 pysollib/stack.py:2487 +#: pysollib/stack.py:2495 pysollib/stack.py:2496 msgid "" "Tableau. Build up regardless of suit, can move any face-up cards regardless " "of sequence." msgstr "" -#: pysollib/stack.py:2520 +#: pysollib/stack.py:2529 msgid "Tableau. Build up or down by color." msgstr "" -#: pysollib/stack.py:2531 +#: pysollib/stack.py:2540 msgid "Tableau. Build up or down by alternate color." msgstr "" -#: pysollib/stack.py:2542 +#: pysollib/stack.py:2551 msgid "Tableau. Build up or down by suit." msgstr "" -#: pysollib/stack.py:2553 +#: pysollib/stack.py:2562 msgid "Tableau. Build up or down regardless of suit." msgstr "" -#: pysollib/stack.py:2652 +#: pysollib/stack.py:2661 msgid "Waste." msgstr "" -#: pysollib/stack.py:2768 +#: pysollib/stack.py:2777 msgid "Free cell." msgstr "" diff --git a/po/ru_games.po b/po/ru_games.po index 7e9a3c84..baf0cbd7 100644 --- a/po/ru_games.po +++ b/po/ru_games.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: PySol 0.0.1\n" -"POT-Creation-Date: Sat Sep 1 22:26:18 2007\n" -"PO-Revision-Date: 2007-09-02 22:22+0400\n" +"POT-Creation-Date: Wed Sep 5 17:37:12 2007\n" +"PO-Revision-Date: 2007-09-05 17:43+0400\n" "Last-Translator: Скоморох \n" "Language-Team: Russian \n" "MIME-Version: 1.0\n" @@ -2434,6 +2434,10 @@ msgstr "Маджонг X-Shape" msgid "Mahjongg Yummy" msgstr "Маджонг Приятный" +#, fuzzy +msgid "Maine Coon" +msgstr "Луна на ущербе" + #, fuzzy msgid "Makara" msgstr "Мария" @@ -2444,6 +2448,9 @@ msgstr "Мамочка Сюзи" msgid "Mancunian" msgstr "Манчестерский" +msgid "Manx" +msgstr "Бесхвостая кошка" + msgid "Maria" msgstr "Мария" @@ -3542,6 +3549,9 @@ msgstr "" msgid "Sweet Sixteen" msgstr "Приятные шестнадцать" +msgid "Tabby Cat" +msgstr "Полосатая кошка" + msgid "Taipei" msgstr "Тайпей" diff --git a/po/ru_pysol.po b/po/ru_pysol.po index 8c858a38..56f98333 100644 --- a/po/ru_pysol.po +++ b/po/ru_pysol.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: Sat Sep 1 22:27:31 2007\n" +"POT-Creation-Date: Wed Sep 5 17:38:29 2007\n" "PO-Revision-Date: 2007-09-01 23:16+0400\n" "Last-Translator: Skomoroh \n" "Language-Team: Russian \n" @@ -821,13 +821,13 @@ msgstr "" "4: 8 Д 3 7 В 2 6 10 Т 5 9 К" #: pysollib/games/canfield.py:544 pysollib/games/special/tarock.py:224 -#: pysollib/stack.py:1568 pysollib/util.py:78 pysollib/wizardutil.py:158 +#: pysollib/stack.py:1569 pysollib/util.py:78 pysollib/wizardutil.py:158 #: pysollib/wizardutil.py:216 msgid "King" msgstr "Король" #: pysollib/games/canfield.py:549 pysollib/games/special/tarock.py:224 -#: pysollib/stack.py:1567 pysollib/util.py:78 +#: pysollib/stack.py:1568 pysollib/util.py:78 msgid "Queen" msgstr "Дама" @@ -853,12 +853,12 @@ msgid "Waste. Build up or down regardless of suit." msgstr "Сброс. Складывать по возрастанию или убыванию не считаясь с мастью." #: pysollib/games/golf.py:117 pysollib/games/golf.py:305 -#: pysollib/stack.py:2321 +#: pysollib/stack.py:2330 msgid "Tableau. No building." msgstr "Игровой стол. Без выкладывания." #: pysollib/games/golf.py:390 pysollib/games/pileon.py:255 -#: pysollib/stack.py:2210 +#: pysollib/stack.py:2211 msgid "Foundation. Build up regardless of suit." msgstr "Базовая ячейка. Складывать по возрастанию не считаясь с мастью." @@ -874,11 +874,11 @@ msgstr "" "Игровой стол. Складывать по убыванию в соответствии с цветом. Можно " "перемещать серии карт одинаковой масти." -#: pysollib/games/klondike.py:449 +#: pysollib/games/klondike.py:450 msgid "Reserve. Only Kings are acceptable." msgstr "Резерв. Только для королей." -#: pysollib/games/larasgame.py:163 pysollib/stack.py:1781 +#: pysollib/games/larasgame.py:163 pysollib/stack.py:1782 msgid "Round %d" msgstr "Раунд %d" @@ -993,7 +993,7 @@ msgid "Deal %d" msgstr "Сдача %d" #: pysollib/games/numerica.py:263 pysollib/games/royalcotillion.py:912 -#: pysollib/stack.py:2253 +#: pysollib/stack.py:2254 msgid "Foundation. Build up by color." msgstr "Базовая ячейка. Складывать по возрастанию в соответствии с цветом." @@ -1072,7 +1072,7 @@ msgstr "Жезлы" #: pysollib/games/special/tarock.py:223 #: pysollib/games/ultra/dashavatara.py:351 #: pysollib/games/ultra/hexadeck.py:273 pysollib/games/ultra/mughal.py:254 -#: pysollib/stack.py:1569 pysollib/util.py:77 pysollib/wizardutil.py:157 +#: pysollib/stack.py:1570 pysollib/util.py:77 pysollib/wizardutil.py:157 #: pysollib/wizardutil.py:161 pysollib/wizardutil.py:215 msgid "Ace" msgstr "Туз" @@ -1425,14 +1425,14 @@ msgid "About " msgstr "О программе " #: pysollib/help.py:63 +#, fuzzy msgid "" "PySol Fan Club edition\n" "%s%s\n" "\n" -"Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003\n" -"Markus F.X.J. Oberhumer\n" +"Copyright (C) 1998 - 2003 Markus F.X.J. Oberhumer.\n" "Copyright (C) 2003 Mt. Hood Playing Card Co.\n" -"Copyright (C) 2005 Skomoroh\n" +"Copyright (C) 2005 - 2007 Skomoroh.\n" "All Rights Reserved.\n" "\n" "PySol is free software distributed under the terms\n" @@ -1454,11 +1454,11 @@ msgstr "" "Для получения дополнительной информации\n" "об этом приложении посетите сайт" -#: pysollib/help.py:93 +#: pysollib/help.py:92 msgid "Credits" msgstr "Благодарности" -#: pysollib/help.py:94 +#: pysollib/help.py:93 msgid "" " credits go to:\n" "\n" @@ -1473,15 +1473,15 @@ msgid "" "for making this program possible" msgstr "" -#: pysollib/help.py:129 +#: pysollib/help.py:128 msgid " HTML Problem" msgstr " проблема с HTML" -#: pysollib/help.py:130 +#: pysollib/help.py:129 msgid "Cannot find help document\n" msgstr "Не найден файл помощи\n" -#: pysollib/help.py:143 +#: pysollib/help.py:142 msgid " Help" msgstr " Помощь" @@ -1858,144 +1858,144 @@ msgstr "США" msgid "Top 10" msgstr "Top 10" -#: pysollib/stack.py:1563 +#: pysollib/stack.py:1564 msgid "Base card - %s." msgstr "Базовая карта - %s." -#: pysollib/stack.py:1564 +#: pysollib/stack.py:1565 msgid "Empty row cannot be filled." msgstr "Пустой ряд не заполняется." -#: pysollib/stack.py:1565 +#: pysollib/stack.py:1566 msgid "any card" msgstr "любая карта" -#: pysollib/stack.py:1566 pysollib/util.py:78 +#: pysollib/stack.py:1567 pysollib/util.py:78 msgid "Jack" msgstr "Валет" -#: pysollib/stack.py:1576 +#: pysollib/stack.py:1577 msgid "No cards" msgstr "Нет карт" -#: pysollib/stack.py:1577 +#: pysollib/stack.py:1578 msgid "%d card" msgid_plural "%d cards" msgstr[0] "%d карта" msgstr[1] "%d карты" msgstr[2] "%d карт" -#: pysollib/stack.py:1790 pysollib/stack.py:1792 pysollib/stack.py:1828 +#: pysollib/stack.py:1791 pysollib/stack.py:1793 pysollib/stack.py:1829 msgid "Redeal" msgstr "Сдать" -#: pysollib/stack.py:1792 +#: pysollib/stack.py:1793 msgid "Stop" msgstr "Стоп" -#: pysollib/stack.py:1853 +#: pysollib/stack.py:1854 msgid "Variable redeals." msgstr "Переменное количество пересдач." -#: pysollib/stack.py:1854 +#: pysollib/stack.py:1855 msgid "Unlimited redeals." msgstr "Неограниченное количество пересдач." -#: pysollib/stack.py:1857 +#: pysollib/stack.py:1858 msgid "%d readeal" msgid_plural "%d redeals" msgstr[0] "%d пересдача" msgstr[1] "%d пересдачи" msgstr[2] "%d пересдач" -#: pysollib/stack.py:1859 +#: pysollib/stack.py:1860 msgid "Talon." msgstr "Колода." -#: pysollib/stack.py:2124 pysollib/stack.py:2767 +#: pysollib/stack.py:2125 pysollib/stack.py:2776 msgid "Reserve. No building." msgstr "Резерв. Без выкладывания." -#: pysollib/stack.py:2161 +#: pysollib/stack.py:2162 msgid "Foundation." msgstr "Базовая ячейка" -#: pysollib/stack.py:2199 +#: pysollib/stack.py:2200 msgid "Foundation. Build up by suit." msgstr "Базовая ячейка. Складывать по возрастанию в соответствии с мастью." -#: pysollib/stack.py:2200 +#: pysollib/stack.py:2201 msgid "Foundation. Build down by suit." msgstr "Базовая ячейка. Складывать по убыванию в соответствии с мастью." -#: pysollib/stack.py:2201 pysollib/stack.py:2212 pysollib/stack.py:2234 -#: pysollib/stack.py:2255 +#: pysollib/stack.py:2202 pysollib/stack.py:2213 pysollib/stack.py:2235 +#: pysollib/stack.py:2256 msgid "Foundation. Build by same rank." msgstr "Базовая ячейка. Складывать в соответствии с достоинством." -#: pysollib/stack.py:2211 +#: pysollib/stack.py:2212 msgid "Foundation. Build down regardless of suit." msgstr "Базовая ячейка. Складывать по убыванию не считаясь с мастью." -#: pysollib/stack.py:2232 +#: pysollib/stack.py:2233 msgid "Foundation. Build up by alternate color." msgstr "Базовая ячейка. Складывать по возрастанию чередуя цвет." -#: pysollib/stack.py:2233 +#: pysollib/stack.py:2234 msgid "Foundation. Build down by alternate color." msgstr "Базовая ячейка. Складывать по убыванию чередуя цвет." -#: pysollib/stack.py:2254 +#: pysollib/stack.py:2255 msgid "Foundation. Build down by color." msgstr "Базовая ячейка. Складывать по убыванию в соответствии с цветом." -#: pysollib/stack.py:2363 +#: pysollib/stack.py:2372 msgid "Tableau. Build up by alternate color." msgstr "Игровой стол. Складывать по возрастанию чередуя цвет." -#: pysollib/stack.py:2364 +#: pysollib/stack.py:2373 msgid "Tableau. Build down by alternate color." msgstr "Игровой стол. Складывать по убыванию чередуя цвет." -#: pysollib/stack.py:2365 pysollib/stack.py:2375 pysollib/stack.py:2384 -#: pysollib/stack.py:2393 pysollib/stack.py:2403 pysollib/stack.py:2432 -#: pysollib/stack.py:2442 +#: pysollib/stack.py:2374 pysollib/stack.py:2384 pysollib/stack.py:2393 +#: pysollib/stack.py:2402 pysollib/stack.py:2412 pysollib/stack.py:2441 +#: pysollib/stack.py:2451 msgid "Tableau. Build by same rank." msgstr "Игровой стол. Складывать в соответствии с достоинством." -#: pysollib/stack.py:2373 +#: pysollib/stack.py:2382 msgid "Tableau. Build up by color." msgstr "Игровой стол. Складывать по возрастанию в соответствии с цветом." -#: pysollib/stack.py:2374 +#: pysollib/stack.py:2383 msgid "Tableau. Build down by color." msgstr "Игровой стол. Складывать по убыванию в соответствии с цветом." -#: pysollib/stack.py:2382 +#: pysollib/stack.py:2391 msgid "Tableau. Build up by suit." msgstr "Игровой стол. Складывать по возрастанию в соответствии с мастью." -#: pysollib/stack.py:2383 +#: pysollib/stack.py:2392 msgid "Tableau. Build down by suit." msgstr "Игровой стол. Складывать по убыванию в соответствии с мастью." -#: pysollib/stack.py:2391 +#: pysollib/stack.py:2400 msgid "Tableau. Build up regardless of suit." msgstr "Игровой стол. Складывать по возрастанию не считаясь с мастью." -#: pysollib/stack.py:2392 +#: pysollib/stack.py:2401 msgid "Tableau. Build down regardless of suit." msgstr "Игровой стол. Складывать по убыванию не считаясь с мастью." -#: pysollib/stack.py:2401 +#: pysollib/stack.py:2410 msgid "Tableau. Build up in any suit but the same." msgstr "Игровой стол. Складывать по возрастанию в любую масть кроме такой же." -#: pysollib/stack.py:2402 +#: pysollib/stack.py:2411 msgid "Tableau. Build down in any suit but the same." msgstr "Игровой стол. Складывать по убыванию в любую масть кроме такой же." -#: pysollib/stack.py:2430 +#: pysollib/stack.py:2439 msgid "" "Tableau. Build up regardless of suit. Sequences of cards in alternate color " "can be moved as a unit." @@ -2003,7 +2003,7 @@ msgstr "" "Игровой стол. Складывать по возрастанию не считаясь с мастью. Можно " "перемещать серии карт чередующихся цветом." -#: pysollib/stack.py:2431 +#: pysollib/stack.py:2440 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in alternate " "color can be moved as a unit." @@ -2011,7 +2011,7 @@ msgstr "" "Игровой стол. Складывать по убыванию не считаясь с мастью. Можно перемещать " "серии карт чередующихся цветом." -#: pysollib/stack.py:2440 +#: pysollib/stack.py:2449 msgid "" "Tableau. Build up regardless of suit. Sequences of cards in the same suit " "can be moved as a unit." @@ -2019,7 +2019,7 @@ msgstr "" "Игровой стол. Складывать по возрастанию не считаясь с мастью. Можно " "перемещать серии карт одинаковой масти." -#: pysollib/stack.py:2441 +#: pysollib/stack.py:2450 msgid "" "Tableau. Build down regardless of suit. Sequences of cards in the same suit " "can be moved as a unit." @@ -2027,7 +2027,7 @@ msgstr "" "Игровой стол. Складывать по убыванию не считаясь с мастью. Можно перемещать " "серии карт одинаковой масти." -#: pysollib/stack.py:2463 +#: pysollib/stack.py:2472 msgid "" "Tableau. Build up by alternate color, can move any face-up cards regardless " "of sequence." @@ -2035,7 +2035,7 @@ msgstr "" "Игровой стол. Складывать по возрастанию чередуя цвет, можно перемещать любую " "серию открытых карт." -#: pysollib/stack.py:2464 +#: pysollib/stack.py:2473 msgid "" "Tableau. Build down by alternate color, can move any face-up cards " "regardless of sequence." @@ -2043,7 +2043,7 @@ msgstr "" "Игровой стол. Складывать по убыванию чередуя цвет, можно перемещать любую " "серию открытых карт." -#: pysollib/stack.py:2465 pysollib/stack.py:2478 pysollib/stack.py:2488 +#: pysollib/stack.py:2474 pysollib/stack.py:2487 pysollib/stack.py:2497 msgid "" "Tableau. Build by same rank, can move any face-up cards regardless of " "sequence." @@ -2051,14 +2051,14 @@ msgstr "" "Игровой стол. Складывать в соответствии с достоинством, можно перемещать " "любую серию открытых карт." -#: pysollib/stack.py:2476 +#: pysollib/stack.py:2485 msgid "" "Tableau. Build up by suit, can move any face-up cards regardless of sequence." msgstr "" "Игровой стол. Складывать по возрастанию в соответствии с мастью, можно " "перемещать любую серию открытых карт." -#: pysollib/stack.py:2477 +#: pysollib/stack.py:2486 msgid "" "Tableau. Build down by suit, can move any face-up cards regardless of " "sequence." @@ -2066,7 +2066,7 @@ msgstr "" "Игровой стол. Складывать по убыванию в соответствии с мастью, можно " "перемещать любую серию открытых карт." -#: pysollib/stack.py:2486 pysollib/stack.py:2487 +#: pysollib/stack.py:2495 pysollib/stack.py:2496 msgid "" "Tableau. Build up regardless of suit, can move any face-up cards regardless " "of sequence." @@ -2074,30 +2074,30 @@ msgstr "" "Игровой стол. Складывать по возрастанию не считаясь с мастью, можно " "перемещать любую серию открытых карт." -#: pysollib/stack.py:2520 +#: pysollib/stack.py:2529 msgid "Tableau. Build up or down by color." msgstr "" "Игровой стол. Складывать по возрастанию или убыванию в соответствии с цветом." -#: pysollib/stack.py:2531 +#: pysollib/stack.py:2540 msgid "Tableau. Build up or down by alternate color." msgstr "Игровой стол. Складывать по возрастанию или убыванию чередуя цвет." -#: pysollib/stack.py:2542 +#: pysollib/stack.py:2551 msgid "Tableau. Build up or down by suit." msgstr "" "Игровой стол. Складывать по возрастанию или убыванию в соответствии с мастью." -#: pysollib/stack.py:2553 +#: pysollib/stack.py:2562 msgid "Tableau. Build up or down regardless of suit." msgstr "" "Игровой стол. Складывать по возрастанию или убыванию не считаясь с мастью." -#: pysollib/stack.py:2652 +#: pysollib/stack.py:2661 msgid "Waste." msgstr "Сброс." -#: pysollib/stack.py:2768 +#: pysollib/stack.py:2777 msgid "Free cell." msgstr "Свободная ячейка." diff --git a/pysollib/games/acesup.py b/pysollib/games/acesup.py index 0a08974d..d7aecc7f 100644 --- a/pysollib/games/acesup.py +++ b/pysollib/games/acesup.py @@ -328,6 +328,82 @@ class FiringSquad(AcesUp): AcesUp.createGame(self, reserve=True) +# /*********************************************************************** +# // Tabby Cat +# // Manx +# // Maine Coon +# ************************************************************************/ + +class TabbyCatStack(RK_RowStack): + def acceptsCards(self, from_stack, cards): + if not RK_RowStack.acceptsCards( self, from_stack, cards): + return False + # Only allow a sequence if pile is empty + if len( self.cards) > 0: + return False + return True + + getBottomImage = Stack._getReserveBottomImage + + +class TabbyCat(Game): + Talon_Class = DealRowTalonStack + Foundation_Class = Spider_RK_Foundation + RowStack_Class = StackWrapper(RK_RowStack, mod=13) + ReserveStack_Class = StackWrapper(TabbyCatStack, mod=13) + + # + # game layout + # + + def createGame(self, rows=4, playcards=20): + # create layout + l, s = Layout(self), self.s + decks = self.gameinfo.decks + + # set window + self.setSize(l.XM + (decks+rows+3.5)*l.XS, + l.YM + max(4*l.YS, l.YS+playcards*l.YOFFSET)) + + # create stacks + x = l.XM + for i in range(decks): + y = l.YM + for j in range(4): + s.foundations.append(self.Foundation_Class(x, y, self)) + y += l.YS + x += l.XS + + x, y, = l.XM + (decks+0.5)*l.XS, l.YM + for i in range(rows): + stack = self.RowStack_Class(x, y, self) + s.rows.append(stack) + stack.canDropCards = stack.spiderCanDropCards + x += l.XS + x += l.XS/2 + s.reserves.append(self.ReserveStack_Class(x, y, self)) + x += 1.5*l.XS + s.talon = self.Talon_Class(x, y, self) + l.createText(s.talon, "s") + + # define stack-groups + l.defaultStackGroups() + + def startGame(self): + self.startDealSample() + self.s.talon.dealRow() + + shallHighlightMatch = Game._shallHighlightMatch_RKW + + +class Manx(TabbyCat): + ReserveStack_Class = ReserveStack + + +class MaineCoon(TabbyCat): + def createGame(self): + TabbyCat.createGame(self, playcards=26) + # register the game registerGame(GameInfo(903, AcesUp, "Aces Up", # was: 52 @@ -348,3 +424,9 @@ registerGame(GameInfo(583, FiringSquad, "Firing Squad", GI.GT_1DECK_TYPE, 1, 0, GI.SL_BALANCED)) registerGame(GameInfo(684, Deck, "Deck", GI.GT_1DECK_TYPE, 1, 0, GI.SL_LUCK)) +registerGame(GameInfo(756, TabbyCat, "Tabby Cat", + GI.GT_1DECK_TYPE, 1, 0, GI.SL_MOSTLY_SKILL)) +registerGame(GameInfo(757, Manx, "Manx", + GI.GT_1DECK_TYPE, 1, 0, GI.SL_MOSTLY_SKILL)) +registerGame(GameInfo(758, MaineCoon, "Maine Coon", + GI.GT_2DECK_TYPE, 2, 0, GI.SL_MOSTLY_SKILL)) diff --git a/pysollib/games/klondike.py b/pysollib/games/klondike.py index 3e08df5e..659711e2 100644 --- a/pysollib/games/klondike.py +++ b/pysollib/games/klondike.py @@ -428,7 +428,8 @@ class EightByEight(EightTimesEight): RowStack_Class = EightByEight_RowStack def createGame(self): - l = Klondike.createGame(self, rows=8, max_rounds=3, round_text=True) + l = Klondike.createGame(self, rows=8, playcards=20, + max_rounds=3, round_text=True) l.createRoundText(self.s.talon, 'ne', dx=l.XS) shallHighlightMatch = Game._shallHighlightMatch_RK diff --git a/pysollib/games/unionsquare.py b/pysollib/games/unionsquare.py index 71737e3b..4fc3ad23 100644 --- a/pysollib/games/unionsquare.py +++ b/pysollib/games/unionsquare.py @@ -195,6 +195,7 @@ class Boomerang_Foundation(AbstractFoundationStack): class Boomerang(UnionSquare): Foundation_Class = StackWrapper(Boomerang_Foundation, base_rank=6, max_cards=16) + RowStack_Class = StackWrapper(UnionSquare_RowStack, base_rank=NO_RANK) def createGame(self): UnionSquare.createGame(self, rows=12) diff --git a/pysollib/init.py b/pysollib/init.py index 334b7f2a..f0afb55d 100644 --- a/pysollib/init.py +++ b/pysollib/init.py @@ -70,7 +70,7 @@ def init(): os.environ['LANG'] = l[0] except: pass - ##locale.setlocale(locale.LC_ALL, '') + locale.setlocale(locale.LC_ALL, '') ## install gettext ##locale_dir = 'locale' diff --git a/pysollib/options.py b/pysollib/options.py index 9b15409e..72204ffd 100644 --- a/pysollib/options.py +++ b/pysollib/options.py @@ -62,7 +62,7 @@ animations = integer(0, 5) redeal_animation = boolean win_animation = boolean flip_animation = boolean -squeeze_stacks = boolean +compact_stacks = boolean shadow = boolean shade = boolean shrink_face_down = boolean @@ -190,7 +190,7 @@ class Options: ('redeal_animation', 'bool'), ('win_animation', 'bool'), ('flip_animation', 'bool'), - ('squeeze_stacks', 'bool'), + ('compact_stacks', 'bool'), ('shadow', 'bool'), ('shade', 'bool'), ('shrink_face_down', 'bool'), @@ -260,7 +260,7 @@ class Options: self.redeal_animation = True self.win_animation = True self.flip_animation = True - self.squeeze_stacks = True + self.compact_stacks = True self.shadow = True self.shade = True self.shrink_face_down = True diff --git a/pysollib/stack.py b/pysollib/stack.py index 9b85a0f1..1766ef44 100644 --- a/pysollib/stack.py +++ b/pysollib/stack.py @@ -62,6 +62,7 @@ __all__ = ['cardsFaceUp', 'SC_FoundationStack', 'Spider_SS_Foundation', 'Spider_AC_Foundation', + 'Spider_RK_Foundation', #'SequenceStack_StackMethods', 'BasicRowStack', 'SequenceRowStack', @@ -862,7 +863,7 @@ class Stack: self.texts.ncards.config(text=t) def updatePositions(self): - # squeeze the stack if a cards is off-screen + # compact the stack when a cards goes off screen if self.reallocateCards(): for c in self.cards: self._position(c) @@ -870,7 +871,7 @@ class Stack: def reallocateCards(self): # change CARD_YOFFSET if a cards is off-screen # returned False if CARD_YOFFSET is not changed, otherwise True - if not self.game.app.opt.squeeze_stacks: + if not self.game.app.opt.compact_stacks: return False if TOOLKIT != 'tk': return False @@ -896,7 +897,7 @@ class Stack: game_height = self.game.height + 2*self.canvas.ymargin height = max(visible_height, game_height) if stack_height > height: - # squeeze stack + # compact stack n = num_face_down / self.shrink_face_down + num_face_up dy = float(height - self.y - cardh) / n if dy < yoffset: @@ -2277,6 +2278,14 @@ class Spider_AC_Foundation(Spider_SS_Foundation): return isAlternateColorSequence(cards, self.cap.mod, self.cap.dir) +class Spider_RK_Foundation(Spider_SS_Foundation): + def acceptsCards(self, from_stack, cards): + if not AbstractFoundationStack.acceptsCards(self, from_stack, cards): + return False + # now check the cards + return isRankSequence(cards, self.cap.mod, self.cap.dir) + + # /*********************************************************************** # // Abstract classes for row stacks. diff --git a/pysollib/wizardutil.py b/pysollib/wizardutil.py index c36585e2..3eee3bf6 100644 --- a/pysollib/wizardutil.py +++ b/pysollib/wizardutil.py @@ -105,14 +105,14 @@ LayoutType = WizSetting( var_name = 'layout', ) TalonType = WizSetting( - values_map = ((n_('Opening deal'), InitialDealTalonStack), + values_map = ((n_('Deal all cards at the beginning'), InitialDealTalonStack), (n_('Deal to waste'), WasteTalonStack), (n_('Deal to tableau'), DealRowRedealTalonStack), (n_('Deal to reserves'), DealReserveRedealTalonStack), (n_('Spider'), SpiderTalonStack), (n_('Grounds for a Divorce'), GroundsForADivorceTalonStack), ), - default = n_('Opening deal'), + default = n_('Deal all cards at the beginning'), label = _('Type:'), var_name = 'talon', )