--- /dev/null
+# Alternative (obsolete) algorithms for selecting agents for battle.
+# They're all a bit crap and only here for comparison purposes.
+
+
+# Selects an opponent and removes it from the list of remaining potential opponents.
+ # This is just an example, but the fact that the first agent will miss out on having
+ # a fight picked with it it, and that the last agent won't get to pick a fight, seems
+ # to not matter very much. Can probably be left as-is.
+ def ChoosePair (self):
+ # This approach forces each agent to defend once and attack once per round.
+ # Keep track of the remaining population.
+ remaining = self.population[:]
+ agentID = random.randint (0,len(remaining)-1)
+ defender = remaining.pop (agentID) # Not really a defender (try to work it out)!
+ while len (remaining) > 1:
+ if defender.GetPoints () < 1: # If the agent died before it got a chance to attack
+ attackerID = random.randint (0,len(remaining)-1)
+ attacker = remaining.pop (attackerID)
+ else: attacker = defender
+ defenderID = random.randint (0,len(remaining)-1)
+ defender = remaining.pop (defenderID)
+ yield attacker, defender
+