From 7ba7ab3527049279f0f0c112cc5d384959ebceae Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Sat, 02 Apr 2011 14:01:30 +0000 Subject: catch problem with game over infinite loop when sharing --- diff --git a/PathsActivity.py b/PathsActivity.py index e8bd810..5ae1b4f 100644 --- a/PathsActivity.py +++ b/PathsActivity.py @@ -39,7 +39,7 @@ from dbus.gobject_service import ExportedGObject from sugar.presence import presenceservice from sugar.presence.tubeconn import TubeConnection -import gettextutil +from gettext import gettext as _ import locale import os.path @@ -279,7 +279,6 @@ class PathsActivity(activity.Activity): self._game.deck) if 'index' in self.metadata: - print 'deck index', self.metadata['index'] self._game.deck.index = int(self.metadata['index']) else: self._game.deck.index = ROW * COL - self._game.grid.tiles_in_grid() @@ -448,7 +447,8 @@ state=%d' % (id, initiator, type, service, params, state)) def _game_over(self, payload): ''' Someone cannot plce a tile. ''' - self._game.game_over() + if not self._game.saw_game_over: + self._game.game_over() def _sending_deck(self, payload): ''' Sharer sends the deck. ''' diff --git a/deck.py b/deck.py index 08307e3..384e12a 100644 --- a/deck.py +++ b/deck.py @@ -135,9 +135,6 @@ class Deck: # deck.append(self.tiles[order[i]]) deck.append(self.tiles[i]) self.tiles = deck[:] - print 'restoring deck' - for i in range(COL * ROW): - print self.tiles[i].number def clear(self): ''' Remove any highlight from the tiles. ''' diff --git a/game.py b/game.py index 124fb71..3899628 100644 --- a/game.py +++ b/game.py @@ -14,6 +14,8 @@ import gtk import gobject +from gettext import gettext as _ + import logging _logger = logging.getLogger('paths-activity') @@ -123,6 +125,7 @@ class Game(): self._score_card.set_layer(HIDE) self._score_card.move(((int(self._width / 2) - self.tile_width), int(self._height / 2) - self.tile_height)) + self.saw_game_over = False def _initiating(self): if not self._running_sugar: @@ -485,6 +488,7 @@ class Game(): def game_over(self, msg=_('Game over')): ''' Nothing left to do except show the results. ''' self._set_label(msg) + self.saw_game_over = True if self.hands[self._my_hand].tiles_in_hand() == 0: self.score += 50 # Bonus points else: diff --git a/grid.py b/grid.py index cea3558..c58c3b5 100644 --- a/grid.py +++ b/grid.py @@ -64,14 +64,12 @@ class Grid: ''' Restore tiles to grid upon resume or share. ''' self.hide() grid = json_load(grid_as_text) - print 'restoring grid' for i in range(ROW * COL): if grid[i][0] is None: self.grid[i] = None else: for k in range(ROW * COL): if deck.tiles[k].number == grid[i][0]: - print k, '-->', i self.add_tile_to_grid(k, grid[i][1], i, deck) break self.show() diff --git a/hand.py b/hand.py index 3c07df1..2be4182 100644 --- a/hand.py +++ b/hand.py @@ -79,7 +79,6 @@ class Hand: def restore(self, hand_as_text, deck, buddy=False): ''' Restore tiles to hand upon resume or share. ''' hand = json_load(hand_as_text) - print 'restoring hand' if buddy: offset = 1 # skip the buddy else: @@ -91,7 +90,6 @@ class Hand: else: for k in range(ROW * COL): if deck.tiles[k].number == hand[i]: - print k, '-->', tile self.hand[tile] = deck.tiles[k] self.hand[tile].spr.move(self.hand_to_xy(tile)) self.hand[tile].spr.set_layer(TILES) diff --git a/path.py b/path.py index a244b07..a8ff866 100755 --- a/path.py +++ b/path.py @@ -14,7 +14,7 @@ import gtk -import gettextutil +from gettext import gettext as _ import os from game import Game -- cgit v0.9.1