-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
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
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
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()
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]
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")