[gnome-games/sudoku-tube] Clean up the process of opening game
- From: Zhang Sen <zhangsen src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-games/sudoku-tube] Clean up the process of opening game
- Date: Fri, 3 Jul 2009 08:08:25 +0000 (UTC)
commit 56497db1c6dec4e6a5f94eecaf88e96f53439134
Author: Zhang Sen <zh jesse gmail com>
Date: Fri Jul 3 15:28:00 2009 +0800
Clean up the process of opening game
gnome-sudoku/src/lib/main.py | 40 +++++++++++++++++++++++-----------------
1 files changed, 23 insertions(+), 17 deletions(-)
---
diff --git a/gnome-sudoku/src/lib/main.py b/gnome-sudoku/src/lib/main.py
index f72799f..cf2d8ab 100644
--- a/gnome-sudoku/src/lib/main.py
+++ b/gnome-sudoku/src/lib/main.py
@@ -91,20 +91,21 @@ class UI (gconf_wrapper.GConfWrapper):
self.worker_connections = []
self.is_fullscreen = False
- self._game = None
- self._auto_load_saved()
- if not self._game: # no game loaded
- self._auto_load_new()
- if self._game:
- self._post_open_setup()
- else:
- # TODO
- print 'No game opened, should die'
+ self._auto_open_game()
self.show()
# generate puzzles while our use is working...
self._run_background_generator()
+ def _auto_open_game(self):
+ game = self._auto_load_saved() or self._auto_load_new()
+ if game:
+ self._open_game(*game)
+ self._post_open_setup()
+ else:
+ logger.error("can't open game")
+ self.quit_cb()
+
def _auto_load_saved(self):
"""Automatically open a saved game
@@ -112,20 +113,25 @@ class UI (gconf_wrapper.GConfWrapper):
save *one* game in the future. And auto load this one game on launch"""
saved_games = self.sudoku_tracker.list_saved_games()
if saved_games:
- self._game = saved_games[0]
- self._open_game(game_selector.NewOrSavedGameSelector.SAVED_GAME,
- self._game)
+ return (game_selector.NewOrSavedGameSelector.SAVED_GAME,
+ saved_games[0])
+ else:
+ logger.info("no saved game found")
+ return None
def _auto_load_new(self):
"""Automatically open a new game"""
# TODO should use preconfigured level
- new_puzzle = self.sudoku_maker.get_puzzles(1,
- [self.gconf['game-level']])
+ level = self.gconf['game-level']
+ new_puzzle = self.sudoku_maker.get_puzzles(1, [level])
if new_puzzle:
# new_puzzle is a list, with the form of (<puzzle>, <difficulty>)
- self._game = new_puzzle[0][0]
- self._open_game(game_selector.NewOrSavedGameSelector.NEW_GAME,
- self._game)
+ logger.info("%s game generated" % level)
+ return (game_selector.NewOrSavedGameSelector.NEW_GAME,
+ new_puzzle[0][0])
+ else:
+ logger.warning("failed to genereate new puzzle")
+ return None
def _open_game(self, game_type, puzzle):
"""Finally enter the puzzle"""
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]