From 5e2488695ea4d64d6d0a2d26aa099777af84dab0 Mon Sep 17 00:00:00 2001 From: Olivier Gayot Date: Thu, 4 Jun 2015 04:47:05 +0100 Subject: the cards of a player are stored in a map the problem with the list is that when we take a card in the middle, the following indexes are shifted. It is inconvenient to shift them on the end user side's so we use a map with incremented indexes. Signed-off-by: Olivier Gayot --- CAO_Game.py | 10 +++++++--- CAO_Player.py | 10 ++++++++-- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/CAO_Game.py b/CAO_Game.py index 3738277..c6072a5 100644 --- a/CAO_Game.py +++ b/CAO_Game.py @@ -38,7 +38,11 @@ class CAO_Game(): except IndexError: return cao_error('no enough white cards for player') - player = CAO_Player(client, cards) + player = CAO_Player(client) + + for card in cards: + player.receive_card(card) + client.set_player(player) client.set_game(self) @@ -122,7 +126,7 @@ class CAO_Game(): # reset the state of the players for p in self.players: if p.get_has_played: - p.cards.append(self.board.pick_white_card()) + p.receive_card(self.board.pick_white_card()) p.set_has_played(False) self.board.recycle_black_card() @@ -136,7 +140,7 @@ class CAO_Game(): cards = [] for card in player.cards: - cards.append(self.white_desc[card]) + cards.append((card, self.white_desc[player.cards[card]])) return cao_success(cards) diff --git a/CAO_Player.py b/CAO_Player.py index 9501a46..94ff2cf 100644 --- a/CAO_Player.py +++ b/CAO_Player.py @@ -1,6 +1,8 @@ class CAO_Player(): - def __init__(self, client, cards): - self.cards = cards + def __init__(self, client): + self.cards = {} + self.next_idx = 0 + self.client = client self.score = 0 @@ -21,3 +23,7 @@ class CAO_Player(): def inc_score(self): self.score += 1 + + def receive_card(self, card): + self.cards[self.next_idx] = card + self.next_idx += 1 -- cgit v1.2.3