aboutsummaryrefslogtreecommitdiff
path: root/competition.py
diff options
context:
space:
mode:
authortomsmeding <hallo@tomsmeding.nl>2015-04-27 11:29:03 +0200
committertomsmeding <hallo@tomsmeding.nl>2015-04-27 11:29:03 +0200
commit926fed6a5c719e5ff363757626cdebe48d4f0561 (patch)
tree914a78968c4fbeb4877c447d09b7808510bc6d91 /competition.py
parenta7f94036e9b14bde1aaf497e1aa797b41ce6ea3f (diff)
Add working viewcompetition logic using html files in gamevisuals/
Diffstat (limited to 'competition.py')
-rwxr-xr-xcompetition.py34
1 files changed, 22 insertions, 12 deletions
diff --git a/competition.py b/competition.py
index ab72d20..2582288 100755
--- a/competition.py
+++ b/competition.py
@@ -12,7 +12,7 @@ Options:
-C Do not write a Competition log
-h Help. What you're looking at
-q Quiet. Don't print so much
- -v View the competition afterwards using ./viewcompetition
+ -V Do not view the competition, so don't write an html file
"""
import os,sys,subprocess,shlex,re,time
@@ -115,7 +115,7 @@ def haswon(board,lastplayer):
fname=""
quiet=False
-viewcompetition=False
+viewcompetition=True
complog=True
if len(sys.argv)==1: #no args
fname="competition.txt"
@@ -129,7 +129,7 @@ else:
print(__doc__)
sys.exit(0)
elif c=="q": quiet=True
- elif c=="v": viewcompetition=True
+ elif c=="V": viewcompetition=False
else:
print("Unrecognised flag '"+c+"'.")
print(__doc__)
@@ -179,12 +179,12 @@ elif not os.path.isdir("playerlogs"):
sys.exit(1)
try:
- logfname="playerlogs/"+re.sub(r"[^a-zA-Z0-9 ]","",p1fname)+"_white_vs_"+re.sub(r"[^a-zA-Z0-9 ]","",p2fname)+".txt"
- p1errlog=open(logfname,mode="w")
- logfname="playerlogs/"+re.sub(r"[^a-zA-Z0-9 ]","",p2fname)+"_black_vs_"+re.sub(r"[^a-zA-Z0-9 ]","",p1fname)+".txt"
- p2errlog=open(logfname,mode="w")
+ plogfname="playerlogs"+os.path.sep+re.sub(r"[^a-zA-Z0-9 ]","",p1fname)+"_white_vs_"+re.sub(r"[^a-zA-Z0-9 ]","",p2fname)+".txt"
+ p1errlog=open(plogfname,mode="w")
+ plogfname="playerlogs"+os.path.sep+re.sub(r"[^a-zA-Z0-9 ]","",p2fname)+"_black_vs_"+re.sub(r"[^a-zA-Z0-9 ]","",p1fname)+".txt"
+ p2errlog=open(plogfname,mode="w")
except:
- print("Error: could not open log file '"+logfname+"'.")
+ print("Error: could not open log file '"+plogfname+"'.")
sys.exit(1)
#Start programs
@@ -222,7 +222,7 @@ elif not os.path.isdir("competitions"):
sys.exit(1)
try:
- logfname="competitions/game_"+re.sub(r"[^a-zA-Z0-9 ]","",p1fname)+"_vs_"+re.sub(r"[^a-zA-Z0-9 ]","",p2fname)+".txt"
+ logfname="competitions"+os.path.sep+"game_"+re.sub(r"[^a-zA-Z0-9 ]","",p1fname)+"_vs_"+re.sub(r"[^a-zA-Z0-9 ]","",p2fname)+".txt"
logfile=open(logfname,mode="w")
logfile.write("P1: "+p1fname+"\nP2: "+p2fname+"\n")
except:
@@ -299,6 +299,8 @@ while True:
if not quiet:
print("P"+str(player)+": "+movestr(move)+" ",end="")
sys.stdout.flush()
+ if complog:
+ logfile.write("P"+str(player)+": "+movestr(move)+"\n")
won=haswon(board,player)
@@ -315,8 +317,6 @@ while True:
except: pass
sys.exit(1)
else: raise e
- if complog:
- logfile.write("P"+str(player)+": "+movestr(move)+"\n")
nummoves+=1
if won!=0:
@@ -350,4 +350,14 @@ try: p2proc.terminate()
except: pass
if viewcompetition:
- os.system("."+os.path.sep+"viewcompetition "+logfname)
+ if not os.path.exists("gamevisuals"):
+ try:
+ os.mkdir("gamevisuals")
+ except:
+ print("Error: could not create log directory 'gamevisuals'.")
+ sys.exit(1)
+ elif not os.path.isdir("gamevisuals"):
+ #Apparently, there's a file named "gamevisuals". Bastard.
+ print("Error: an existing file prohibits creation of log directory 'gamevisuals'.")
+ sys.exit(1)
+ os.system("."+os.path.sep+"viewcompetition "+logfname+" >gamevisuals"+os.path.sep+logfname[logfname.index(os.path.sep)+1:]+".html")