Sfoglia il codice sorgente

fixed bugs

Add game_code to Player
Clear play_card when a card is played
ard66 5 anni fa
parent
commit
e47515a59b
3 ha cambiato i file con 10 aggiunte e 7 eliminazioni
  1. 5 3
      game.py
  2. 2 1
      player.py
  3. 3 3
      webserver.py

+ 5 - 3
game.py

@@ -228,9 +228,11 @@ class Game(object):
         
         for player in self.players:
             player.set_current(dealer)
+            player.play_card = None
             if player.color != dealer.color:
                 player.message = f"{dealer.name} is aan de beurt om te delen"
-                player.state= StateCode.DEAL_OTHER 
+                player.state = StateCode.DEAL_OTHER
+                
 
 
     def turn(self):
@@ -239,13 +241,13 @@ class Game(object):
         player.options.append(Option(OptionCode.PASS, "Pas"))
         player.message = "Kies een kaart om te spelen"
         player.state = StateCode.PLAY_CARD
-        player.play_card = None
 
         for player in self.players:
             player.set_current(self.current_player)
+            player.play_card = None
             if player.color != self.current_player.color:
                 player.message = f"{self.current_player.name} is aan de beurt"
-                player.state = StateCode.PLAY_CARD_OTHER 
+                player.state = StateCode.PLAY_CARD_OTHER
 
 
     def partner(self, player):

+ 2 - 1
player.py

@@ -53,6 +53,7 @@ class Player(object):
 
     color: Color
     name: str
+    game_code: int
     hand: List[Card]
     options: List[Option]
     message: str
@@ -68,6 +69,7 @@ class Player(object):
     def __init__(self, color = None, name = None):
         self.color = color
         self.name = name
+        self.game_code = None
         self.hand = []
         self.options = []
         self.message = "Even wachten"
@@ -100,7 +102,6 @@ class Player(object):
 
     def set_current(self, current_player):
         self.current_player = OtherPlayer(current_player.color, current_player.name)
-        self.play_card = current_player.play_card
 
     def merge_from(self, other):
         self.color = other.color

+ 3 - 3
webserver.py

@@ -97,8 +97,6 @@ async def handler(websocket, path):
                 await notify([(player, websocket)])
                 continue
 
-            # Thisis a change
-
             player.set_error(None)
 
             if option.code == OptionCode.NEW_GAME:
@@ -110,12 +108,13 @@ async def handler(websocket, path):
                     users.append(users[0])
                     users.remove(users[0])
                 player = game.join_player(option.user_name)
+                player.game_code = game_code
                 sockets[game_code] = [(player, websocket)]
                 await notify(sockets[game_code])
 
             elif option.code == OptionCode.JOIN_GAME:
                 game_code = option.game_code
-                game = games.get(game_code) if game_code > 0 else None
+                game = games.get(game_code) if game_code is not None and type(game_code) is int and game_code > 0 else None
 
                 if game is None:
                     player.message = f"onbekande code {game_code}"
@@ -128,6 +127,7 @@ async def handler(websocket, path):
                     users.append(users[0])
                     users.remove(users[0])
                 player = game.join_player(option.user_name)
+                player.game_code = game_code
                 sockets[game_code].append((player, websocket))
                 await notify(sockets[game_code])