X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=qchess%2Fsrc%2Fgame.py;h=b3c7dd3ecdf86b50e6ab7647da807a828ad270b5;hb=6857a85bd7dc426f0b864780596435555bef3f11;hp=07a1325a9d96940b54820681139b6b17f0ef2309;hpb=a35e4dc5f4fb6325785b6f8b123266976107b748;p=progcomp2013.git diff --git a/qchess/src/game.py b/qchess/src/game.py index 07a1325..b3c7dd3 100644 --- a/qchess/src/game.py +++ b/qchess/src/game.py @@ -1,26 +1,6 @@ -log_file = None - -def log(s): - if log_file != None: - import datetime - log_file.write(str(datetime.datetime.now()) + " : " + s + "\n") - -def log_init(board, players): - if log_file != None: - import datetime - log_file.write("# Log starts " + str(datetime.datetime.now()) + "\n") - for p in players: - log_file.write("# " + p.colour + " : " + p.name + "\n") - - log_file.write("# Initial board\n") - for x in range(0, w): - for y in range(0, h): - if board.grid[x][y] != None: - log_file.write(str(board.grid[x][y]) + "\n") - log_file.write("# Start game\n") # A thread that runs the game @@ -155,7 +135,11 @@ class ReplayThread(GameThread): self.line_number = 0 self.end = end - try: + self.setup() + + def setup(self): + sys.stderr.write("setup called for ReplayThread\n") + if True: while self.src.readline().strip(" \r\n") != "# Initial board": self.line_number += 1 @@ -180,8 +164,8 @@ class ReplayThread(GameThread): line = self.src.readline().strip(" \r\n") - except Exception, e: - raise Exception("FILE line: " + str(self.line_number) + " \""+str(line)+"\"") #\n" + e.message) + #except Exception, e: + # raise Exception("FILE line: " + str(self.line_number) + " \""+str(line)+"\"") #\n" + e.message) def run(self): i = 0 @@ -189,6 +173,7 @@ class ReplayThread(GameThread): count = 0 line = self.src.readline().strip(" \r\n") while line != "# EOF": + sys.stderr.write(sys.argv[0] + " : " + str(self.__class__.__name__) + " read: " + str(line) + "\n") count += 1 if self.max_lines != None and count > self.max_lines: self.stop() @@ -201,15 +186,18 @@ class ReplayThread(GameThread): line = line.split(":") result = line[len(line)-1].strip(" \r\n") - log(result) + try: self.board.update(result) - except: + except Exception, e: + sys.stderr.write("Exception! " + str(e.message) + "\n") self.final_result = result self.stop() break + log(result) + [x,y] = map(int, result.split(" ")[0:2]) target = self.board.grid[x][y] @@ -245,9 +233,11 @@ class ReplayThread(GameThread): phase = (phase + 1) % 2 if phase == 0: i = (i + 1) % 2 - + line = self.src.readline().strip(" \r\n") + sys.stderr.write(sys.argv[0] + " : " + str(self.__class__.__name__) + " finished...\n") + if self.max_lines != None and self.max_lines > count: sys.stderr.write(sys.argv[0] + " : Replaying from file; stopping at last line (" + str(count) + ")\n") sys.stderr.write(sys.argv[0] + " : (You requested line " + str(self.max_lines) + ")\n")