Exemplo n.º 1
0
    public void Register(Genes genes)
    {
        foreach (Entry x in species)
        {
            float d = genes.Difference(x.genes);
            if (d < cSpeciesOffset)
            {
                // found it!
                x.count++;
                x.maxCount++;
                genes.species   = x.id;
                genes.isFounder = false;
                return;
            }
        }
        // a new species, hurray!
        Entry y = new Entry();

        y.id            = speciesId++;
        y.genes         = genes.Clone(); // can we have a clone plz?
        y.count         = 1;
        genes.species   = y.id;
        genes.isFounder = true;
        species.Add(y);
    }