示例#1
0
    def __init__(self, genes=None, x=0.0, y=0.0, predator=False):

        R = funcs.gene2color(genes[-1])
        G = funcs.gene2color(genes[-2])
        B = funcs.gene2color(genes[-3])

        if predator:
            R, G, B = 0.9, 0.1, 0.1

        super(Creature, self).__init__([x, y],
                                       radius_multiplier=0.5,
                                       color=(R, G, B),
                                       energy=Creature.health)

        self.predator = predator
        self.cod = None
        self.rotation = random.random()
        self.speed = 0.0
        self.num_detections = 1
        self.distance = 0.0
        self.rotated = 0.0
        self.consumed_energy = 1
        self.life_length = 1
        self.antennae_length = self.radius_multiplier * self.G_MAXIMUM_RADIUS * 5
        self.brain = eval(Creature.brain_type)(genes)
示例#2
0
	def __init__(self, genes=None, x=0.0, y=0.0, predator=False):
		
		R = funcs.gene2color(genes[-1])
		G = funcs.gene2color(genes[-2])
		B = funcs.gene2color(genes[-3])

		if predator:
			R,G,B = 0.9, 0.1, 0.1

		super(Creature, self).__init__([x,y], 
			radius_multiplier=0.5, 
			color=(R,G,B),
			energy=Creature.health)
			
		self.predator = predator
		self.cod = None
		self.rotation = random.random()
		self.speed = 0.0
		self.num_detections = 1
		self.distance = 0.0
		self.rotated = 0.0
		self.consumed_energy = 1
		self.life_length = 1
		self.antennae_length = self.radius_multiplier * self.G_MAXIMUM_RADIUS * 5
		self.brain = eval(Creature.brain_type)(genes)
示例#3
0
	def printStatsCreatures(self,pop,gen,dba,dbb,dbp):
		fits = [ind.fitness.values[0] for ind in pop]
		mean = sum(fits) / len(pop)
		reds = [funcs.gene2color(genome[-1]) for genome in pop]
		greens = [funcs.gene2color(genome[-2]) for genome in pop]
		blues = [funcs.gene2color(genome[-3]) for genome in pop]
		stats.add("creature_fitness.avg",mean)
		stats.add("creature_fitness.min",min(fits))
		stats.add("creature_fitness.max",max(fits))
		stats.add("creature.death_by_bush_procent",dbb*1.0/(dbb+dba+dbp))
		stats.add("creature.death_by_predator_procent",dbp*1.0/(dbb+dba+dbp))
		stats.add("creature_color.red", sum(reds)/len(reds))
		stats.add("creature_color.blue", sum(blues)/len(blues))
		stats.add("creature_color.green", sum(greens)/len(greens))
		return ("(%3i): Max: %6.2f, Avg: %6.2f, Min: %5.2f, DBBP: %.2f" % (gen, max(fits), mean, min(fits),dbb*1.0/(dbb+dbp+dba)))
示例#4
0
 def printStatsCreatures(self, pop, gen, dba, dbb, dbp):
     fits = [ind.fitness.values[0] for ind in pop]
     mean = sum(fits) / len(pop)
     reds = [funcs.gene2color(genome[-1]) for genome in pop]
     greens = [funcs.gene2color(genome[-2]) for genome in pop]
     blues = [funcs.gene2color(genome[-3]) for genome in pop]
     stats.add("creature_fitness.avg", mean)
     stats.add("creature_fitness.min", min(fits))
     stats.add("creature_fitness.max", max(fits))
     stats.add("creature.death_by_bush_procent",
               dbb * 1.0 / (dbb + dba + dbp))
     stats.add("creature.death_by_predator_procent",
               dbp * 1.0 / (dbb + dba + dbp))
     stats.add("creature_color.red", sum(reds) / len(reds))
     stats.add("creature_color.blue", sum(blues) / len(blues))
     stats.add("creature_color.green", sum(greens) / len(greens))
     return ("(%3i): Max: %6.2f, Avg: %6.2f, Min: %5.2f, DBBP: %.2f" %
             (gen, max(fits), mean, min(fits), dbb * 1.0 /
              (dbb + dbp + dba)))