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

Merge branch 'solver_dialog_remove_so_called_solving_method' into deal_ms_cards

Conflicts:
	pysollib/actions.py
	pysollib/app.py
	pysollib/game.py
	pysollib/help.py
	pysollib/images.py
	pysollib/init.py
	pysollib/layout.py
	pysollib/main.py
	pysollib/stack.py
This commit is contained in:
Shlomi Fish 2012-12-12 16:50:53 +02:00
commit ce7a34ba5a
120 changed files with 740 additions and 266 deletions

11
.gitignore vendored Normal file
View file

@ -0,0 +1,11 @@
tests/individually-importing/*.py
build/*
data/cardsets/*
data/html/*
dist/*
docs/all_games.html
html-src/html/*
locale/*
po/pl.po
po/ru.po
*.pyc

View file

@ -58,3 +58,8 @@ mo:
done done
cp -f locale/pl/LC_MESSAGES/pysol.mo locale/pl_PL/LC_MESSAGES/pysol.mo cp -f locale/pl/LC_MESSAGES/pysol.mo locale/pl_PL/LC_MESSAGES/pysol.mo
cp -f locale/it/LC_MESSAGES/pysol.mo locale/it_IT/LC_MESSAGES/pysol.mo cp -f locale/it/LC_MESSAGES/pysol.mo locale/it_IT/LC_MESSAGES/pysol.mo
test:
@rm -f tests/individually-importing/*.py # To avoid stray files
python scripts/gen_individual_importing_tests.py
runprove tests/individually-importing/*.py

View file

@ -0,0 +1,14 @@
<h1>Daddy Longlegs</h1>
<p>Spider type. 1 deck. No redeal.</p>
<h3>Object</h3>
<p>Group all the cards into four sets of 13 cards by suit in ascending sequence from Ace to King.</p>
<h3>Rules</h3>
<p>Cards are dealt four at a time, one card into each of four piles. A card can be moved onto the end of another pile, if it is the same suit and follows in sequence. The rest of the pile moves with the card. Only an Ace (with the rest of its pile) can move to an empty space.</p>
<p>At any time, you can deal more cards by clicking on the talon. One card will be added to each of the playing piles.</p>
<h3>History</h3>
<p>I created Daddy Longlegs in the early 1980's to amuse myself with a different solitaire variant. Over the years, I have implemented this game many times under the name of "Deal Four" as an exercise when learning new programming languages.</p>
<p>I learned of pysol in 2006 and almost immediately realized that it is a perfect platform for Daddy Longlegs. Thank you, Markus Oberhumer!</p>
<h3>Author</h3>
<p>Jim Sizelove</p>
<p>sizelji@comcast.net</p>
<p>March 8, 2007</p>

View file

@ -26,7 +26,7 @@
from random import randint from random import randint
# PySol imports # PySol imports
from mfxutil import SubclassResponsibility from pysollib.mfxutil import SubclassResponsibility
# ************************************************************************ # ************************************************************************
# * # *

View file

@ -26,17 +26,17 @@
import os, locale import os, locale
# PySol imports # PySol imports
from mfxutil import SubclassResponsibility from pysollib.mfxutil import SubclassResponsibility
from mfxutil import Struct, openURL from pysollib.mfxutil import Struct, openURL
from mfxutil import print_err from pysollib.mfxutil import print_err
from pysolrandom import constructRandom from pysollib.pysolrandom import constructRandom
from settings import TITLE, PACKAGE_URL from pysollib.settings import TITLE, PACKAGE_URL
from settings import TOP_TITLE from pysollib.settings import TOP_TITLE
from settings import DEBUG from pysollib.settings import DEBUG
from gamedb import GI from pysollib.gamedb import GI
# stats imports # stats imports
from stats import FileStatsFormatter from pysollib.stats import FileStatsFormatter
from pysollib.pysoltk import SingleGame_StatsDialog, AllGames_StatsDialog from pysollib.pysoltk import SingleGame_StatsDialog, AllGames_StatsDialog
from pysollib.pysoltk import FullLog_StatsDialog, SessionLog_StatsDialog from pysollib.pysoltk import FullLog_StatsDialog, SessionLog_StatsDialog
from pysollib.pysoltk import Status_StatsDialog, Top_StatsDialog from pysollib.pysoltk import Status_StatsDialog, Top_StatsDialog
@ -44,6 +44,7 @@ from pysollib.pysoltk import ProgressionDialog
from pysollib.pysoltk import GameInfoDialog from pysollib.pysoltk import GameInfoDialog
# toolkit imports # toolkit imports
from pysollib.mygettext import _, n_
from pysollib.pysoltk import MfxMessageDialog, MfxSimpleEntry from pysollib.pysoltk import MfxMessageDialog, MfxSimpleEntry
from pysollib.pysoltk import MfxExceptionDialog from pysollib.pysoltk import MfxExceptionDialog
from pysollib.pysoltk import PlayerOptionsDialog from pysollib.pysoltk import PlayerOptionsDialog
@ -54,7 +55,7 @@ from pysollib.pysoltk import EditTextDialog
from pysollib.pysoltk import create_find_card_dialog from pysollib.pysoltk import create_find_card_dialog
from pysollib.pysoltk import create_solver_dialog from pysollib.pysoltk import create_solver_dialog
from pysollib.pysoltk import PysolMenubarTk, PysolToolbarTk from pysollib.pysoltk import PysolMenubarTk, PysolToolbarTk
from help import help_about, help_html from pysollib.help import help_about, help_html
# ************************************************************************ # ************************************************************************

View file

@ -27,26 +27,27 @@ import os, re
import traceback import traceback
# PySol imports # PySol imports
from mfxutil import destruct, Struct from pysollib.mfxutil import destruct, Struct
from mfxutil import pickle, unpickle, UnpicklingError from pysollib.mfxutil import pickle, unpickle, UnpicklingError
from mfxutil import getusername, getprefdir from pysollib.mfxutil import getusername, getprefdir
from mfxutil import latin1_to_ascii, print_err from pysollib.mfxutil import latin1_to_ascii, print_err
from mfxutil import USE_PIL from pysollib.mfxutil import USE_PIL
from util import CARDSET, IMAGE_EXTENSIONS from pysollib.util import CARDSET, IMAGE_EXTENSIONS
from settings import PACKAGE, VERSION_TUPLE, WIN_SYSTEM from pysollib.settings import PACKAGE, VERSION_TUPLE, WIN_SYSTEM
from resource import CSI, CardsetConfig, Cardset, CardsetManager from pysollib.resource import CSI, CardsetConfig, Cardset, CardsetManager
from resource import Tile, TileManager from pysollib.resource import Tile, TileManager
from resource import Sample, SampleManager from pysollib.resource import Sample, SampleManager
from resource import Music, MusicManager from pysollib.resource import Music, MusicManager
from pysollib.images import Images, SubsampledImages from pysollib.images import Images, SubsampledImages
from pysolrandom import PysolRandom from pysollib.pysolrandom import PysolRandom
from gamedb import GI, GAME_DB, loadGame from pysollib.gamedb import GI, GAME_DB, loadGame
from options import Options from pysollib.options import Options
from settings import TOP_SIZE, TOOLKIT from pysollib.settings import TOP_SIZE, TOOLKIT
from settings import DEBUG from pysollib.settings import DEBUG
from winsystems import TkSettings from pysollib.winsystems import TkSettings
# Toolkit imports # Toolkit imports
from pysollib.mygettext import _, n_
from pysollib.pysoltk import wm_withdraw, loadImage from pysollib.pysoltk import wm_withdraw, loadImage
from pysollib.pysoltk import MfxDialog, MfxMessageDialog, MfxExceptionDialog from pysollib.pysoltk import MfxDialog, MfxMessageDialog, MfxExceptionDialog
from pysollib.pysoltk import TclError, MfxScrolledCanvas from pysollib.pysoltk import TclError, MfxScrolledCanvas
@ -58,10 +59,9 @@ from pysollib.pysoltk import HTMLViewer
from pysollib.pysoltk import destroy_find_card_dialog from pysollib.pysoltk import destroy_find_card_dialog
from pysollib.pysoltk import destroy_solver_dialog from pysollib.pysoltk import destroy_solver_dialog
from actions import PysolMenubar from pysollib.actions import PysolMenubar
from actions import PysolToolbar from pysollib.actions import PysolToolbar
from help import help_about, destroy_help_html from pysollib.help import help_about, destroy_help_html
# ************************************************************************ # ************************************************************************
# * Statistics # * Statistics
@ -516,7 +516,7 @@ class Application:
self.nextgame.id, self.nextgame.random = 0, None self.nextgame.id, self.nextgame.random = 0, None
try: try:
self.runGame(id, random) self.runGame(id, random)
except: except Exception:
# try Klondike if current game fails # try Klondike if current game fails
if id == 2: if id == 2:
raise # internal error? raise # internal error?

View file

@ -21,15 +21,14 @@
## ##
##---------------------------------------------------------------------------## ##---------------------------------------------------------------------------##
from gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from util import * from pysollib.util import *
from stack import * from pysollib.stack import *
from game import Game from pysollib.game import Game
from layout import Layout from pysollib.layout import Layout
from hint import AbstractHint, DefaultHint, CautiousDefaultHint, Yukon_Hint from pysollib.hint import AbstractHint, DefaultHint, CautiousDefaultHint, Yukon_Hint
from wizardutil import WizardWidgets
from pysollib.wizardutil import WizardWidgets
# ************************************************************************ # ************************************************************************
# * # *

View file

@ -26,20 +26,23 @@
import time import time
import math import math
import traceback import traceback
from pysollib.mygettext import _, n_
from gettext import ungettext from gettext import ungettext
from cStringIO import StringIO from cStringIO import StringIO
# PySol imports # PySol imports
from mfxutil import Pickler, Unpickler, UnpicklingError from pysollib.mfxutil import Pickler, Unpickler, UnpicklingError
from mfxutil import Image, ImageTk, USE_PIL from pysollib.mfxutil import Image, ImageTk, USE_PIL
from mfxutil import destruct, Struct, SubclassResponsibility from pysollib.mfxutil import destruct, Struct, SubclassResponsibility
from mfxutil import uclock, usleep from pysollib.mfxutil import uclock, usleep
from mfxutil import format_time, print_err from pysollib.mfxutil import format_time, print_err
from settings import PACKAGE, TITLE, TOOLKIT, TOP_TITLE from pysollib.settings import PACKAGE, TITLE, TOOLKIT, TOP_TITLE
from settings import VERSION, VERSION_TUPLE from pysollib.settings import VERSION, VERSION_TUPLE
from settings import DEBUG from pysollib.settings import DEBUG
from gamedb import GI from pysollib.gamedb import GI
from pysolrandom import PysolRandom, LCRandom31 from pysollib.pysolrandom import PysolRandom, LCRandom31
from pysollib.pysoltk import EVENT_HANDLED, EVENT_PROPAGATE from pysollib.pysoltk import EVENT_HANDLED, EVENT_PROPAGATE
from pysollib.pysoltk import CURSOR_WATCH from pysollib.pysoltk import CURSOR_WATCH
from pysollib.pysoltk import bind, wm_map from pysollib.pysoltk import bind, wm_map
@ -48,13 +51,13 @@ from pysollib.pysoltk import MfxMessageDialog, MfxExceptionDialog
from pysollib.pysoltk import MfxCanvasText, MfxCanvasLine, MfxCanvasRectangle from pysollib.pysoltk import MfxCanvasText, MfxCanvasLine, MfxCanvasRectangle
from pysollib.pysoltk import Card from pysollib.pysoltk import Card
from pysollib.pysoltk import reset_solver_dialog from pysollib.pysoltk import reset_solver_dialog
from move import AMoveMove, AFlipMove, AFlipAndMoveMove from pysollib.move import AMoveMove, AFlipMove, AFlipAndMoveMove
from move import ASingleFlipMove, ATurnStackMove from pysollib.move import ASingleFlipMove, ATurnStackMove
from move import ANextRoundMove, ASaveSeedMove, AShuffleStackMove from pysollib.move import ANextRoundMove, ASaveSeedMove, AShuffleStackMove
from move import AUpdateStackMove, AFlipAllMove, ASaveStateMove from pysollib.move import AUpdateStackMove, AFlipAllMove, ASaveStateMove
from move import ASingleCardMove from pysollib.move import ASingleCardMove
from hint import DefaultHint from pysollib.hint import DefaultHint
from help import help_about from pysollib.help import help_about
PLAY_TIME_TIMEOUT = 200 PLAY_TIME_TIMEOUT = 200
@ -254,7 +257,7 @@ class Game:
'%s: %s %s' % (class_name, ncards, self.gameinfo.ncards), '%s: %s %s' % (class_name, ncards, self.gameinfo.ncards),
2) 2)
if self.s.rows: if self.s.rows:
from stack import AC_RowStack, UD_AC_RowStack, \ from pysollib.stack import AC_RowStack, UD_AC_RowStack, \
SS_RowStack, UD_SS_RowStack, \ SS_RowStack, UD_SS_RowStack, \
RK_RowStack, UD_RK_RowStack, \ RK_RowStack, UD_RK_RowStack, \
Spider_AC_RowStack, Spider_SS_RowStack Spider_AC_RowStack, Spider_SS_RowStack
@ -3303,8 +3306,8 @@ in the current implementation.''') % version)
# #
def showStackDesc(self): def showStackDesc(self):
from pysoltk import StackDesc from pysollib.pysoltk import StackDesc
from stack import InitialDealTalonStack from pysollib.stack import InitialDealTalonStack
sd_list = [] sd_list = []
for s in self.allstacks: for s in self.allstacks:
sd = (s.__class__.__name__, s.cap.base_rank, s.cap.dir) sd = (s.__class__.__name__, s.cap.base_rank, s.cap.dir)

View file

@ -26,10 +26,11 @@
import imp import imp
# PySol imports # PySol imports
from mfxutil import Struct, print_err from pysollib.mfxutil import Struct, print_err
from resource import CSI from pysollib.resource import CSI
import settings import pysollib.settings
from pysollib.mygettext import _, n_
# ************************************************************************ # ************************************************************************
# * constants # * constants
@ -420,18 +421,18 @@ class GameInfo(Struct):
game_type = game_type & 1023 game_type = game_type & 1023
name = to_unicode(name) name = to_unicode(name)
en_name = name # for app.getGameRulesFilename en_name = name # for app.getGameRulesFilename
if settings.TRANSLATE_GAME_NAMES: if pysollib.settings.TRANSLATE_GAME_NAMES:
name = _(name) name = _(name)
if not short_name: if not short_name:
short_name = name short_name = name
else: else:
short_name = to_unicode(short_name) short_name = to_unicode(short_name)
if settings.TRANSLATE_GAME_NAMES: if pysollib.settings.TRANSLATE_GAME_NAMES:
short_name = _(short_name) short_name = _(short_name)
if isinstance(altnames, basestring): if isinstance(altnames, basestring):
altnames = (altnames,) altnames = (altnames,)
altnames = [to_unicode(n) for n in altnames] altnames = [to_unicode(n) for n in altnames]
if settings.TRANSLATE_GAME_NAMES: if pysollib.settings.TRANSLATE_GAME_NAMES:
altnames = [_(n) for n in altnames] altnames = [_(n) for n in altnames]
# #
if not (1 <= category <= 9): if not (1 <= category <= 9):
@ -545,7 +546,7 @@ class GameManager:
##print gi.id, gi.short_name.encode('utf-8') ##print gi.id, gi.short_name.encode('utf-8')
if not isinstance(gi, GameInfo): if not isinstance(gi, GameInfo):
raise GameInfoException("wrong GameInfo class") raise GameInfoException("wrong GameInfo class")
if self.check_game and settings.CHECK_GAMES: if self.check_game and pysollib.settings.CHECK_GAMES:
self._check_game(gi) self._check_game(gi)
##if 0 and gi.si.game_flags & GI.GT_XORIGINAL: ##if 0 and gi.si.game_flags & GI.GT_XORIGINAL:
## return ## return

View file

@ -35,6 +35,7 @@ import camelot
import canfield import canfield
import capricieuse import capricieuse
import curdsandwhey import curdsandwhey
import daddylonglegs
import dieboesesieben import dieboesesieben
import diplomat import diplomat
import doublets import doublets

View file

@ -26,6 +26,7 @@ __all__ = []
# imports # imports
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys, math import sys, math
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -1,32 +1,3 @@
#!/usr/bin/env python
# -*- mode: python; coding: utf-8; -*-
##---------------------------------------------------------------------------##
##
## Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer
## Copyright (C) 2003 Mt. Hood Playing Card Co.
## Copyright (C) 2005-2009 Skomoroh
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
##
##---------------------------------------------------------------------------##
__all__ = []
# imports
import sys
# PySol imports
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -26,6 +26,7 @@ __all__ = []
# imports # imports
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -1,32 +1,3 @@
#!/usr/bin/env python
# -*- mode: python; coding: utf-8; -*-
##---------------------------------------------------------------------------##
##
## Copyright (C) 1998-2003 Markus Franz Xaver Johannes Oberhumer
## Copyright (C) 2003 Mt. Hood Playing Card Co.
## Copyright (C) 2005-2009 Skomoroh
##
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program. If not, see <http://www.gnu.org/licenses/>.
##
##---------------------------------------------------------------------------##
__all__ = []
# imports
import sys
# PySol imports
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -0,0 +1,57 @@
## vim:ts=4:et:nowrap:fileencoding=utf-8
##
# imports
import sys
# PySol imports
from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import *
from pysollib.stack import *
from pysollib.game import Game
from pysollib.layout import Layout
#***********************************************************************
# Daddy Longlegs (by Jim Sizelove)
#***********************************************************************
class DaddyLonglegs(Game):
Talon_Class = DealRowTalonStack
RowStack_Class = StackWrapper(Yukon_SS_RowStack, dir=1, base_rank=ACE)
def createGame(self, **layout):
# create layout
l, s = Layout(self), self.s
# set window
self.setSize(l.XM + 6*l.XS, l.YM + 7*l.YS)
# create stacks
x, y, = l.XM, l.YM
s.talon = self.Talon_Class(x, y, self)
l.createText(s.talon, "ss")
x = x + 3*l.XS/2
for i in range(4):
s.rows.append(self.RowStack_Class(x, y, self))
x = x + l.XS
# define stack-groups
l.defaultStackGroups()
def startGame(self):
self.s.talon.dealRow()
def isGameWon(self):
if self.s.talon.cards:
return 0
for row in self.s.rows:
if not isSameSuitSequence(row.cards, dir=1):
return 0
return 1
# register the game
registerGame(GameInfo(555001, DaddyLonglegs, "Daddy Longlegs",
GI.GT_SPIDER, 1, 0, GI.SL_MOSTLY_SKILL,
rules_filename="daddylonglegs.html"))

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys, types import sys, types
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault, Struct from pysollib.mfxutil import kwdefault, Struct

View file

@ -26,6 +26,7 @@ __all__ = []
# imports # imports
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -30,6 +30,7 @@ import time
from gettext import ungettext from gettext import ungettext
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault, Struct, Image from pysollib.mfxutil import kwdefault, Struct, Image

View file

@ -29,6 +29,7 @@ import sys
from gettext import ungettext from gettext import ungettext
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys, time import sys, time
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -26,6 +26,7 @@ __all__ = []
# imports # imports
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -26,6 +26,7 @@ __all__ = []
# Imports # Imports
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -26,7 +26,9 @@ __all__ = []
# Imports # Imports
import sys, math, time import sys, math, time
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys, math import sys, math
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -52,6 +52,7 @@ __all__ = [
import sys, math import sys, math
from pysollib.mygettext import _, n_
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault
from pysollib.stack import * from pysollib.stack import *

View file

@ -27,6 +27,7 @@ __all__ = []
import sys, math import sys, math
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys, math import sys, math
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -27,6 +27,7 @@ __all__ = []
import sys import sys
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import registerGame, GameInfo, GI from pysollib.gamedb import registerGame, GameInfo, GI
from pysollib.util import * from pysollib.util import *
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -25,7 +25,8 @@
# imports # imports
# PySol imports # PySol imports
from settings import TITLE, PACKAGE_URL, TOOLKIT, VERSION from pysollib.mygettext import _, n_
from pysollib.settings import TITLE, PACKAGE_URL, TOOLKIT, VERSION
from pysollib.pysoltk import make_help_toplevel from pysollib.pysoltk import make_help_toplevel
from pysollib.pysoltk import MfxMessageDialog from pysollib.pysoltk import MfxMessageDialog
from pysollib.pysoltk import PysolAboutDialog from pysollib.pysoltk import PysolAboutDialog

View file

@ -29,10 +29,9 @@ import subprocess
import re import re
# PySol imports # PySol imports
from settings import DEBUG, FCS_COMMAND from pysollib.settings import DEBUG, FCS_COMMAND
from mfxutil import destruct from pysollib.mfxutil import destruct
from util import KING from pysollib.util import KING
# ************************************************************************ # ************************************************************************
# * HintInterface is an abstract class that defines the public # * HintInterface is an abstract class that defines the public
@ -717,7 +716,6 @@ class FreeCellSolver_Hint:
self.dialog = dialog self.dialog = dialog
self.game_type = game_type self.game_type = game_type
self.options = { self.options = {
'method': 'soft-dfs',
'max_iters': 10000, 'max_iters': 10000,
'max_depth': 1000, 'max_depth': 1000,
'progress': False, 'progress': False,
@ -824,7 +822,6 @@ class FreeCellSolver_Hint:
args += ['--load-config', self.options['preset']] args += ['--load-config', self.options['preset']]
args += ['--max-iters', self.options['max_iters'], args += ['--max-iters', self.options['max_iters'],
'--max-depth', self.options['max_depth'], '--max-depth', self.options['max_depth'],
'--method', self.options['method'],
'--decks-num', game.gameinfo.decks, '--decks-num', game.gameinfo.decks,
'--stacks-num', len(game.s.rows), '--stacks-num', len(game.s.rows),
'--freecells-num', len(game.s.reserves), '--freecells-num', len(game.s.reserves),

View file

@ -34,7 +34,6 @@ from pysollib.mfxutil import Image, ImageTk, USE_PIL
# Toolkit imports # Toolkit imports
from pysollib.pysoltk import loadImage, copyImage, createImage, shadowImage, createBottom, resizeBottom from pysollib.pysoltk import loadImage, copyImage, createImage, shadowImage, createBottom, resizeBottom
# ************************************************************************ # ************************************************************************
# * Images # * Images
# ************************************************************************ # ************************************************************************

View file

@ -23,48 +23,17 @@
import sys, os, locale, subprocess import sys, os, locale, subprocess
import traceback import traceback
import gettext
import settings from pysollib.mygettext import _, n_
import gettext
import pysollib.settings
# ************************************************************************ # ************************************************************************
# * init # * init
# ************************************************************************ # ************************************************************************
def fix_gettext():
def ugettext(message):
# unicoded gettext
if not isinstance(message, unicode):
message = unicode(message, 'utf-8')
domain = gettext._current_domain
try:
t = gettext.translation(domain,
gettext._localedirs.get(domain, None))
except IOError:
return message
return t.ugettext(message)
gettext.ugettext = ugettext
def ungettext(msgid1, msgid2, n):
# unicoded ngettext
if not isinstance(msgid1, unicode):
msgid1 = unicode(msgid1, 'utf-8')
if not isinstance(msgid2, unicode):
msgid2 = unicode(msgid2, 'utf-8')
domain = gettext._current_domain
try:
t = gettext.translation(domain,
gettext._localedirs.get(domain, None))
except IOError:
if n == 1:
return msgid1
else:
return msgid2
return t.ungettext(msgid1, msgid2, n)
gettext.ungettext = ungettext
def init(): def init():
fix_gettext()
if os.name == 'nt' and 'LANG' not in os.environ: if os.name == 'nt' and 'LANG' not in os.environ:
try: try:
@ -88,69 +57,66 @@ def init():
#gettext.install('pysol', locale_dir, unicode=True) # ngettext don't work #gettext.install('pysol', locale_dir, unicode=True) # ngettext don't work
gettext.bindtextdomain('pysol', locale_dir) gettext.bindtextdomain('pysol', locale_dir)
gettext.textdomain('pysol') gettext.textdomain('pysol')
import __builtin__
__builtin__._ = gettext.ugettext # use unicode
__builtin__.n_ = lambda x: x
## debug ## debug
if 'PYSOL_CHECK_GAMES' in os.environ or 'PYSOL_DEBUG' in os.environ: if 'PYSOL_CHECK_GAMES' in os.environ or 'PYSOL_DEBUG' in os.environ:
settings.CHECK_GAMES = True pysollib.settings.CHECK_GAMES = True
print 'PySol debugging: set CHECK_GAMES to True' print 'PySol debugging: set CHECK_GAMES to True'
if 'PYSOL_DEBUG' in os.environ: if 'PYSOL_DEBUG' in os.environ:
try: try:
settings.DEBUG = int(os.environ['PYSOL_DEBUG']) pysollib.settings.DEBUG = int(os.environ['PYSOL_DEBUG'])
except: except:
settings.DEBUG = 1 pysollib.settings.DEBUG = 1
print 'PySol debugging: set DEBUG to', settings.DEBUG print 'PySol debugging: set DEBUG to', pysollib.settings.DEBUG
## init toolkit ## init toolkit
if '--gtk' in sys.argv: if '--gtk' in sys.argv:
settings.TOOLKIT = 'gtk' pysollib.settings.TOOLKIT = 'gtk'
sys.argv.remove('--gtk') sys.argv.remove('--gtk')
elif '--tk' in sys.argv: elif '--tk' in sys.argv:
settings.TOOLKIT = 'tk' pysollib.settings.TOOLKIT = 'tk'
settings.USE_TILE = False pysollib.settings.USE_TILE = False
sys.argv.remove('--tk') sys.argv.remove('--tk')
elif '--tile' in sys.argv: elif '--tile' in sys.argv:
settings.TOOLKIT = 'tk' pysollib.settings.TOOLKIT = 'tk'
settings.USE_TILE = True pysollib.settings.USE_TILE = True
sys.argv.remove('--tile') sys.argv.remove('--tile')
if settings.TOOLKIT == 'tk': if pysollib.settings.TOOLKIT == 'tk':
import Tkinter import Tkinter
root = Tkinter.Tk(className=settings.TITLE) root = Tkinter.Tk(className=pysollib.settings.TITLE)
root.withdraw() root.withdraw()
if Tkinter.TkVersion < 8.4: if Tkinter.TkVersion < 8.4:
# we need unicode support # we need unicode support
sys.exit("%s needs Tcl/Tk 8.4 or better (you have %s)" % sys.exit("%s needs Tcl/Tk 8.4 or better (you have %s)" %
(settings.TITLE, str(Tkinter.TkVersion))) (pysollib.settings.TITLE, str(Tkinter.TkVersion)))
settings.WIN_SYSTEM = root.tk.call('tk', 'windowingsystem') pysollib.settings.WIN_SYSTEM = root.tk.call('tk', 'windowingsystem')
if settings.WIN_SYSTEM == 'aqua': if pysollib.settings.WIN_SYSTEM == 'aqua':
# TkAqua displays the console automatically in application # TkAqua displays the console automatically in application
# bundles, so we hide it here. # bundles, so we hide it here.
from macosx.appSupport import hideTkConsole from pysollib.macosx.appSupport import hideTkConsole
hideTkConsole(root) hideTkConsole(root)
# #
if settings.USE_TILE == 'auto': if pysollib.settings.USE_TILE == 'auto':
# check Tile # check Tile
settings.USE_TILE = False pysollib.settings.USE_TILE = False
try: try:
root.tk.eval('package require tile 0.7.8') root.tk.eval('package require tile 0.7.8')
except Tkinter.TclError: except Tkinter.TclError:
pass pass
else: else:
settings.USE_TILE = True pysollib.settings.USE_TILE = True
# "can't invoke event <<ThemeChanged>>: application has been destroyed" # "can't invoke event <<ThemeChanged>>: application has been destroyed"
#root.destroy() #root.destroy()
Tkinter._default_root = None Tkinter._default_root = None
# check FreeCell-Solver # check FreeCell-Solver
settings.USE_FREECELL_SOLVER = False pysollib.settings.USE_FREECELL_SOLVER = False
if os.name == 'nt': if os.name == 'nt':
if sys.path[0] and not os.path.isdir(sys.path[0]): # i.e. library.zip if sys.path[0] and not os.path.isdir(sys.path[0]): # i.e. library.zip
d = os.path.dirname(sys.path[0]) d = os.path.dirname(sys.path[0])
os.chdir(d) # for read presets os.chdir(d) # for read presets
fcs_command = os.path.join('freecell-solver', 'bin', 'fc-solve.exe') fcs_command = os.path.join('freecell-solver', 'bin', 'fc-solve.exe')
settings.FCS_COMMAND = fcs_command pysollib.settings.FCS_COMMAND = fcs_command
f = os.path.join('freecell-solver', 'presetrc') f = os.path.join('freecell-solver', 'presetrc')
os.environ['FREECELL_SOLVER_PRESETRC'] = f os.environ['FREECELL_SOLVER_PRESETRC'] = f
if os.name in ('posix', 'nt'): if os.name in ('posix', 'nt'):
@ -161,10 +127,10 @@ def init():
'stdin': subprocess.PIPE,} 'stdin': subprocess.PIPE,}
if os.name != 'nt': if os.name != 'nt':
kw['close_fds'] = True kw['close_fds'] = True
p = subprocess.Popen(settings.FCS_COMMAND+' --help', **kw) p = subprocess.Popen(pysollib.settings.FCS_COMMAND+' --help', **kw)
p.stdin.close() p.stdin.close()
if p.stdout.readline().startswith('fc-solve'): if p.stdout.readline().startswith('fc-solve'):
settings.USE_FREECELL_SOLVER = True pysollib.settings.USE_FREECELL_SOLVER = True
if os.name == 'posix': if os.name == 'posix':
os.wait() # kill zombi os.wait() # kill zombi
except: except:
@ -175,5 +141,5 @@ def init():
# run app without games menus (more fast start) # run app without games menus (more fast start)
if '--no-games-menu' in sys.argv: if '--no-games-menu' in sys.argv:
sys.argv.remove('--no-games-menu') sys.argv.remove('--no-games-menu')
settings.SELECT_GAME_MENU = False pysollib.settings.SELECT_GAME_MENU = False

View file

@ -25,9 +25,9 @@
# imports # imports
# PySol imports # PySol imports
from mfxutil import Struct from pysollib.mfxutil import Struct
from pysollib.pysoltk import MfxCanvasText from pysollib.pysoltk import MfxCanvasText
from resource import CSI from pysollib.resource import CSI
# ************************************************************************ # ************************************************************************

View file

@ -28,22 +28,26 @@ import traceback
import getopt import getopt
# PySol imports # PySol imports
from util import DataLoader from pysollib.mygettext import _, n_
from mfxutil import print_err from pysollib.util import DataLoader
from resource import Tile from pysollib.mfxutil import print_err
from pysollib.resource import Tile
from pysollib.app import Application from pysollib.app import Application
from gamedb import GAME_DB from pysollib.gamedb import GAME_DB
from pysolaudio import AbstractAudioClient, PysolSoundServerModuleClient from pysollib.pysolaudio import AbstractAudioClient, PysolSoundServerModuleClient
from pysolaudio import Win32AudioClient, OSSAudioClient, PyGameAudioClient from pysollib.pysolaudio import Win32AudioClient, OSSAudioClient, PyGameAudioClient
from settings import TITLE, SOUND_MOD from pysollib.settings import TITLE, SOUND_MOD
from winsystems import init_root_window from pysollib.winsystems import init_root_window
# Toolkit imports # Toolkit imports
from pysollib.pysoltk import loadImage from pysollib.pysoltk import loadImage
from pysollib.pysoltk import MfxMessageDialog from pysollib.pysoltk import MfxMessageDialog
from pysollib.pysoltk import MfxRoot from pysollib.pysoltk import MfxRoot
from pysollib.pysoltk import PysolProgressBar from pysollib.pysoltk import PysolProgressBar
<<<<<<< HEAD
=======
>>>>>>> solver_dialog_remove_so_called_solving_method
# ************************************************************************ # ************************************************************************
# * # *
@ -212,11 +216,11 @@ def pysol_init(app, args):
def progressCallback(*args): def progressCallback(*args):
app.intro.progress.update(step=1) app.intro.progress.update(step=1)
GAME_DB.setCallback(progressCallback) GAME_DB.setCallback(progressCallback)
import games import pysollib.games
if not opts['french-only']: if not opts['french-only']:
import games.ultra import pysollib.games.ultra
import games.mahjongg import pysollib.games.mahjongg
import games.special import pysollib.games.special
# try to load plugins # try to load plugins
if not opts["noplugins"]: if not opts["noplugins"]:

View file

@ -36,7 +36,7 @@ try:
except: except:
thread = None thread = None
from settings import PACKAGE, TOOLKIT, USE_TILE from pysollib.settings import PACKAGE, TOOLKIT, USE_TILE
Image = ImageTk = ImageOps = None Image = ImageTk = ImageOps = None
if TOOLKIT == 'tk': if TOOLKIT == 'tk':

41
pysollib/mygettext.py Normal file
View file

@ -0,0 +1,41 @@
#!/usr/bin/env python
# -*- mode: python; coding: utf-8; -*-
import gettext
def n_(x):
return x
def fix_gettext():
def ugettext(message):
# unicoded gettext
if not isinstance(message, unicode):
message = unicode(message, 'utf-8')
domain = gettext._current_domain
try:
t = gettext.translation(domain,
gettext._localedirs.get(domain, None))
except IOError:
return message
return t.ugettext(message)
gettext.ugettext = ugettext
def ungettext(msgid1, msgid2, n):
# unicoded ngettext
if not isinstance(msgid1, unicode):
msgid1 = unicode(msgid1, 'utf-8')
if not isinstance(msgid2, unicode):
msgid2 = unicode(msgid2, 'utf-8')
domain = gettext._current_domain
try:
t = gettext.translation(domain,
gettext._localedirs.get(domain, None))
except IOError:
if n == 1:
return msgid1
else:
return msgid2
return t.ungettext(msgid1, msgid2, n)
gettext.ungettext = ungettext
fix_gettext()
_ = gettext.ugettext

View file

@ -34,6 +34,7 @@ import pysollib.settings
# Toolkit imports # Toolkit imports
from pysollib.pysoltk import TOOLBAR_BUTTONS from pysollib.pysoltk import TOOLBAR_BUTTONS
from pysollib.mygettext import _, n_
# ************************************************************************ # ************************************************************************
# * Options # * Options

View file

@ -24,6 +24,7 @@
__all__ = ['ColorsDialog'] __all__ = ['ColorsDialog']
# imports # imports
from pysollib.mygettext import _, n_
## import os, sys ## import os, sys
import gtk, gobject, pango import gtk, gobject, pango
import gtk.glade import gtk.glade

View file

@ -30,6 +30,7 @@ import gtk, gobject, pango
import gtk.glade import gtk.glade
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from tkutil import create_pango_font_desc from tkutil import create_pango_font_desc

View file

@ -29,6 +29,7 @@ import gtk
from gtk import gdk from gtk import gdk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.gamedb import GI from pysollib.gamedb import GI
from pysollib.settings import TITLE from pysollib.settings import TITLE

View file

@ -27,6 +27,7 @@ __all__ = ['PlayerOptionsDialog']
import gobject, gtk import gobject, gtk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
# Toolkit imports # Toolkit imports
from tkwidget import MfxDialog from tkwidget import MfxDialog

View file

@ -27,6 +27,7 @@ import os, re, sys, types
import gtk, gobject import gtk, gobject
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.resource import CSI from pysollib.resource import CSI
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -29,6 +29,7 @@ import gtk, gobject
#from UserList import UserList #from UserList import UserList
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import destruct, Struct, KwStruct from pysollib.mfxutil import destruct, Struct, KwStruct
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault
from pysollib.mfxutil import format_time from pysollib.mfxutil import format_time

View file

@ -30,6 +30,7 @@ from gtk import gdk
# PySol imports # PySol imports
## from pysollib.mfxutil import destruct, Struct, KwStruct ## from pysollib.mfxutil import destruct, Struct, KwStruct
from pysollib.mygettext import _, n_
from pysollib.resource import CSI from pysollib.resource import CSI
from pysollib.mfxutil import kwdefault from pysollib.mfxutil import kwdefault

View file

@ -28,6 +28,7 @@ import gtk
from gtk import glade from gtk import glade
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
# Toolkit imports # Toolkit imports
from tkwidget import MfxDialog from tkwidget import MfxDialog

View file

@ -27,6 +27,7 @@ import os, sys
import gtk import gtk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
# ************************************************************************ # ************************************************************************

View file

@ -25,6 +25,7 @@ __all__ = ['TimeoutsDialog']
# imports # imports
## import os, sys ## import os, sys
from pysollib.mygettext import _, n_
import gtk, gobject, pango import gtk, gobject, pango
import gtk.glade import gtk.glade

View file

@ -27,6 +27,7 @@ __all__ = ['HTMLViewer']
import os, sys, re, types import os, sys, re, types
import htmllib, formatter import htmllib, formatter
import traceback import traceback
from pysollib.mygettext import _, n_
import gtk, pango, gobject import gtk, pango, gobject
from gtk import gdk from gtk import gdk

View file

@ -28,6 +28,7 @@ import gtk, gobject, pango
import gtk.glade import gtk.glade
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import format_time from pysollib.mfxutil import format_time
from pysollib.settings import TOP_TITLE, TITLE from pysollib.settings import TOP_TITLE, TITLE
from pysollib.stats import PysolStatsFormatter from pysollib.stats import PysolStatsFormatter

View file

@ -29,6 +29,7 @@ import gtk
gdk = gtk.gdk gdk = gtk.gdk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
# Toolkit imports # Toolkit imports
from tkutil import makeToplevel, setTransient, wm_withdraw from tkutil import makeToplevel, setTransient, wm_withdraw

View file

@ -25,7 +25,8 @@
# imports # imports
import sys, re, time import sys, re, time
import random import random
from mfxutil import SubclassResponsibility from pysollib.mygettext import _, n_
from pysollib.mfxutil import SubclassResponsibility
# ************************************************************************ # ************************************************************************

View file

@ -26,9 +26,10 @@
import os, glob, traceback import os, glob, traceback
# PySol imports # PySol imports
from mfxutil import Struct, KwStruct from pysollib.mfxutil import Struct, KwStruct
from settings import DEBUG from pysollib.settings import DEBUG
from pysollib.mygettext import _
# ************************************************************************ # ************************************************************************
# * Abstract # * Abstract

View file

@ -95,11 +95,12 @@ __all__ = ['cardsFaceUp',
# imports # imports
import types import types
from pysollib.mygettext import _, n_
# PySol imports # PySol imports
from mfxutil import Struct, kwdefault, SubclassResponsibility from pysollib.mfxutil import Struct, kwdefault, SubclassResponsibility
from mfxutil import Image, ImageTk, USE_PIL from pysollib.mfxutil import Image, ImageTk, USE_PIL
from util import ACE, KING from pysollib.util import ACE, KING
from util import ANY_SUIT, ANY_COLOR, ANY_RANK, NO_RANK from pysollib.util import ANY_SUIT, ANY_COLOR, ANY_RANK, NO_RANK
from pysollib.pysoltk import EVENT_HANDLED, EVENT_PROPAGATE from pysollib.pysoltk import EVENT_HANDLED, EVENT_PROPAGATE
from pysollib.pysoltk import CURSOR_DRAG, CURSOR_DOWN_ARROW from pysollib.pysoltk import CURSOR_DRAG, CURSOR_DOWN_ARROW
from pysollib.pysoltk import ANCHOR_NW, ANCHOR_SE from pysollib.pysoltk import ANCHOR_NW, ANCHOR_SE
@ -108,9 +109,14 @@ from pysollib.pysoltk import after, after_idle, after_cancel
from pysollib.pysoltk import MfxCanvasGroup, MfxCanvasImage, MfxCanvasRectangle, MfxCanvasText, MfxCanvasLine from pysollib.pysoltk import MfxCanvasGroup, MfxCanvasImage, MfxCanvasRectangle, MfxCanvasText, MfxCanvasLine
from pysollib.pysoltk import get_text_width from pysollib.pysoltk import get_text_width
from pysollib.pysoltk import markImage from pysollib.pysoltk import markImage
<<<<<<< HEAD
from settings import TOOLKIT from settings import TOOLKIT
from settings import DEBUG from settings import DEBUG
=======
from pysollib.settings import TOOLKIT
from pysollib.settings import DEBUG
>>>>>>> solver_dialog_remove_so_called_solving_method
# ************************************************************************ # ************************************************************************
# * Let's start with some test methods for cards. # * Let's start with some test methods for cards.

View file

@ -26,8 +26,9 @@
import time import time
# PySol imports # PySol imports
from mfxutil import format_time from pysollib.mfxutil import format_time
from gamedb import GI from pysollib.gamedb import GI
from pysollib.mygettext import _, n_
# ************************************************************************ # ************************************************************************

View file

@ -30,6 +30,7 @@ from tkColorChooser import askcolor
# PySol imports # PySol imports
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
from pysollib.mygettext import _, n_
# Toolkit imports # Toolkit imports
from tkwidget import MfxDialog from tkwidget import MfxDialog

View file

@ -29,6 +29,7 @@ import ttk
# PySol imports # PySol imports
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
from pysollib.mygettext import _, n_
# Toolkit imports # Toolkit imports
from tkwidget import MfxDialog from tkwidget import MfxDialog

View file

@ -29,6 +29,7 @@ __all__ = ['create_find_card_dialog',
# imports # imports
import os import os
import Tkinter import Tkinter
from pysollib.mygettext import _, n_
# Toolkit imports # Toolkit imports
from tkutil import after, after_cancel from tkutil import after, after_cancel

View file

@ -30,6 +30,7 @@ import tkFont
# PySol imports # PySol imports
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
from pysollib.mygettext import _, n_
# Toolkit imports # Toolkit imports
from tkwidget import MfxDialog from tkwidget import MfxDialog

View file

@ -28,6 +28,7 @@ __all__ = ['GameInfoDialog']
import ttk import ttk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
from pysollib.gamedb import GI from pysollib.gamedb import GI

View file

@ -30,6 +30,7 @@ import ttk
import tkFileDialog import tkFileDialog
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import Struct, kwdefault from pysollib.mfxutil import Struct, kwdefault
from pysollib.mfxutil import Image, USE_PIL from pysollib.mfxutil import Image, USE_PIL
from pysollib.util import CARDSET from pysollib.util import CARDSET

View file

@ -28,6 +28,7 @@ import Tkinter
import ttk import ttk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
# Toolkit imports # Toolkit imports

View file

@ -30,6 +30,7 @@ import Tkinter
import ttk import ttk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct, USE_PIL from pysollib.mfxutil import KwStruct, USE_PIL
from pysollib.util import CARDSET from pysollib.util import CARDSET
from pysollib.resource import CSI from pysollib.resource import CSI

View file

@ -28,10 +28,10 @@ import ttk
from UserList import UserList from UserList import UserList
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import destruct, Struct, KwStruct from pysollib.mfxutil import destruct, Struct, KwStruct
from pysollib.mfxutil import format_time from pysollib.mfxutil import format_time
from pysollib.gamedb import GI from pysollib.gamedb import GI
from pysollib.help import help_html
from pysollib.resource import CSI from pysollib.resource import CSI
# Toolkit imports # Toolkit imports
@ -309,6 +309,7 @@ class SelectGameDialog(MfxDialog):
if not doc: if not doc:
return return
dir = os.path.join("html", "rules") dir = os.path.join("html", "rules")
from pysollib.help import help_html
help_html(self.app, doc, dir, self.top) help_html(self.app, doc, dir, self.top)
return return
MfxDialog.mDone(self, button) MfxDialog.mDone(self, button)

View file

@ -28,6 +28,7 @@ import ttk
import tkColorChooser import tkColorChooser
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
# Toolkit imports # Toolkit imports

View file

@ -34,6 +34,7 @@ import Tkinter
import ttk import ttk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.settings import TITLE from pysollib.settings import TITLE
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
@ -90,23 +91,6 @@ class SolverDialog(MfxDialog):
cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2) cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2)
self.games_var = cb self.games_var = cb
#
row += 1
ttk.Label(frame, text=_('Solving method:'), anchor='w'
).grid(row=row, column=0, sticky='ew', padx=2, pady=2)
##sm = self.solving_methods.values()
##sm.sort()
sm = ['A*',
'Breadth-First Search',
'Depth-First Search',
'A randomized DFS',
##'"Soft" DFS'
]
cb = PysolCombo(frame, values=tuple(sm), state='readonly')
cb.grid(row=row, column=1, sticky='ew', padx=2, pady=2)
cb.current(sm.index('Depth-First Search'))
self.solving_method_var = cb
# #
row += 1 row += 1
ttk.Label(frame, text=_('Preset:'), anchor='w' ttk.Label(frame, text=_('Preset:'), anchor='w'
@ -246,13 +230,11 @@ class SolverDialog(MfxDialog):
game = self.app.game game = self.app.game
solver = game.Solver_Class(game, self) # create solver instance solver = game.Solver_Class(game, self) # create solver instance
game.solver = solver game.solver = solver
method = self.solving_method_var.get()
method = self.solving_methods[method]
preset = self.preset_var.get() preset = self.preset_var.get()
max_iters = self.max_iters_var.get() max_iters = self.max_iters_var.get()
max_depth = self.max_depth_var.get() max_depth = self.max_depth_var.get()
progress = self.progress_var.get() progress = self.progress_var.get()
solver.config(method=method, preset=preset, max_iters=max_iters, solver.config(preset=preset, max_iters=max_iters,
max_depth=max_depth, progress=progress) max_depth=max_depth, progress=progress)
solver.computeHints() solver.computeHints()
hints_len = len(solver.hints)-1 hints_len = len(solver.hints)-1

View file

@ -29,6 +29,7 @@ import Tkinter
import ttk import ttk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
from pysollib.settings import TITLE from pysollib.settings import TITLE
from pysollib.pysolaudio import pysolsoundserver from pysollib.pysolaudio import pysolsoundserver

View file

@ -29,6 +29,7 @@ import os, sys
import Tkinter import Tkinter
import ttk import ttk
from pysollib.mygettext import _, n_
if __name__ == '__main__': if __name__ == '__main__':
d = os.path.abspath(os.path.join(sys.path[0], os.pardir, os.pardir)) d = os.path.abspath(os.path.join(sys.path[0], os.pardir, os.pardir))
sys.path.append(d) sys.path.append(d)

View file

@ -28,6 +28,7 @@ import Tkinter
import ttk import ttk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
# Toolkit imports # Toolkit imports

View file

@ -41,6 +41,7 @@ __all__ = ['EVENT_HANDLED',
# imports # imports
import Tkinter import Tkinter
from pysollib.mygettext import _, n_
# ************************************************************************ # ************************************************************************
# * constants # * constants

View file

@ -36,6 +36,7 @@ if __name__ == '__main__':
gettext.install('pysol', d, unicode=True) gettext.install('pysol', d, unicode=True)
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import Struct, openURL from pysollib.mfxutil import Struct, openURL
from pysollib.settings import TITLE from pysollib.settings import TITLE

View file

@ -38,6 +38,7 @@ import ttk
import tkFont import tkFont
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
from pysollib.mfxutil import format_time from pysollib.mfxutil import format_time
##from pysollib.util import * ##from pysollib.util import *

View file

@ -39,6 +39,7 @@ import tkFont
import traceback import traceback
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import destruct, kwdefault, KwStruct, openURL from pysollib.mfxutil import destruct, kwdefault, KwStruct, openURL
from pysollib.settings import WIN_SYSTEM from pysollib.settings import WIN_SYSTEM

View file

@ -29,6 +29,7 @@ import Tkinter
import ttk import ttk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import destruct from pysollib.mfxutil import destruct
from pysollib.mfxutil import Image, ImageTk, ImageOps from pysollib.mfxutil import Image, ImageTk, ImageOps
from pysollib.util import IMAGE_EXTENSIONS from pysollib.util import IMAGE_EXTENSIONS

View file

@ -26,6 +26,7 @@ __all__ = ["Button", "Checkbutton", "Combobox", "Entry", "Frame", "Label",
"tclobjs_to_py"] "tclobjs_to_py"]
import Tkinter import Tkinter
from pysollib.mygettext import _, n_
_flatten = Tkinter._flatten _flatten = Tkinter._flatten

View file

@ -29,6 +29,7 @@ import Tkinter
import ttk import ttk
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
from pysollib.wizardutil import WizardWidgets from pysollib.wizardutil import WizardWidgets
from pysollib.wizardpresets import presets from pysollib.wizardpresets import presets

View file

@ -28,6 +28,7 @@ import Tkinter
from tkColorChooser import askcolor from tkColorChooser import askcolor
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
# Toolkit imports # Toolkit imports

View file

@ -27,6 +27,7 @@ __all__ = ['EditTextDialog']
import Tkinter import Tkinter
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
# Toolkit imports # Toolkit imports

View file

@ -32,6 +32,7 @@ import Tkinter
##import traceback ##import traceback
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
# Toolkit imports # Toolkit imports
from tkutil import after, after_cancel from tkutil import after, after_cancel

View file

@ -28,6 +28,7 @@ import Tkinter
import tkFont import tkFont
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
# Toolkit imports # Toolkit imports

View file

@ -28,6 +28,7 @@ __all__ = ['GameInfoDialog']
import Tkinter import Tkinter
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct from pysollib.mfxutil import KwStruct
from pysollib.gamedb import GI from pysollib.gamedb import GI

View file

@ -29,6 +29,7 @@ import traceback
import Tkinter, tkFileDialog import Tkinter, tkFileDialog
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import Struct, kwdefault from pysollib.mfxutil import Struct, kwdefault
from pysollib.mfxutil import Image, USE_PIL from pysollib.mfxutil import Image, USE_PIL
from pysollib.util import CARDSET from pysollib.util import CARDSET

View file

@ -27,6 +27,7 @@ __all__ = ['PlayerOptionsDialog']
import Tkinter import Tkinter
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct, Struct from pysollib.mfxutil import KwStruct, Struct
# Toolkit imports # Toolkit imports

View file

@ -28,6 +28,7 @@ import os
import Tkinter import Tkinter
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import KwStruct, USE_PIL from pysollib.mfxutil import KwStruct, USE_PIL
from pysollib.util import CARDSET from pysollib.util import CARDSET
from pysollib.resource import CSI from pysollib.resource import CSI

View file

@ -28,6 +28,7 @@ import Tkinter
from UserList import UserList from UserList import UserList
# PySol imports # PySol imports
from pysollib.mygettext import _, n_
from pysollib.mfxutil import destruct, Struct, KwStruct from pysollib.mfxutil import destruct, Struct, KwStruct
from pysollib.mfxutil import format_time from pysollib.mfxutil import format_time
from pysollib.gamedb import GI from pysollib.gamedb import GI

Some files were not shown because too many files have changed in this diff Show more