X-Git-Url: https://git.ucc.asn.au/?p=progcomp2013.git;a=blobdiff_plain;f=qchess%2Fsrc%2Fmain.py;h=7e862a9cf54cea4ea98b50c93640dbdbde990d3f;hp=61e030b3647531128ce2b0e7462b71ee5d6ae8fe;hb=c0c346f95a6d19d8967928aeeeb4937e1a99f2f4;hpb=337c794fe317a54c65bf5de103bf1a55c0ceb141 diff --git a/qchess/src/main.py b/qchess/src/main.py index 61e030b..7e862a9 100644 --- a/qchess/src/main.py +++ b/qchess/src/main.py @@ -16,6 +16,7 @@ import os import time turn_delay = 0.5 +sleep_timeout = None [game, graphics] = [None, None] def make_player(name, colour): @@ -64,12 +65,13 @@ def main(argv): global turn_delay global agent_timeout - global log_file + global log_files global src_file global graphics_enabled global always_reveal_states + global sleep_timeout - max_lines = None + max_moves = None src_file = None style = "quantum" @@ -109,31 +111,33 @@ def main(argv): elif arg[1] == '-' and arg[2:] == "reveal": always_reveal_states = True elif (arg[1] == '-' and arg[2:] == "graphics"): - graphics_enabled = not graphics_enabled + graphics_enabled = True + elif (arg[1] == '-' and arg[2:] == "no-graphics"): + graphics_enabled = False elif (arg[1] == '-' and arg[2:].split("=")[0] == "file"): # Load game from file if len(arg[2:].split("=")) == 1: src_file = sys.stdin else: f = arg[2:].split("=")[1] - if f[0] == '@': - src_file = HttpReplay("http://" + f.split(":")[0][1:]) + if f[0:7] == "http://": + src_file = HttpReplay(f) else: - src_file = open(f.split(":")[0], "r", 0) + src_file = FileReplay(f.split(":")[0]) - if len(f.split(":")) == 2: - max_lines = int(f.split(":")[1]) + if len(f.split(":")) == 2: + max_moves = int(f.split(":")[1]) elif (arg[1] == '-' and arg[2:].split("=")[0] == "log"): # Log file if len(arg[2:].split("=")) == 1: - log_file = LogFile(sys.stdout) + log_files.append(LogFile(sys.stdout)) else: f = arg[2:].split("=")[1] if f[0] == '@': - log_file = HttpLog(f[1:]) + log_files.append(ShortLog(f[1:])) else: - log_file = LogFile(open(f, "w", 0)) + log_files.append(LogFile(open(f, "w", 0))) elif (arg[1] == '-' and arg[2:].split("=")[0] == "delay"): # Delay if len(arg[2:].split("=")) == 1: @@ -147,6 +151,12 @@ def main(argv): agent_timeout = -1 else: agent_timeout = float(arg[2:].split("=")[1]) + elif (arg[1] == '-' and arg[2:].split("=")[0] == "blackout"): + # Screen saver delay + if len(arg[2:].split("=")) == 1: + sleep_timeout = -1 + else: + sleep_timeout = float(arg[2:].split("=")[1]) elif (arg[1] == '-' and arg[2:] == "help"): # Help @@ -173,17 +183,21 @@ def main(argv): if graphics_enabled: sys.stderr.write(sys.argv[0] + " : (You won't get a GUI, because --file was used, and the author is lazy)\n") return 44 - game = ReplayThread(players, src_file, end=end, max_lines=max_lines) + game = ReplayThread(players, src_file, end=end, max_moves=max_moves) else: board = Board(style) + board.max_moves = max_moves game = GameThread(board, players) + # Initialise GUI if graphics_enabled == True: try: graphics = GraphicsThread(game.board, grid_sz = [64,64]) # Construct a GraphicsThread! + + graphics.sleep_timeout = sleep_timeout except Exception,e: graphics = None @@ -262,12 +276,14 @@ def main(argv): error = game.error - if log_file != None and log_file != sys.stdout: - log_file.close() + for l in log_files: + l.close() if src_file != None and src_file != sys.stdin: src_file.close() + sys.stdout.write(game.final_result + "\n") + return error # This is how python does a main() function...