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

+ 3 new games

* cleanup main.py and mfxutil.py
* bugs fixes


git-svn-id: https://pysolfc.svn.sourceforge.net/svnroot/pysolfc/PySolFC/trunk@91 39dd0a4e-7c14-0410-91b3-c4f2d318f732
This commit is contained in:
skomoroh 2006-11-09 22:18:46 +00:00
parent 40fc8ea105
commit 017379ea05
13 changed files with 296 additions and 395 deletions

View file

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PySol 0.0.1\n"
"POT-Creation-Date: Tue Nov 7 05:42:15 2006\n"
"POT-Creation-Date: Thu Nov 9 17:36:05 2006\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -993,6 +993,9 @@ msgstr ""
msgid "Fatimeh's Game Relaxed"
msgstr ""
msgid "Fifteen"
msgstr ""
msgid "Fifteen Puzzle"
msgstr ""
@ -1395,6 +1398,9 @@ msgstr ""
msgid "Inca"
msgstr ""
msgid "Incompatibility"
msgstr ""
msgid "Indefatigable"
msgstr ""
@ -2973,6 +2979,9 @@ msgstr ""
msgid "Scorpion Head"
msgstr ""
msgid "Scorpion II"
msgstr ""
msgid "Scorpion Tail"
msgstr ""

View file

@ -14,7 +14,7 @@ msgid ""
msgstr ""
"#-#-#-#-# pysol-1.pot (PACKAGE VERSION) #-#-#-#-#\n"
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: Tue Nov 7 05:43:10 2006\n"
"POT-Creation-Date: Thu Nov 9 17:36:57 2006\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -24,7 +24,7 @@ msgstr ""
"Generated-By: pygettext.py 1.5\n"
"#-#-#-#-# pysol-2.pot (PACKAGE VERSION) #-#-#-#-#\n"
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2006-11-07 05:43+0300\n"
"POT-Creation-Date: 2006-11-09 17:36+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -70,7 +70,7 @@ msgstr ""
#: pysollib/actions.py:314 pysollib/app.py:892 pysollib/app.py:1155
#: pysollib/app.py:1167 pysollib/game.py:929 pysollib/game.py:1864
#: pysollib/main.py:376 pysollib/main.py:384 pysollib/tk/colorsdialog.py:122
#: pysollib/main.py:379 pysollib/main.py:387 pysollib/tk/colorsdialog.py:122
#: pysollib/tk/edittextdialog.py:82 pysollib/tk/fontsdialog.py:143
#: pysollib/tk/fontsdialog.py:205 pysollib/tk/gameinfodialog.py:155
#: pysollib/tk/playeroptionsdialog.py:85
@ -465,211 +465,211 @@ msgstr ""
msgid "Error while saving game"
msgstr ""
#: pysollib/gamedb.py:120
#: pysollib/gamedb.py:121
msgid "Baker's Dozen"
msgstr ""
#: pysollib/gamedb.py:121
#: pysollib/gamedb.py:122
msgid "Beleaguered Castle"
msgstr ""
#: pysollib/gamedb.py:122
#: pysollib/gamedb.py:123
msgid "Canfield"
msgstr ""
#: pysollib/gamedb.py:123
#: pysollib/gamedb.py:124
msgid "Fan"
msgstr ""
#: pysollib/gamedb.py:124
#: pysollib/gamedb.py:125
msgid "Forty Thieves"
msgstr ""
#: pysollib/gamedb.py:125
#: pysollib/gamedb.py:126
msgid "FreeCell"
msgstr ""
#: pysollib/gamedb.py:126
#: pysollib/gamedb.py:127
msgid "Golf"
msgstr ""
#: pysollib/gamedb.py:127
#: pysollib/gamedb.py:128
msgid "Gypsy"
msgstr ""
#: pysollib/gamedb.py:128
#: pysollib/gamedb.py:129
msgid "Klondike"
msgstr ""
#: pysollib/gamedb.py:129
#: pysollib/gamedb.py:130
msgid "Montana"
msgstr ""
#: pysollib/gamedb.py:130
#: pysollib/gamedb.py:131
msgid "Napoleon"
msgstr ""
#: pysollib/gamedb.py:131
#: pysollib/gamedb.py:132
msgid "Numerica"
msgstr ""
#: pysollib/gamedb.py:132
#: pysollib/gamedb.py:133
msgid "Pairing"
msgstr ""
#: pysollib/gamedb.py:133
#: pysollib/gamedb.py:134
msgid "Raglan"
msgstr ""
#: pysollib/gamedb.py:134 pysollib/gamedb.py:167
#: pysollib/gamedb.py:135 pysollib/gamedb.py:168
msgid "Simple games"
msgstr ""
#: pysollib/gamedb.py:135
#: pysollib/gamedb.py:136
msgid "Spider"
msgstr ""
#: pysollib/gamedb.py:136
#: pysollib/gamedb.py:137
msgid "Terrace"
msgstr ""
#: pysollib/gamedb.py:137
#: pysollib/gamedb.py:138
msgid "Yukon"
msgstr ""
#: pysollib/gamedb.py:138 pysollib/gamedb.py:171
#: pysollib/gamedb.py:139 pysollib/gamedb.py:172
msgid "One-Deck games"
msgstr ""
#: pysollib/gamedb.py:139 pysollib/gamedb.py:172
#: pysollib/gamedb.py:140 pysollib/gamedb.py:173
msgid "Two-Deck games"
msgstr ""
#: pysollib/gamedb.py:140 pysollib/gamedb.py:173
#: pysollib/gamedb.py:141 pysollib/gamedb.py:174
msgid "Three-Deck games"
msgstr ""
#: pysollib/gamedb.py:141 pysollib/gamedb.py:174
#: pysollib/gamedb.py:142 pysollib/gamedb.py:175
msgid "Four-Deck games"
msgstr ""
#: pysollib/gamedb.py:153
#: pysollib/gamedb.py:154
msgid "Baker's Dozen type"
msgstr ""
#: pysollib/gamedb.py:154
#: pysollib/gamedb.py:155
msgid "Beleaguered Castle type"
msgstr ""
#: pysollib/gamedb.py:155
#: pysollib/gamedb.py:156
msgid "Canfield type"
msgstr ""
#: pysollib/gamedb.py:156
#: pysollib/gamedb.py:157
msgid "Fan type"
msgstr ""
#: pysollib/gamedb.py:157
#: pysollib/gamedb.py:158
msgid "Forty Thieves type"
msgstr ""
#: pysollib/gamedb.py:158
#: pysollib/gamedb.py:159
msgid "FreeCell type"
msgstr ""
#: pysollib/gamedb.py:159
#: pysollib/gamedb.py:160
msgid "Golf type"
msgstr ""
#: pysollib/gamedb.py:160
#: pysollib/gamedb.py:161
msgid "Gypsy type"
msgstr ""
#: pysollib/gamedb.py:161
#: pysollib/gamedb.py:162
msgid "Klondike type"
msgstr ""
#: pysollib/gamedb.py:162
#: pysollib/gamedb.py:163
msgid "Montana type"
msgstr ""
#: pysollib/gamedb.py:163
#: pysollib/gamedb.py:164
msgid "Napoleon type"
msgstr ""
#: pysollib/gamedb.py:164
#: pysollib/gamedb.py:165
msgid "Numerica type"
msgstr ""
#: pysollib/gamedb.py:165
#: pysollib/gamedb.py:166
msgid "Pairing type"
msgstr ""
#: pysollib/gamedb.py:166
#: pysollib/gamedb.py:167
msgid "Raglan type"
msgstr ""
#: pysollib/gamedb.py:168
#: pysollib/gamedb.py:169
msgid "Spider type"
msgstr ""
#: pysollib/gamedb.py:169
#: pysollib/gamedb.py:170
msgid "Terrace type"
msgstr ""
#: pysollib/gamedb.py:170
#: pysollib/gamedb.py:171
msgid "Yukon type"
msgstr ""
#: pysollib/gamedb.py:178 pysollib/gamedb.py:186
#: pysollib/gamedb.py:179 pysollib/gamedb.py:187
msgid "French type"
msgstr ""
#: pysollib/gamedb.py:179 pysollib/gamedb.py:187 pysollib/gamedb.py:195
#: pysollib/gamedb.py:180 pysollib/gamedb.py:188 pysollib/gamedb.py:196
msgid "Ganjifa type"
msgstr ""
#: pysollib/gamedb.py:180 pysollib/gamedb.py:188 pysollib/gamedb.py:196
#: pysollib/gamedb.py:181 pysollib/gamedb.py:189 pysollib/gamedb.py:197
msgid "Hanafuda type"
msgstr ""
#: pysollib/gamedb.py:181 pysollib/gamedb.py:189 pysollib/gamedb.py:203
#: pysollib/gamedb.py:182 pysollib/gamedb.py:190 pysollib/gamedb.py:204
msgid "Hex A Deck type"
msgstr ""
#: pysollib/gamedb.py:182 pysollib/gamedb.py:190 pysollib/gamedb.py:208
#: pysollib/gamedb.py:183 pysollib/gamedb.py:191 pysollib/gamedb.py:209
msgid "Tarock type"
msgstr ""
#: pysollib/gamedb.py:194
#: pysollib/gamedb.py:195
msgid "Dashavatara Ganjifa type"
msgstr ""
#: pysollib/gamedb.py:197
#: pysollib/gamedb.py:198
msgid "Mughal Ganjifa type"
msgstr ""
#: pysollib/gamedb.py:198
#: pysollib/gamedb.py:199
msgid "Navagraha Ganjifa type"
msgstr ""
#: pysollib/gamedb.py:202
#: pysollib/gamedb.py:203
msgid "Shisen-Sho"
msgstr ""
#: pysollib/gamedb.py:204
#: pysollib/gamedb.py:205
msgid "Matrix type"
msgstr ""
#: pysollib/gamedb.py:205
#: pysollib/gamedb.py:206
msgid "Memory type"
msgstr ""
#: pysollib/gamedb.py:206
#: pysollib/gamedb.py:207
msgid "Poker type"
msgstr ""
#: pysollib/gamedb.py:207
#: pysollib/gamedb.py:208
msgid "Puzzle type"
msgstr ""
@ -1227,11 +1227,11 @@ msgstr ""
msgid " Help"
msgstr ""
#: pysollib/main.py:67 pysollib/main.py:284
#: pysollib/main.py:68 pysollib/main.py:287
msgid " installation error"
msgstr ""
#: pysollib/main.py:68
#: pysollib/main.py:69
msgid ""
"No %ss were found !!!\n"
"\n"
@ -1241,17 +1241,17 @@ msgid ""
"Please check your %s installation.\n"
msgstr ""
#: pysollib/main.py:75 pysollib/main.py:292 pysollib/tk/menubar.py:382
#: pysollib/main.py:76 pysollib/main.py:295 pysollib/tk/menubar.py:382
msgid "&Quit"
msgstr ""
#: pysollib/main.py:99
#: pysollib/main.py:100
msgid ""
"%s: %s\n"
"try %s --help for more information"
msgstr ""
#: pysollib/main.py:143
#: pysollib/main.py:147
msgid ""
"Usage: %s [OPTIONS] [FILE]\n"
" -g --game=GAMENAME start game GAMENAME\n"
@ -1269,19 +1269,19 @@ msgid ""
" MOD - one of following: pss(default), pygame, oss, win\n"
msgstr ""
#: pysollib/main.py:161
#: pysollib/main.py:165
msgid ""
"%s: too many files\n"
"try %s --help for more information"
msgstr ""
#: pysollib/main.py:165
#: pysollib/main.py:169
msgid ""
"%s: invalid file name\n"
"try %s --help for more information"
msgstr ""
#: pysollib/main.py:285
#: pysollib/main.py:288
msgid ""
"\n"
"No games were found !!!\n"
@ -1292,25 +1292,25 @@ msgid ""
"Please check your %s installation.\n"
msgstr ""
#: pysollib/main.py:371 pysollib/main.py:379
#: pysollib/main.py:374 pysollib/main.py:382
msgid " installation problem"
msgstr ""
#: pysollib/main.py:372
#: pysollib/main.py:375
msgid ""
"Your Python installation is compiled without thread support.\n"
"\n"
"Sounds and background music will be disabled."
msgstr ""
#: pysollib/main.py:380
#: pysollib/main.py:383
msgid ""
"The pysolsoundserver module was not found.\n"
"\n"
"Sounds and background music will be disabled."
msgstr ""
#: pysollib/main.py:387
#: pysollib/main.py:390
msgid "Welcome to "
msgstr ""

View file

@ -5,8 +5,8 @@
msgid ""
msgstr ""
"Project-Id-Version: PySol 0.0.1\n"
"POT-Creation-Date: Tue Nov 7 05:42:15 2006\n"
"PO-Revision-Date: 2006-11-07 05:51+0300\n"
"POT-Creation-Date: Thu Nov 9 17:36:05 2006\n"
"PO-Revision-Date: 2006-11-09 17:59+0300\n"
"Last-Translator: Скоморох <skomoroh@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
"MIME-Version: 1.0\n"
@ -925,10 +925,10 @@ msgid "Elevator"
msgstr "Лифт"
msgid "Elevens"
msgstr "Одиннадцать"
msgstr "По одиннадцать"
msgid "Elevens Too"
msgstr "Тоже Одиннадцать"
msgstr "Тоже по одиннадцать"
msgid "Emperor"
msgstr "Император"
@ -1003,6 +1003,9 @@ msgstr "Пасьянс Фатимы"
msgid "Fatimeh's Game Relaxed"
msgstr "Облегчённый Пасьянс Фатимы"
msgid "Fifteen"
msgstr "Пятнадцать"
#, fuzzy
msgid "Fifteen Puzzle"
msgstr "Пятнашки"
@ -1011,7 +1014,7 @@ msgid "Fifteen plus"
msgstr "Пятнадцать плюс"
msgid "Fifteens"
msgstr "Пятнадцать"
msgstr "По пятнадцать"
msgid "Final Battle"
msgstr "Последняя битва"
@ -1414,6 +1417,9 @@ msgstr "Маджонг Inazuma"
msgid "Inca"
msgstr "Инка"
msgid "Incompatibility"
msgstr "Несовместимость"
msgid "Indefatigable"
msgstr "Неутомимый"
@ -1576,53 +1582,41 @@ msgstr "Гигант"
msgid "Kurma"
msgstr ""
#, fuzzy
msgid "Kyodai 14"
msgstr "Маджонг Kyodai 14"
msgstr "Kyodai 14"
#, fuzzy
msgid "Kyodai 17"
msgstr "Маджонг Kyodai 17"
msgstr "Kyodai 17"
#, fuzzy
msgid "Kyodai 18"
msgstr "Маджонг Kyodai 18"
msgstr "Kyodai 18"
#, fuzzy
msgid "Kyodai 20"
msgstr "Маджонг Kyodai 20"
msgstr "Kyodai 20"
#, fuzzy
msgid "Kyodai 23"
msgstr "Маджонг Kyodai 23"
msgstr "Kyodai 23"
#, fuzzy
msgid "Kyodai 24"
msgstr "Маджонг Kyodai 24"
msgstr "Kyodai 24"
#, fuzzy
msgid "Kyodai 25"
msgstr "Маджонг Kyodai 25"
msgstr "Kyodai 25"
#, fuzzy
msgid "Kyodai 26"
msgstr "Маджонг Kyodai 26"
msgstr "Kyodai 26"
#, fuzzy
msgid "Kyodai 27"
msgstr "Маджонг Kyodai 27"
msgstr "Kyodai 27"
#, fuzzy
msgid "Kyodai 28"
msgstr "Маджонг Kyodai 28"
msgstr "Kyodai 28"
#, fuzzy
msgid "Kyodai 41"
msgstr "Маджонг Kyodai 4"
msgstr "Kyodai 41"
#, fuzzy
msgid "Kyodai 42"
msgstr "Маджонг Kyodai 42"
msgstr "Kyodai 42"
msgid "La Belle Lucie"
msgstr "Прекрасная Люси"
@ -1747,7 +1741,7 @@ msgid "Lucas"
msgstr "Лукас"
msgid "Lucky Piles"
msgstr "Счастливая ячейка"
msgstr "Счастливые кучки"
msgid "Lucky Thirteen"
msgstr "Счастливые Тринадцать"
@ -3023,6 +3017,9 @@ msgstr "Скорпион"
msgid "Scorpion Head"
msgstr "Голова скорпиона"
msgid "Scorpion II"
msgstr "Скорпион II"
msgid "Scorpion Tail"
msgstr "Хвост скорпиона"
@ -3039,7 +3036,7 @@ msgid "Sea Towers"
msgstr "Морские башни"
msgid "Seahaven Towers"
msgstr ""
msgstr "Приморские башни"
msgid "Selective Castle"
msgstr "Избирательный Замок"
@ -3075,7 +3072,7 @@ msgid "Shady Lanes"
msgstr "Тенистые аллеи"
msgid "Shamrocks"
msgstr "Трилистник"
msgstr "Трилистники"
msgid "Shamsher"
msgstr ""
@ -3457,7 +3454,7 @@ msgid "Thirteen Up"
msgstr "Тринадцать вверх"
msgid "Thirteens"
msgstr "Тринадцать"
msgstr "По тринадцать"
msgid "Thirty Six"
msgstr "Тридцать шесть"

View file

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PySol 0.0.1\n"
"POT-Creation-Date: Tue Nov 7 05:43:10 2006\n"
"POT-Creation-Date: Thu Nov 9 17:36:57 2006\n"
"PO-Revision-Date: 2006-11-06 09:53+0300\n"
"Last-Translator: Скоморох <skomoroh@gmail.com>\n"
"Language-Team: Russian <ru@li.org>\n"
@ -55,7 +55,7 @@ msgstr "&Следующий номер"
#: pysollib/actions.py:314 pysollib/app.py:892 pysollib/app.py:1155
#: pysollib/app.py:1167 pysollib/game.py:929 pysollib/game.py:1864
#: pysollib/main.py:376 pysollib/main.py:384 pysollib/tk/colorsdialog.py:122
#: pysollib/main.py:379 pysollib/main.py:387 pysollib/tk/colorsdialog.py:122
#: pysollib/tk/edittextdialog.py:82 pysollib/tk/fontsdialog.py:143
#: pysollib/tk/fontsdialog.py:205 pysollib/tk/gameinfodialog.py:155
#: pysollib/tk/playeroptionsdialog.py:85
@ -510,211 +510,211 @@ msgstr "Ошибка при сохранении игры"
msgid "Error while saving game"
msgstr "Ошибка при сохранении игры"
#: pysollib/gamedb.py:120
#: pysollib/gamedb.py:121
msgid "Baker's Dozen"
msgstr ""
#: pysollib/gamedb.py:121
#: pysollib/gamedb.py:122
msgid "Beleaguered Castle"
msgstr ""
#: pysollib/gamedb.py:122
#: pysollib/gamedb.py:123
msgid "Canfield"
msgstr ""
#: pysollib/gamedb.py:123
#: pysollib/gamedb.py:124
msgid "Fan"
msgstr ""
#: pysollib/gamedb.py:124
#: pysollib/gamedb.py:125
msgid "Forty Thieves"
msgstr ""
#: pysollib/gamedb.py:125
#: pysollib/gamedb.py:126
msgid "FreeCell"
msgstr ""
#: pysollib/gamedb.py:126
#: pysollib/gamedb.py:127
msgid "Golf"
msgstr ""
#: pysollib/gamedb.py:127
#: pysollib/gamedb.py:128
msgid "Gypsy"
msgstr ""
#: pysollib/gamedb.py:128
#: pysollib/gamedb.py:129
msgid "Klondike"
msgstr ""
#: pysollib/gamedb.py:129
#: pysollib/gamedb.py:130
msgid "Montana"
msgstr ""
#: pysollib/gamedb.py:130
#: pysollib/gamedb.py:131
msgid "Napoleon"
msgstr ""
#: pysollib/gamedb.py:131
#: pysollib/gamedb.py:132
msgid "Numerica"
msgstr ""
#: pysollib/gamedb.py:132
#: pysollib/gamedb.py:133
msgid "Pairing"
msgstr ""
#: pysollib/gamedb.py:133
#: pysollib/gamedb.py:134
msgid "Raglan"
msgstr ""
#: pysollib/gamedb.py:134 pysollib/gamedb.py:167
#: pysollib/gamedb.py:135 pysollib/gamedb.py:168
msgid "Simple games"
msgstr "Простые игры"
#: pysollib/gamedb.py:135
#: pysollib/gamedb.py:136
msgid "Spider"
msgstr ""
#: pysollib/gamedb.py:136
#: pysollib/gamedb.py:137
msgid "Terrace"
msgstr ""
#: pysollib/gamedb.py:137
#: pysollib/gamedb.py:138
msgid "Yukon"
msgstr ""
#: pysollib/gamedb.py:138 pysollib/gamedb.py:171
#: pysollib/gamedb.py:139 pysollib/gamedb.py:172
msgid "One-Deck games"
msgstr "Игры с одной колодой"
#: pysollib/gamedb.py:139 pysollib/gamedb.py:172
#: pysollib/gamedb.py:140 pysollib/gamedb.py:173
msgid "Two-Deck games"
msgstr "Игры с двумя колодами"
#: pysollib/gamedb.py:140 pysollib/gamedb.py:173
#: pysollib/gamedb.py:141 pysollib/gamedb.py:174
msgid "Three-Deck games"
msgstr "Игры с тремя колодами"
#: pysollib/gamedb.py:141 pysollib/gamedb.py:174
#: pysollib/gamedb.py:142 pysollib/gamedb.py:175
msgid "Four-Deck games"
msgstr "Игры с четырьмя колодами"
#: pysollib/gamedb.py:153
#: pysollib/gamedb.py:154
msgid "Baker's Dozen type"
msgstr "Игры типа Чёртова Дюжина (Baker's Dozen)"
#: pysollib/gamedb.py:154
#: pysollib/gamedb.py:155
msgid "Beleaguered Castle type"
msgstr "Игры типа Осаждённый Замок (Beleaguered Castle)"
#: pysollib/gamedb.py:155
#: pysollib/gamedb.py:156
msgid "Canfield type"
msgstr "Игры типа Кенфилд (Canfield)"
#: pysollib/gamedb.py:156
#: pysollib/gamedb.py:157
msgid "Fan type"
msgstr "Игры типа Веер (Fan)"
#: pysollib/gamedb.py:157
#: pysollib/gamedb.py:158
msgid "Forty Thieves type"
msgstr "Игры типа Сорок Воров (Forty Thieves)"
#: pysollib/gamedb.py:158
#: pysollib/gamedb.py:159
msgid "FreeCell type"
msgstr "Игры типа Свободная Ячейка (FreeCell)"
#: pysollib/gamedb.py:159
#: pysollib/gamedb.py:160
msgid "Golf type"
msgstr "Игры типа Гольф (Golf)"
#: pysollib/gamedb.py:160
#: pysollib/gamedb.py:161
msgid "Gypsy type"
msgstr "Игры типа Цыганский Пасьянс (Gypsy)"
#: pysollib/gamedb.py:161
#: pysollib/gamedb.py:162
msgid "Klondike type"
msgstr "Игры типа Клондайк (Klondike)"
#: pysollib/gamedb.py:162
#: pysollib/gamedb.py:163
msgid "Montana type"
msgstr "Игры типа Монтана (Montana)"
#: pysollib/gamedb.py:163
#: pysollib/gamedb.py:164
msgid "Napoleon type"
msgstr "Игры типа Наполеон (Napoleon)"
#: pysollib/gamedb.py:164
#: pysollib/gamedb.py:165
msgid "Numerica type"
msgstr "Игры числового типа (Numerica)"
#: pysollib/gamedb.py:165
#: pysollib/gamedb.py:166
msgid "Pairing type"
msgstr "Парные игры"
#: pysollib/gamedb.py:166
#: pysollib/gamedb.py:167
msgid "Raglan type"
msgstr "Игры типа Реглан (Raglan)"
#: pysollib/gamedb.py:168
#: pysollib/gamedb.py:169
msgid "Spider type"
msgstr "Игры типа Паук (Spider)"
#: pysollib/gamedb.py:169
#: pysollib/gamedb.py:170
msgid "Terrace type"
msgstr "Игры типа Терраса (Terrace)"
#: pysollib/gamedb.py:170
#: pysollib/gamedb.py:171
msgid "Yukon type"
msgstr "Игры типа Юкон (Yukon)"
#: pysollib/gamedb.py:178 pysollib/gamedb.py:186
#: pysollib/gamedb.py:179 pysollib/gamedb.py:187
msgid "French type"
msgstr "Классические"
#: pysollib/gamedb.py:179 pysollib/gamedb.py:187 pysollib/gamedb.py:195
#: pysollib/gamedb.py:180 pysollib/gamedb.py:188 pysollib/gamedb.py:196
msgid "Ganjifa type"
msgstr "Игры типа Ганджифа"
#: pysollib/gamedb.py:180 pysollib/gamedb.py:188 pysollib/gamedb.py:196
#: pysollib/gamedb.py:181 pysollib/gamedb.py:189 pysollib/gamedb.py:197
msgid "Hanafuda type"
msgstr "Игры типа Ханафуда"
#: pysollib/gamedb.py:181 pysollib/gamedb.py:189 pysollib/gamedb.py:203
#: pysollib/gamedb.py:182 pysollib/gamedb.py:190 pysollib/gamedb.py:204
msgid "Hex A Deck type"
msgstr "Игры типа Hex A Deck"
#: pysollib/gamedb.py:182 pysollib/gamedb.py:190 pysollib/gamedb.py:208
#: pysollib/gamedb.py:183 pysollib/gamedb.py:191 pysollib/gamedb.py:209
msgid "Tarock type"
msgstr "Таро"
#: pysollib/gamedb.py:194
#: pysollib/gamedb.py:195
msgid "Dashavatara Ganjifa type"
msgstr "Игры типа Дашаватара Ганджифа"
#: pysollib/gamedb.py:197
#: pysollib/gamedb.py:198
msgid "Mughal Ganjifa type"
msgstr "Игры типа Мугал Ганджифа"
#: pysollib/gamedb.py:198
#: pysollib/gamedb.py:199
msgid "Navagraha Ganjifa type"
msgstr "Игры типа Наваграха Ганджифа"
#: pysollib/gamedb.py:202
#: pysollib/gamedb.py:203
msgid "Shisen-Sho"
msgstr "Шисен-Сё"
#: pysollib/gamedb.py:204
#: pysollib/gamedb.py:205
msgid "Matrix type"
msgstr "Мозаика"
#: pysollib/gamedb.py:205
#: pysollib/gamedb.py:206
msgid "Memory type"
msgstr "Игры на запоминание"
#: pysollib/gamedb.py:206
#: pysollib/gamedb.py:207
msgid "Poker type"
msgstr "Покер"
#: pysollib/gamedb.py:207
#: pysollib/gamedb.py:208
msgid "Puzzle type"
msgstr "Пазлы"
@ -1331,11 +1331,11 @@ msgstr "Не найден файл помощи\n"
msgid " Help"
msgstr " Помощь"
#: pysollib/main.py:67 pysollib/main.py:284
#: pysollib/main.py:68 pysollib/main.py:287
msgid " installation error"
msgstr " проблема с установкой"
#: pysollib/main.py:68
#: pysollib/main.py:69
msgid ""
"No %ss were found !!!\n"
"\n"
@ -1345,11 +1345,11 @@ msgid ""
"Please check your %s installation.\n"
msgstr ""
#: pysollib/main.py:75 pysollib/main.py:292 pysollib/tk/menubar.py:382
#: pysollib/main.py:76 pysollib/main.py:295 pysollib/tk/menubar.py:382
msgid "&Quit"
msgstr "В&ыход"
#: pysollib/main.py:99
#: pysollib/main.py:100
msgid ""
"%s: %s\n"
"try %s --help for more information"
@ -1357,7 +1357,7 @@ msgstr ""
"%s: %s\n"
"попробуйте %s --help для получения более подробной информации"
#: pysollib/main.py:143
#: pysollib/main.py:147
msgid ""
"Usage: %s [OPTIONS] [FILE]\n"
" -g --game=GAMENAME start game GAMENAME\n"
@ -1389,7 +1389,7 @@ msgstr ""
" FILE - имя файла сохранённой игры\n"
" MOD - one of following: pss(default), pygame, oss, win\n"
#: pysollib/main.py:161
#: pysollib/main.py:165
msgid ""
"%s: too many files\n"
"try %s --help for more information"
@ -1397,7 +1397,7 @@ msgstr ""
"\"%s: слишком много файлов\n"
"попробуйте %s --help для получения более подробной информации"
#: pysollib/main.py:165
#: pysollib/main.py:169
msgid ""
"%s: invalid file name\n"
"try %s --help for more information"
@ -1405,7 +1405,7 @@ msgstr ""
"%s: неправильное имя файла\n"
"попробуйте %s --help для получения более подробной информации"
#: pysollib/main.py:285
#: pysollib/main.py:288
msgid ""
"\n"
"No games were found !!!\n"
@ -1416,18 +1416,18 @@ msgid ""
"Please check your %s installation.\n"
msgstr ""
#: pysollib/main.py:371 pysollib/main.py:379
#: pysollib/main.py:374 pysollib/main.py:382
msgid " installation problem"
msgstr ""
#: pysollib/main.py:372
#: pysollib/main.py:375
msgid ""
"Your Python installation is compiled without thread support.\n"
"\n"
"Sounds and background music will be disabled."
msgstr ""
#: pysollib/main.py:380
#: pysollib/main.py:383
msgid ""
"The pysolsoundserver module was not found.\n"
"\n"
@ -1437,7 +1437,7 @@ msgstr ""
"\n"
"Звук и фоновая музыка будут недоступны"
#: pysollib/main.py:387
#: pysollib/main.py:390
msgid "Welcome to "
msgstr "Добро пожаловать в "

View file

@ -853,6 +853,7 @@ class Application:
self.top.busyUpdate()
def loadImages1(self):
# load dialog images
dir = os.path.join("images", "logos")
for f in ("joker07_40_774",
"joker08_40_774",
@ -861,12 +862,33 @@ class Application:
"joker11_100_774",
"joker10_100",):
self.gimages.logos.append(self.dataloader.findImage(f, dir))
if os.name == 'posix':
dir = os.path.join('images', 'dialog', 'bluecurve')
else:
dir = os.path.join('images', 'dialog', 'default')
for f in ('error', 'info', 'question', 'warning'):
fn = self.dataloader.findImage(f, dir)
im = loadImage(fn)
MfxMessageDialog.img[f] = im
# load button images
if 0 and TOOLKIT == 'tk':
dir = os.path.join('images', 'buttons', 'bluecurve')
for n, f in (
(_('&OK'), 'ok'),
(_('&Cancel'), 'cancel'),
(_('&New game'), 'new'),
):
fn = self.dataloader.findImage(f, dir)
im = loadImage(fn)
MfxDialog.button_img[n] = im
def loadImages2(self):
# load canvas images
dir = "images"
##for f in ("noredeal", "redeal",):
for f in ("stopsign", "redeal",):
self.gimages.redeal.append(self.dataloader.findImage(f, dir))
def loadImages2(self):
dir = os.path.join("images", "demo")
for f in ("demo01", "demo02", "demo03", "demo04", "demo05",):
self.gimages.demo.append(self.dataloader.findImage(f, dir))
@ -878,32 +900,16 @@ class Application:
## self.gimages.stats.append(self.dataloader.findImage(f, dir))
def loadImages3(self):
if os.name == 'posix':
dir = os.path.join('images', 'dialog', 'bluecurve')
else:
dir = os.path.join('images', 'dialog', 'default')
for f in ('error', 'info', 'question', 'warning'):
fn = self.dataloader.findImage(f, dir)
im = loadImage(fn)
MfxMessageDialog.img[f] = im
if 0 and TOOLKIT == 'tk':
dir = os.path.join('images', 'buttons', 'bluecurve')
for n, f in (
(_('&OK'), 'ok'),
(_('&Cancel'), 'cancel'),
(_('&New game'), 'new'),
):
fn = self.dataloader.findImage(f, dir)
im = loadImage(fn)
MfxDialog.button_img[n] = im
# load treeview images
SelectDialogTreeData.img = []
dir = os.path.join('images', 'tree')
for f in ('folder', 'openfolder', 'node', 'emptynode'):
fn = self.dataloader.findImage(f, dir)
im = loadImage(fn)
SelectDialogTreeData.img.append(im)
# load htmlviewer images
dir = os.path.join('images', 'htmlviewer')
#
fn = self.dataloader.findImage('disk', dir)
HTMLViewer.symbols_fn['disk'] = fn

View file

@ -48,16 +48,16 @@ class Capricieuse(Game):
# game layout
#
def createGame(self, **layout):
def createGame(self, rows=12):
# create layout
l, s = Layout(self), self.s
# set window
self.setSize(l.XM+12*l.XS, l.YM+2*l.YS+15*l.YOFFSET)
self.setSize(l.XM+rows*l.XS, l.YM+2*l.YS+15*l.YOFFSET)
# create stacks
x, y, = l.XM+2*l.XS, l.YM
x, y, = l.XM+(rows-8)*l.XS/2, l.YM
for i in range(4):
s.foundations.append(SS_FoundationStack(x, y, self, suit=i))
x = x + l.XS
@ -66,7 +66,7 @@ class Capricieuse(Game):
base_rank=KING, dir=-1))
x = x + l.XS
x, y, = l.XM, y + l.YS
for i in range(12):
for i in range(rows):
s.rows.append(self.RowStack_Class(x, y, self,
max_move=1, max_accept=1))
x = x + l.XS
@ -114,7 +114,7 @@ class Nationale(Capricieuse):
class Strata(Game):
def createGame(self, **layout):
def createGame(self):
# create layout
l, s = Layout(self), self.s
@ -150,6 +150,27 @@ class Strata(Game):
shallHighlightMatch = Game._shallHighlightMatch_AC
# /***********************************************************************
# // Fifteen
# ************************************************************************/
class Fifteen(Capricieuse):
Talon_Class = InitialDealTalonStack
def createGame(self):
Capricieuse.createGame(self, rows=15)
def startGame(self):
for i in range(6):
self.s.talon.dealRow(frames=0)
self.startDealSample()
self.s.talon.dealRowAvail()
def _shuffleHook(self, cards):
return cards
# register the game
registerGame(GameInfo(292, Capricieuse, "Capricieuse",
GI.GT_BAKERS_DOZEN | GI.GT_OPEN, 2, 2, GI.SL_MOSTLY_SKILL))
@ -159,4 +180,6 @@ registerGame(GameInfo(293, Nationale, "Nationale",
registerGame(GameInfo(606, Strata, "Strata",
GI.GT_BAKERS_DOZEN | GI.GT_OPEN, 2, 2, GI.SL_MOSTLY_SKILL,
ranks=(0, 6, 7, 8, 9, 10, 11, 12) ))
registerGame(GameInfo(673, Fifteen, "Fifteen",
GI.GT_BAKERS_DOZEN | GI.GT_OPEN, 2, 0, GI.SL_MOSTLY_SKILL))

View file

@ -1081,6 +1081,39 @@ class ShortTail(LongTail):
LongTail.createGame(self, rows=8, playcards=24)
# /***********************************************************************
# // Incompatibility
# ************************************************************************/
class Incompatibility(Spidike):
Talon_Class = GroundForADivorce_Talon
RowStack_Class = Spider_SS_RowStack
def createGame(self):
Spidike.createGame(self, rows=10)
def startGame(self):
for i in range(4):
self.s.talon.dealRow(frames=0)
self.startDealSample()
self.s.talon.dealRow()
# /***********************************************************************
# // Scorpion II
# ************************************************************************/
class ScorpionII(Scorpion):
def startGame(self):
for i in (3, 3, 3, 0, 0, 0):
self.s.talon.dealRow(rows=self.s.rows[:i], flip=0, frames=0)
self.s.talon.dealRow(rows=self.s.rows[i:], flip=1, frames=0)
self.startDealSample()
self.s.talon.dealRow()
# register the game
registerGame(GameInfo(10, RelaxedSpider, "Relaxed Spider",
GI.GT_SPIDER | GI.GT_RELAXED, 2, 0, GI.SL_MOSTLY_SKILL))
@ -1193,4 +1226,8 @@ registerGame(GameInfo(571, ShortTail, "Short Tail",
registerGame(GameInfo(670, ChineseSpider, "Chinese Spider",
GI.GT_SPIDER, 4, 0, GI.SL_MOSTLY_SKILL,
suits=(0, 1, 2),))
registerGame(GameInfo(671, Incompatibility, "Incompatibility",
GI.GT_SPIDER, 2, 0, GI.SL_MOSTLY_SKILL))
registerGame(GameInfo(672, ScorpionII, "Scorpion II",
GI.GT_SPIDER, 1, 0, GI.SL_MOSTLY_SKILL))

View file

@ -35,27 +35,26 @@
# imports
import sys, os, locale
import sys, os
import traceback
import getopt
import gettext
# PySol imports
from mfxutil import destruct, EnvError
from util import CARDSET, DataLoader
import settings
from settings import PACKAGE, TOOLKIT, VERSION, SOUND_MOD
from resource import Tile
from gamedb import GI
from app import Application
from pysolaudio import thread, pysolsoundserver
from pysolaudio import AbstractAudioClient, PysolSoundServerModuleClient
from pysolaudio import Win32AudioClient, OSSAudioClient, PyGameAudioClient
import settings
PACKAGE, SOUND_MOD = settings.PACKAGE, settings.SOUND_MOD
# Toolkit imports
from pysoltk import tkversion, wm_withdraw, loadImage
from pysoltk import wm_withdraw, loadImage
from pysoltk import MfxMessageDialog, MfxExceptionDialog
from pysoltk import TclError, MfxRoot
from pysoltk import MfxRoot
from pysoltk import PysolProgressBar
@ -97,21 +96,21 @@ def parse_option(argv):
"sound-mod=",
"help"])
except getopt.GetoptError, err:
print _("%s: %s\ntry %s --help for more information") \
print >> sys.stderr, _("%s: %s\ntry %s --help for more information") \
% (prog_name, err, prog_name)
return None
opts = {"help": False,
"game": None,
"gameid": None,
"fg": None,
"bg": None,
"fn": None,
"theme": None,
"french-only": False,
"noplugins": False,
"nosound": False,
"sound-mod": None,
"debug": None,
opts = {"help" : False,
"game" : None,
"gameid" : None,
"fg" : None,
"bg" : None,
"fn" : None,
"theme" : None,
"french-only" : False,
"noplugins" : False,
"nosound" : False,
"sound-mod" : None,
"debug" : None,
}
for i in optlist:
if i[0] in ("-h", "--help"):
@ -162,11 +161,11 @@ def parse_option(argv):
return None
if len(args) > 1:
print _("%s: too many files\ntry %s --help for more information") % (prog_name, prog_name)
print >> sys.stderr, _("%s: too many files\ntry %s --help for more information") % (prog_name, prog_name)
return None
filename = args and args[0] or None
if filename and not os.path.isfile(filename):
print _("%s: invalid file name\ntry %s --help for more information") % (prog_name, prog_name)
print >> sys.stderr, _("%s: invalid file name\ntry %s --help for more information") % (prog_name, prog_name)
return None
return opts, filename
@ -332,7 +331,7 @@ Please check your %s installation.
if not app.audio.CAN_PLAY_SOUND:
app.opt.sound = 0
if not opts["nosound"] and not opts['sound-mod'] and pysolsoundserver and not app.audio.connected:
print PACKAGE + ": could not connect to pysolsoundserver, sound disabled."
print >> sys.stderr, PACKAGE + ": could not connect to pysolsoundserver, sound disabled."
warn_pysolsoundserver = 1
app.audio.updateSettings()
# start up the background music
@ -364,9 +363,9 @@ Please check your %s installation.
if thread is None:
warn_thread = 1
if thread is None:
print PACKAGE + ": Python thread module not found, sound disabled."
print >> sys.stderr, PACKAGE+": Python thread module not found, sound disabled."
else:
print PACKAGE + ": pysolsoundserver module not found, sound disabled."
print >> sys.stderr, PACKAGE+": pysolsoundserver module not found, sound disabled."
sys.stdout.flush()
if not opts["nosound"]:
if warn_thread:
@ -415,39 +414,10 @@ Sounds and background music will be disabled.'''),
# /***********************************************************************
# //
# // main
# ************************************************************************/
def pysol_exit(app):
# clean up
if app.audio is not None:
app.audio.destroy() # shut down audio
destruct(app.audio)
##app.wm_withdraw()
if app.canvas is not None:
app.canvas.destroy()
destruct(app.canvas)
if app.toolbar is not None:
app.toolbar.destroy()
destruct(app.toolbar)
if app.menubar is not None:
destruct(app.menubar)
top = app.top
destruct(app)
app = None
if top is not None:
try:
top.destroy()
except:
pass
destruct(top)
# /***********************************************************************
# // PySol main entry
# ************************************************************************/
def pysol_main(args):
def main(args=None):
# create the application
app = Application()
r = pysol_init(app, args)
@ -455,63 +425,4 @@ def pysol_main(args):
return r
# let's go - enter the mainloop
app.mainloop()
## try:
## r = pysol_init(app, args)
## if r != 0:
## return r
## # let's go - enter the mainloop
## app.mainloop()
## except KeyboardInterrupt, ex:
## print "Exiting on SIGINT."
## pass
## except StandardError, ex:
## if not app.top:
## raise
## t = str(ex.__class__)
## if str(ex): t = t + ":\n" + str(ex)
## d = MfxMessageDialog(app.top, title=PACKAGE + " internal error",
## text="Internal errror. Please report this bug:\n\n"+t,
## strings=("&Quit",), bitmap="error")
try:
pysol_exit(app)
except:
pass
return 0
# /***********************************************************************
# // main
# ************************************************************************/
def main(args=None):
# setup (mainly for JPython)
if not hasattr(sys, "platform"):
sys.platform = "unknown"
if not hasattr(sys, "executable"):
sys.executable = None
if not hasattr(os, "defpath"):
os.defpath = ""
# check versions
if sys.platform[:4] != "java":
if sys.version[:5] < "1.5.2":
print "%s needs Python 1.5.2 or better (you have %s)" % (PACKAGE, sys.version)
return 1
assert len(tkversion) == 4
if TOOLKIT == "tk":
import Tkinter
if tkversion < (8, 0, 0, 0):
print "%s needs Tcl/Tk 8.0 or better (you have %s)" % (PACKAGE, str(tkversion))
return 1
# check that Tkinter bindings are also at version 1.5.2
if not hasattr(Tkinter.Wm, "wm_aspect") or not hasattr(Tkinter.Canvas, "tag_lower"):
print "%s: please update the Python-Tk bindings (aka Tkinter) to version 1.5.2 or better" % (PACKAGE,)
return 1
# check Python
if -1 % 13 != 12:
raise Exception, "-1 % 13 != 12"
# run it
return pysol_main(args)

View file

@ -320,90 +320,6 @@ def unpickle(filename):
return obj
# /***********************************************************************
# //
# ************************************************************************/
def spawnv(file, args=()):
if not args:
args = ()
args = (file,) + tuple(args)
#
if not os.path.isfile(file):
raise os.error, str(file)
mode = os.stat(file)[0]
if not (mode & 0100):
return 0
#
if os.name == "posix":
pid = os.fork()
if pid == -1:
raise os.error, "fork failed"
if pid != 0:
# parent
try:
os.waitpid(pid, 0)
except:
pass
return 1
# child
# 1) close all files
for fd in range(255, -1, -1):
try:
os.close(fd)
except:
pass
# 2) open stdin, stdout and stderr to /dev/null
try:
fd = os.open("/dev/null", os.O_RDWR)
os.dup(fd)
os.dup(fd)
except:
pass
# 3) fork again and exec program
try:
if os.fork() == 0:
try:
os.setpgrp()
except:
pass
os.execv(file, args)
except:
pass
# 4) exit
while 1:
os._exit(0)
return 0
def spawnvp(file, args=()):
if file and os.path.isabs(file):
try:
if spawnv(file, args):
return file
except:
##if traceback: traceback.print_exc()
pass
return None
#
path = os.environ.get("PATH", "")
path = path.split(os.pathsep)
for dir in path:
try:
if dir and os.path.isdir(dir):
f = os.path.join(dir, file)
try:
if spawnv(f, args):
return f
except:
##if traceback: traceback.print_exc()
pass
except:
##if traceback: traceback.print_exc()
pass
return None
# /***********************************************************************
# //
# ************************************************************************/

View file

@ -41,7 +41,7 @@ import Tile as Tkinter
import traceback
# PySol imports
from pysollib.mfxutil import destruct, kwdefault, KwStruct, Struct, spawnvp
from pysollib.mfxutil import destruct, kwdefault, KwStruct, Struct
from pysollib.settings import PACKAGE
from pysollib.pysolaudio import pysolsoundserver

View file

@ -496,7 +496,8 @@ to open the following URL:
def errorDialog(self, msg):
d = MfxMessageDialog(self.parent, title=PACKAGE+" HTML Problem",
text=msg, bitmap="warning",
text=msg,
##bitmap="warning", # FIXME: this interp don't have images
strings=(_("&OK"),), default=0)
def getImage(self, fn):

View file

@ -41,7 +41,7 @@ import Tkinter
import traceback
# PySol imports
from pysollib.mfxutil import destruct, kwdefault, KwStruct, Struct, spawnvp
from pysollib.mfxutil import destruct, kwdefault, KwStruct, Struct
from pysollib.settings import PACKAGE
from pysollib.pysolaudio import pysolsoundserver

View file

@ -495,7 +495,8 @@ to open the following URL:
def errorDialog(self, msg):
d = MfxMessageDialog(self.parent, title=PACKAGE+" HTML Problem",
text=msg, bitmap="warning",
text=msg,
##bitmap="warning", # FIXME: this interp don't have images
strings=(_("&OK"),), default=0)
def getImage(self, fn):