X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=qchess%2Fsrc%2Fgame.py;h=8b279fb9f5fad1e037c691d75b0791a284f4d20e;hb=639646adb020e0be9433da7b3d5ef6b987c99f71;hp=16f26d72a8699d78f170aa87ac0f5191829f80d4;hpb=3decbfd61b59ee2611700e7fa96368e02f643d4d;p=progcomp2013.git diff --git a/qchess/src/game.py b/qchess/src/game.py index 16f26d7..8b279fb 100644 --- a/qchess/src/game.py +++ b/qchess/src/game.py @@ -33,13 +33,17 @@ class GameThread(StoppableThread): [x,y] = p.select() # Player selects a square if self.stopped(): break - + + if not (isinstance(p, Network) and p.server == False): + result = self.board.select(x, y, colour = p.colour) + else: + #debug(str(self) + " don't update local board") + result = "" - - - result = self.board.select(x, y, colour = p.colour) + result = p.update(result) for p2 in self.players: - p2.update(result) # Inform players of what happened + if p2 != p: + result = p2.update(result) # Inform players of what happened log(result) @@ -180,6 +184,8 @@ class ReplayThread(GameThread): if self.stopped(): break + if len(line) <= 0: + continue if line[0] == '#': @@ -227,7 +233,10 @@ class ReplayThread(GameThread): self.board.update_select(x, y, int(tokens[2]), tokens[len(tokens)-1]) if isinstance(graphics, GraphicsThread): with graphics.lock: - graphics.state["moves"] = self.board.possible_moves(target) + if target.current_type != "unknown": + graphics.state["moves"] = self.board.possible_moves(target) + else: + graphics.state["moves"] = None time.sleep(turn_delay) else: self.board.update_move(x, y, x2, y2)