Ejemplo n.º 1
0
        private void Mating(List <IPoultry> femalePoultryList, List <IPoultry> malePoultryList)
        {
            foreach (IPoultry femalePoultry in femalePoultryList)
            {
                //Önce dişi tavşanın çiftleşme kurallarına uyup uymadığına bakıyorum
                RabbitProvider rabbitValidator = new RabbitProvider(femalePoultry, Date);
                if (rabbitValidator.isCanMate())
                {
                    //Burada eş olan erkek tavşanı buluyorum.
                    IPoultry male = GetWillingToMateMaleRabbit(malePoultryList);


                    ImpregnateTheRabbit(femalePoultry);
                }
            }
        }
Ejemplo n.º 2
0
        //Sıradaki dişi tavşana karşı en istekli erkek tavşanı alıyorum.
        private IPoultry GetWillingToMateMaleRabbit(List <IPoultry> malePoultryList)
        {
            IPoultry most       = null;
            double   mostDesire = CommonConstant._zero;

            foreach (IPoultry malePoultry in malePoultryList)
            {
                double desire = _random.NextDouble();

                if (desire >= mostDesire)
                {
                    RabbitProvider rabbitValidatorForMaleRabbit = new RabbitProvider(malePoultry, Date);
                    //Erkek tavşanın çiftleşme kurallarına uyuyormu
                    if (rabbitValidatorForMaleRabbit.isCanMate())
                    {
                        most = malePoultry;
                    }
                }
            }

            return(most);
        }