diff options
| author | Olivier Gayot <duskcoder@gmail.com> | 2015-06-04 04:47:05 +0100 | 
|---|---|---|
| committer | Olivier Gayot <duskcoder@gmail.com> | 2015-06-04 04:47:05 +0100 | 
| commit | 5e2488695ea4d64d6d0a2d26aa099777af84dab0 (patch) | |
| tree | da4ec442fe56674dd4f1454d3ed399183b5c7536 | |
| parent | 8a78e43e456b57c26843f9524b4e34fcf0d5913a (diff) | |
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 <duskcoder@gmail.com>
| -rw-r--r-- | CAO_Game.py | 10 | ||||
| -rw-r--r-- | 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  | 
