private void GiveBirth(IPoultry femalePoultry) { RabbitProvider rabbitValidator = new RabbitProvider(femalePoultry, Date); int childLength = rabbitValidator.GetNumberOffSpring(); for (int i = 0; i < childLength; i++) { double randomValue = _random.NextDouble(); Poultry child = new Poultry(); if (randomValue > RabbitConstant.FemaleBirthRate) { child.isMale = false; } else { child.isMale = true; } child.isPregnant = false; child.BirthDate = Date; child.PoultryEnum = (int)PoultryEnum.Rabbit; _poultryList.Add(child); } }
private void ImpregnateTheRabbit(IPoultry femalePoultry) { RabbitProvider rabbitValidator = new RabbitProvider(femalePoultry, Date); if (rabbitValidator.isPregnant() == true) { femalePoultry.isPregnant = true; femalePoultry.PregnancyDate = Date; } }
public Burrito(IngredientFactory ingredientFactory) { _poultry = ingredientFactory.GetPoultry(); _meat = ingredientFactory.GetMeat(); _vegetation = ingredientFactory.GetVegetation(); _cheese = ingredientFactory.GetCheese(); _guacomole = ingredientFactory.GetGuacomole(); _rice = ingredientFactory.GetRice(); _beans = ingredientFactory.GetBeans(); _creamCheese = ingredientFactory.GetCreamCheese(); _tomato = ingredientFactory.GetTomato(); _chili = ingredientFactory.GetChili(); }
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); } } }
//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); }
public RabbitProvider(IPoultry poultry, DateTime time) { _poultry = poultry; _time = time; }