Backing up the results files before fucking with them
[progcomp2012.git] / judge / simulator / simulate.py
index 217a80e..a7a138d 100755 (executable)
@@ -51,7 +51,7 @@ if len(sys.argv) >= 5:
 
 
 #Score dictionary - Tuple is of the form: (end score, other score, other result) where end is the player on whose turn the result occurs, other is the other player, other result indicates what to record the outcome as for the other player.
 
 
 #Score dictionary - Tuple is of the form: (end score, other score, other result) where end is the player on whose turn the result occurs, other is the other player, other result indicates what to record the outcome as for the other player.
-scores = {"VICTORY":(3,1, "DEFEAT"), "DEFEAT":(1,3, "VICTORY"), "SURRENDER":(1,3, "VICTORY"), "DRAW":(2,2, "DRAW"), "DRAW_DEFAULT":(1,1, "DRAW_DEFAULT"), "ILLEGAL":(-1,2, "DEFAULT"), "DEFAULT":(2,-1, "ILLEGAL"), "BOTH_ILLEGAL":(-1,-1, "BOTH_ILLEGAL"), "INTERNAL_ERROR":(0,0, "INTERNAL_ERROR"), "BAD_SETUP":(0,0,"BAD_SETUP")}
+scores = {"VICTORY":(0.3,0.1, "DEFEAT"), "DEFEAT":(0.1,0.3, "VICTORY"), "SURRENDER":(0,0.3, "VICTORY"), "DRAW":(0.2,0.2, "DRAW"), "DRAW_DEFAULT":(0.1,0.1, "DRAW_DEFAULT"), "ILLEGAL":(-0.1,0.2, "DEFAULT"), "DEFAULT":(0.2,-0.1, "ILLEGAL"), "BOTH_ILLEGAL":(-0.1,-0.1, "BOTH_ILLEGAL"), "INTERNAL_ERROR":(0,0, "INTERNAL_ERROR"), "BAD_SETUP":(0,0,"BAD_SETUP")}
 
 
 #Verbose - print lots of useless stuff about what you are doing (kind of like matches talking on irc...)
 
 
 #Verbose - print lots of useless stuff about what you are doing (kind of like matches talking on irc...)
@@ -152,6 +152,9 @@ if verbose:
 if verbose:
        print "Preparing .html results files..."
 
 if verbose:
        print "Preparing .html results files..."
 
+#BACKUP THE RESULTS DIRECTORY GOD DAMMIT
+os.system("mkdir .before_round"+str(totalRounds)+"_BACKUP/; cp " + resultsDirectory+"*" + " .before_round"+str(totalRounds)+"_BACKUP/")
+
 
 if os.path.exists(resultsDirectory + "index.html") == True:
        os.remove(resultsDirectory + "index.html") #Delete the file
 
 if os.path.exists(resultsDirectory + "index.html") == True:
        os.remove(resultsDirectory + "index.html") #Delete the file
@@ -206,7 +209,7 @@ for agent in agents:
                                agentFile.write(line)
                                line = oldFile.readline()
                                values = line.split(' ')
                                agentFile.write(line)
                                line = oldFile.readline()
                                values = line.split(' ')
-                               agent["totalScore"] += int(values[2].strip())
+                               agent["totalScore"] += float(values[2].strip())
                                agent["Wins"] += int(values[5].strip())
                                agent["Losses"] += int(values[8].strip())
                                agent["Draws"] += int(values[11].strip())
                                agent["Wins"] += int(values[5].strip())
                                agent["Losses"] += int(values[8].strip())
                                agent["Draws"] += int(values[11].strip())
@@ -258,7 +261,8 @@ for roundNumber in range(totalRounds, totalRounds + nRounds):
                                logFile = logDirectory + "round"+str(roundNumber) + "/"+red["name"]+".vs."+blue["name"]+"."+str(gameID)
                                errorLog = [logDirectory + "error/" + red["name"] + "."+str(gameID), logDirectory + "error/" + blue["name"] + "."+str(gameID)]
                                #Run the game, outputting to logFile; stderr of (both) AI programs is directed to logFile.stderr
                                logFile = logDirectory + "round"+str(roundNumber) + "/"+red["name"]+".vs."+blue["name"]+"."+str(gameID)
                                errorLog = [logDirectory + "error/" + red["name"] + "."+str(gameID), logDirectory + "error/" + blue["name"] + "."+str(gameID)]
                                #Run the game, outputting to logFile; stderr of (both) AI programs is directed to logFile.stderr
-                               outline = os.popen(managerPath + " -o " + logFile + " -T " + str(timeoutValue) + " \"" + red["path"] + "\" \"" + blue["path"] + "\" 2>> " + logFile+".stderr", "r").read()
+                               outline = os.popen(managerPath + " -m 1000 -o " + logFile + " -T " + str(timeoutValue) + " \"" + red["path"] + "\" \"" + blue["path"] + "\" 2>> " + logFile+".stderr", "r").read()
+                               
                                #os.system("mv tmp.mp4 " + logFile + ".mp4")
                                
                                #If there were no errors, get rid of the stderr file
                                #os.system("mv tmp.mp4 " + logFile + ".mp4")
                                
                                #If there were no errors, get rid of the stderr file

UCC git Repository :: git.ucc.asn.au