示例#1
0
    void Start()
    {
        world = new World(worldWidth, worldHeight);
        world.CreateWorld();

        poblation = new Poblation(individualGO);
        for (int i = 0; i < 1; i++)
        {
            poblation.CreateIndividual(world.GetRandomWalkableTile(), worldWidth, worldHeight);
        }

        food = new FoodManager(foodGO);

        ConfigCamera();

        InvokeRepeating("IncreaseHunger", 0.5f, 1.0f);
    }
示例#2
0
    public static Poblation GenerateGroup(int Size, int IndividualSize)
    {
        Poblation Group = new Poblation();

        int i   = 0;
        int Max = Size;

        for (i = 0; i <= Max; i++)
        {
            Individual newIndividual = new Individual(string.Format("Individual_{0}", i));
            newIndividual.Genomma = RandString(IndividualSize);

            Group.Add(newIndividual);
        }

        return(Group);
    }
示例#3
0
    public static void Main()
    {
        Console.WriteLine("Write a text to generate");
        OptimalResult = Console.ReadLine().ToUpper();

        Poblation  MyGroup   = GenerateGroup(300, OptimalResult.Length);
        bool       HasResult = false;
        Individual Winner    = null;

        System.Diagnostics.Stopwatch StopWatch = new System.Diagnostics.Stopwatch();
        StopWatch.Start();


        while (HasResult == false)
        {
            MyGroup.RemoveBadCandidats(OptimalResult);
            MyGroup.GenerateChanges(OptimalResult);


            foreach (Individual item in MyGroup)
            {
                Console.WriteLine("{0}: Level:{1}, Genomma:{2}", item.Name, item.Evaluate(OptimalResult), item.GenommaString);
                if (item.Evaluate(OptimalResult) == OptimalResult.Length | MyGroup.Count <= 1)
                {
                    HasResult = true;

                    Winner = item;
                    StopWatch.Stop();
                    break;                     // TODO: might not be correct. Was : Exit For
                }
            }
        }
        Console.WriteLine("Hello, my name is {0} and i got this result: {1}", Winner.Name, Winner.GenommaString);
        Console.WriteLine("My brothers: ");
        dynamic query = from item in MyGroup where item.GenommaString == Winner.GenommaStringitem;

        foreach (Individual item in query)
        {
            Console.WriteLine("My name is {0} and my genomma is {1}", item.Name, item.GenommaString);
        }
        Console.WriteLine("Elapsed {0}", StopWatch.ElapsedMilliseconds);
        Console.ReadLine();
    }