Added arrows to flowchart; fixed bitmap; added spare copy of bitmap.
[progcomp10.git] / src / simulate.py
index 7fa1bf2..cdf6d86 100755 (executable)
@@ -5,23 +5,18 @@ Written by Luke Williams <[email protected]> for the UCC Programming Competiti
 Licensed under an MIT-style license: see the LICENSE file for details.
 '''
 
-# Import and add your agents here:
-from link.C.c_agents import c_angel, c_lucifer, c_streetfighter, c_frenchie
-
-from SampleAgents import Angel, Lucifer, Dummy, Frenchie, Streetfighter
-Agents = [c_lucifer, Frenchie, c_streetfighter, c_angel]
+# this is the default arena. To chose a different one - for example to run your
+# own bots - use -a arenaName on the command line, or change this variable.
+arenaName = "PythonSampleAgents"
 
 ####################################
 # Developers only past this point! #
 ####################################
 
 import sys
+from conf import *
 from uccProgComp import Supervisor
 
-maxIterations = 150
-startingPopulations = 10
-verbose = False
-trials = 1
 usage = "Usage: rps [-v] [-i iterations=150] [-n starting_populations=10] [-t trials=1]"
 for i in range (1,len(sys.argv)):
        if sys.argv[i] == "-i":
@@ -48,25 +43,32 @@ for i in range (1,len(sys.argv)):
                except:
                        print usage
                        sys.exit(1)
-
        elif sys.argv[i] == "-v":
-               verbose = True
+               VERBOSE = True
+       elif sys.argv[i] == "-a":
+               arenaName = sys.argv[i+1]
+               i += 1
+
 
+#import the arena - NOTE THAT THIS IS A POTENTIAL SECURITY HOLE,
+# AS INPUT IS NOT SANITY CHECKED!
+importString = "from arenas." + arenaName + " import arena"
+exec importString
 
 iteration = 0
 trial = 0
 winners = {}
-while trial < trials:
+while trial < TRIALS:
        sup = Supervisor ()
-       for Agent in Agents: sup.RegisterAgent (Agent)
-       sup.GeneratePopulation (startingPopulations)
+       for Agent in arena.Agents: sup.RegisterAgent (Agent)
+       sup.GeneratePopulation (STARTING_POPULATION)
 
        trial += 1
        iteration = 0
-       while iteration < maxIterations and not sup.IsGameOver ():
+       while iteration < MAX_ITERATIONS and not sup.IsGameOver ():
                iteration += 1
                sup.Iterate ()
-               if not verbose: continue
+               if not VERBOSE: continue
                print "Iteration %d:" % iteration
                for key, value in sup.GetStats ().iteritems():
                        print "%s: Population=%d, Newborns=%d, Deaths=%d" % (key, value[0], value[1], value[2])

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