Beispiel #1
0
 public RabbitPair()
 {
     InitializeComponent();
     _myCenter = (int)(this.Width / 2);
     _myRect   = new Rectangle(this.Location, this.Size);
     MaleRabbit.SetParentPair(this);
     FemaleRabbit.SetParentPair(this);
 }
Beispiel #2
0
 public void SetDad(RabbitGen r)
 {
     if (r != null)
     {
         _dad             = r;
         MaleRabbit.Genom = r.BreedId.ToString();
         MaleRabbit.SetRabbit(r);
         if (_treeParentPair != null)
         {
             _treeParentPair.RefreshGenom();
         }
     }
 }
Beispiel #3
0
 public void ReplaceGenomeColors(Dictionary <int, Color> gcs)
 {
     FemaleRabbit.ReplaceGenomeColors(gcs);
     MaleRabbit.ReplaceGenomeColors(gcs);
     if (_treeChildFPair != null)
     {
         _treeChildFPair.ReplaceGenomeColors(gcs);
     }
     if (_treeChildMPair != null)
     {
         _treeChildMPair.ReplaceGenomeColors(gcs);
     }
 }
        public override IAnimal CreateAnimal()
        {
            IAnimal animal = null;
            var     sex    = GetMaleOrFemale();

            if (sex == AnimalFactory.Sex.Female)
            {
                animal = new FemaleRabbit();
            }
            else
            {
                animal = new MaleRabbit();
            }
            return(animal);
        }
Beispiel #5
0
        public void SetTreeChildMPair(RabbitPair p)
        {
            if (p == null)
            {
                return;
            }

            _treeChildMPair = p;

            _treeMArrow           = new ArrowImg();
            _treeMArrow.BackColor = this.BackColor;
            _treeMArrow.Location  = new Point(0, 0);
            _treeMArrow.SetRight();
            _treeMArrow.SetStart();
//			_TreeMArrow.SetBothEnds();
            _parentControl.Controls.Add(_treeMArrow);

            p.SetTreeGenderSide(1);
            p.SetTreeParentPair(this);
            p.ReplaceGenomeColors(MaleRabbit.GetGenomColors());
            p.WindowRabbitID = _windowRabbitID;
        }
Beispiel #6
0
        public static void Run()
        {
            var configuration = RPSStartup.Builder().Build();

            new Statistics(configuration).getStatisticConfiguration();

            Coop coop = new Coop();

            coop.getGenderRabbits(Gender.MALE);
            coop.getGenderRabbits(Gender.FEMALE);

            for (int month = 0; month <= Statistics.months; month++)
            {
                if (coop.femaleRabbits.Count > 0)
                {
                    int newBornFemaleRabbit = 0;
                    int newBornMaleRabbit   = 0;

                    coop.femaleRabbits?.ForEach(femaleRabbit =>
                    {
                        if (femaleRabbit.getLoseofFertility() > femaleRabbit.getAge() && femaleRabbit.getAge() > 0)
                        {
                            newBornFemaleRabbit += coop.getNumberofNewbornRabbits()
                                                   * coop.getPercentageofRabbitsBorn() / 100;
                            newBornMaleRabbit += coop.getNumberofNewbornRabbits()
                                                 * (100 - coop.getPercentageofRabbitsBorn()) / 100;
                        }
                    });

                    for (int i = 0; i < newBornFemaleRabbit; i++)
                    {
                        coop.getGenderRabbits(Gender.FEMALE);
                    }

                    for (int i = 0; i < newBornMaleRabbit; i++)
                    {
                        coop.getGenderRabbits(Gender.MALE);
                    }

                    RabbitAggregate <FemaleRabbit> femaleRabbitAggregate = new RabbitAggregate <FemaleRabbit>(coop.femaleRabbits);
                    var femaleRabbitIterator = femaleRabbitAggregate.GetIterator();
                    femaleRabbitIterator.First();
                    while (femaleRabbitIterator.IsDone())
                    {
                        FemaleRabbit femaleRabbit = femaleRabbitIterator.CurrentItem();
                        if (femaleRabbit.getAge() >= femaleRabbit.getLifetime())
                        {
                            femaleRabbitIterator.Remove();
                        }
                        else
                        {
                            if (month != Statistics.months)
                            {
                                femaleRabbit.age += Statistics.timeofPregnancy;
                            }
                        }
                        femaleRabbitIterator.Next();
                    }

                    RabbitAggregate <MaleRabbit> maleRabbitAggregate = new RabbitAggregate <MaleRabbit>(coop.maleRabbits);
                    var maleRabbitIterator = maleRabbitAggregate.GetIterator();
                    maleRabbitIterator.First();
                    while (maleRabbitIterator.IsDone())
                    {
                        MaleRabbit maleRabbit = maleRabbitIterator.CurrentItem();
                        if (maleRabbit.getAge() >= maleRabbit.getLifetime())
                        {
                            maleRabbitIterator.Remove();
                        }
                        else
                        {
                            if (month != Statistics.months)
                            {
                                maleRabbit.age += Statistics.timeofPregnancy;
                            }
                        }
                        maleRabbitIterator.Next();
                    }
                }
                month += Statistics.timeofPregnancy;
            }

            for (int i = 0; i <= Statistics.months; i++)
            {
                int numberFemale = 0;
                int numberMale   = 0;

                coop.femaleRabbits?.ForEach(femaleRabbit =>
                {
                    if (femaleRabbit.getAge() == i)
                    {
                        numberFemale++;
                    }
                });

                coop.maleRabbits?.ForEach(maleRabbit =>
                {
                    if (maleRabbit.getAge() == i)
                    {
                        numberMale++;
                    }
                });

                Console.WriteLine(i + " aylık " + numberFemale + " dişi " + numberMale + " erkek tavşan");
            }
            Console.ReadLine();
        }
Beispiel #7
0
 public void RedrawMe()
 {
     FemaleRabbit.Redraw();
     MaleRabbit.Redraw();
 }
Beispiel #8
0
 public void MeetNeighbors()
 {
     FemaleRabbit.MeetNeighbors();
     MaleRabbit.MeetNeighbors();
 }