Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Schampijer <simon@schampijer.de>2007-07-15 21:30:15 (GMT)
committer Simon Schampijer <simon@schampijer.de>2007-07-15 21:30:15 (GMT)
commitd4180f53758e654d495a43fb0774aa911f8dea02 (patch)
treec64b9dd827e9568f4a8039ab204e2e7d5cd5321c
parentb2da2ffe0b74dda78a825c910fca5f3620b9b6e7 (diff)
- (activity.py _buddy_joined_cb) Fix when buddy who joins is empty
- (activity.py _joined_cb) Fix when myself is not in the buddies list. - (messenger.py load_game) Fix when joining a game which is already running that the current player is sent. Need to send the cards that has been chosen already as well. - (game.py) Removed the old readconfig
-rwxr-xr-xactivity.py30
-rwxr-xr-xgame.py54
-rw-r--r--messenger.py8
3 files changed, 28 insertions, 64 deletions
diff --git a/activity.py b/activity.py
index d9bbdb7..bb8c101 100755
--- a/activity.py
+++ b/activity.py
@@ -112,6 +112,8 @@ class MemorizeActivity(Activity):
# Owner.props.key
if self._shared_activity:
# We are joining the activity
+ # _logger.debug("Joined activity, add myself to buddy list nick=%s" %self.owner.props.nick)
+ # self.game.add_buddy(self.owner)
self.connect('joined', self._joined_cb)
if self.get_shared():
# We've already joined
@@ -198,12 +200,20 @@ class MemorizeActivity(Activity):
def _joined_cb(self, activity):
if not self._shared_activity:
return
-
+
+ _logger.debug('Joined an existing shared activity')
+
+ self.found = 0
for buddy in self._shared_activity.get_joined_buddies():
- _logger.debug("buddy joined - _joined_cb: %s", buddy.props.nick)
+ _logger.debug("buddy joined - _joined_cb: %s (get buddies of activity and add them to my list)", buddy.props.nick)
self.game.add_buddy(buddy)
+ if buddy == self.owner:
+ self.found = 1
+
+ if self.found == 0:
+ _logger.debug("buddy joined - _joined_cb: Not foud myself in buddy list - will add myself at end of the list.")
+ self.game.add_buddy(self.owner)
- _logger.debug('Joined an existing shared activity')
self.initiating = False
self._setup()
@@ -248,9 +258,15 @@ class MemorizeActivity(Activity):
def _buddy_joined_cb (self, activity, buddy):
if buddy <> self.owner:
- _logger.debug("buddy joined - _buddy_joined_cb: %s", buddy.props.nick)
- self.game.add_buddy(buddy)
+ if buddy.props.nick == '':
+ _logger.debug("buddy joined - _buddy_joined_cb: buddy name empty nick=%s. Will not add." %(buddy.props.nick))
+ else:
+ _logger.debug("buddy joined - _buddy_joined_cb: %s", buddy.props.nick)
+ self.game.add_buddy(buddy)
def _buddy_left_cb (self, activity, buddy):
- _logger.debug("buddy left - _buddy_left_cb: %s", buddy.props.nick)
- self.game.rem_buddy(buddy)
+ if buddy.props.nick == '':
+ _logger.debug("buddy joined - _buddy_left_cb: buddy name empty nick=%s. Will not remove" %(buddy.props.nick))
+ else:
+ _logger.debug("buddy left - _buddy_left_cb: %s", buddy.props.nick)
+ self.game.rem_buddy(buddy)
diff --git a/game.py b/game.py
index b6d9b3a..9d554f1 100755
--- a/game.py
+++ b/game.py
@@ -188,60 +188,6 @@ class MemorizeGame(gobject.GObject):
self.players_score[buddy] += 1
self.emit('increase-score', buddy)
- def read_config2(self, game_name, size = 100):
- filename = os.path.join(self.game_dir, game_name +'/'+game_name+'.mem')
- # seed = random.randint(0, 14567)
- temp1 = []
- temp2 = []
- grid = []
- data = {}
- # set random seed
- random.seed()
- filecheck = filename.split('.')
- if filecheck[2] != 'mem':
- logging.error('File format of %s'%filename)
- else:
- fd = open(filename, 'r')
- if fd == None:
- logging.error(' Reading setup file %s'%filename)
- else:# set random seed
- logging.info(' Read setup for memosono from file %s'%filename)
- lines = fd.readlines()
- index = 0
-
- # Load variables
- while lines[index][0] != '#':
- zw = lines[index].split('=')
- zw[1] = zw[1][:-1]
- if len(zw) is not 0:
- data[zw[0]]=zw[1]
- index += 1
- index += 1
- data['size'] = str(size)
-
- # Load cards data
- tile_number = 0
- card_num = len(lines)-index
- while tile_number < card_num and tile_number <= int((size*size)/2)-1:
- zw = lines[index].split(',')
- if len(zw) is not 0:
- temp1.append(zw[:8]+[ 0, 0, tile_number])
- temp2.append(zw[8:]+[ 0, 0, tile_number])
- tile_number += 1
- index += 1
- fd.close()
-
- # Shuffle cards order
- if data['divided']==1:
- random.shuffle(temp1)
- random.shuffle(temp2)
- temp1.extend(temp2)
- else:
- temp1.extend(temp2)
- random.shuffle(temp1)
-
- return data, temp1
-
def get_grid(self):
return self.model.grid
diff --git a/messenger.py b/messenger.py
index 3237b00..173ad14 100644
--- a/messenger.py
+++ b/messenger.py
@@ -65,13 +65,13 @@ class Messenger(ExportedGObject):
self.ordered_bus_names.append(sender)
_logger.debug('The grid to send: %s', self.game.get_grid())
_logger.debug('The data to send: %s', self.game.get_data())
- self._tube.get_object(sender, PATH).load_game(self.ordered_bus_names, self.game.get_grid(), self.game.get_data(), self.game.waiting_players, dbus_interface=IFACE)
+ self._tube.get_object(sender, PATH).load_game(self.ordered_bus_names, self.game.get_grid(), self.game.get_data(), self.game.players.index(self.game.current_player), self.game.waiting_players, dbus_interface=IFACE)
_logger.debug('Sent the game state')
#@dbus.service.method(dbus_interface=IFACE, in_signature='asss', out_signature='')
#@dbus.service.method(dbus_interface=IFACE, in_signature='asa(ssssssssiii)a{ss}av', out_signature='')
- @dbus.service.method(dbus_interface=IFACE, in_signature='asaa{ss}a{ss}av', out_signature='')
- def load_game(self, bus_names, grid, data,list):
+ @dbus.service.method(dbus_interface=IFACE, in_signature='asaa{ss}a{ss}nav', out_signature='')
+ def load_game(self, bus_names, grid, data, current_player, list):
''' Sync the game with with players '''
_logger.debug('Data received to sync game data')
_logger.debug('grid %s '%grid)
@@ -79,6 +79,8 @@ class Messenger(ExportedGObject):
self.player_id = bus_names.index(self._tube.get_unique_name())
self._change_game_receiver(grid,data,self.ordered_bus_names[0])
self.game.load_waiting_list(list)
+ _logger.debug('Current plater id=%d' %current_player)
+ self.game.current_player = self.game.players[current_player]
def flip(self, widget, id):
''' Notify other players that you flipped a card '''