Ejemplo n.º 1
0
        /// <summary>
        /// Initialize the colony and the bee memories
        /// </summary>
        /// <param name="size"></param>
        /// <param name="foodSources"></param>
        /// <param name="fitnessGetFunction"></param>
        public Colony(int size, List <FoodSource> foodSources, Fitness.Get fitnessGetFunction)
        {
            this.foodSources        = foodSources;
            this.fitnessGetFunction = fitnessGetFunction;
            this.newFoodSourceQueue = new Queue <FoodSource>();
            //Initialization
            //Generate our bee counts and supply a random memory set for each bee.
            scoutCount    = (int)(.15 * size);
            onlookerCount = (int)(.10 * size);
            employedCount = size - (scoutCount + onlookerCount);

            for (int i = 0; i < scoutCount; i++)
            {
                Bees.Add(new Bee(Bee.StatusType.SCOUT,
                                 GetUniqueRandoms(Rand, 0, foodSources.Count)));
            }
            //Employeed Bees
            for (int i = 0; i < employedCount; i++)
            {
                Bees.Add(new Bee(Bee.StatusType.EMPLOYED,
                                 GetUniqueRandoms(Rand, 0, foodSources.Count)));
            }
            //Onlooker Bees
            for (int i = 0; i < onlookerCount; i++)
            {
                Bees.Add(new Bee(Bee.StatusType.ONLOOKER,
                                 GetUniqueRandoms(Rand, 0, foodSources.Count)));
            }
        }
Ejemplo n.º 2
0
 protected override void OnSimObjectUpdating(SimObject simObject, SimModel simModel, SimState simState)
 {
     if (Bees.Count < 30 && Bees.Count < simState.MillisecondsSinceSimStart / 1000.0)
     {
         var bee = new Actor(SpawnLocation);
         if (simModel.DetectCollisions(bee).Any())
         {
             return;
         }
         bee.Behaviours.Add(new BeeBehaviour(_random, simObject));
         bee.Behaviours.Add(new NectarCarrierBehaviour());
         Bees.Add(bee);
         simModel.AddSimObject(bee);
     }
 }
Ejemplo n.º 3
0
        public GameObject CreateDroneBee(Vector2 position)
        {
            GameObject newBee = (GameObject)Instantiate(droneBee, position, Quaternion.identity);

            Bees.Add(newBee);
            newBee.transform.SetParent(worldCanvas.transform);

            if (BeeCreated != null)
            {
                BeeCreated(newBee);
            }
            if (DroneBeeCreated != null)
            {
                DroneBeeCreated(newBee);
            }
            return(newBee);
        }
Ejemplo n.º 4
0
        public BeesViewModel()
        {
            for (int i = 0; i < 10; i++)
            {
                Bees.Add(new WorkerBee());
            }

            for (int i = 0; i < 10; i++)
            {
                Bees.Add(new DroneBee());
            }

            for (int i = 0; i < 10; i++)
            {
                Bees.Add(new QueenBee());
            }
        }