예제 #1
0
        public override void Eet(Speelveld eoSpeelveld, Dier dier)
        {
            if (this.TotAantStappen <= 0)
            {
                if (dier != null)
                {
                    // add the levenskracht of the herbivoor with the carnivoor
                    this.Levenskracht += dier.Levenskracht;
                    // remove the herbivoor
                    dier.Delete();
                    dier = null;   // todo: move this to the delete() of the carnivoor
                    Stap(0, 1, eoSpeelveld);
                    this.TotAantStappen++;
                }
            }

            ////{
            ////    // test if the animal at the right position is a herbivoor
            ////    if (PosY + 1 < eoSpeelveld.GrootteY &&
            ////        eoSpeelveld.Terrarium[PosX, PosY + 1] != null &&
            ////        eoSpeelveld.Terrarium[PosX, PosY + 1].GetType() == typeof(Herbivoor))
            ////    {
            ////        // add the levenskracht of the herbivoor with the carnivoor
            ////        this.Levenskracht += eoSpeelveld.Terrarium[PosX, PosY + 1].Levenskracht;
            ////        // remove the herbivoor
            ////        eoSpeelveld.Terrarium[PosX, PosY + 1].Delete();
            ////        eoSpeelveld.Terrarium[PosX, PosY + 1] = null;   // todo: move this to the delete() of the carnivoor
            ////        Stap(0, 1, eoSpeelveld);
            ////        this.TotAantStappen++;
            ////    }
            ////}
        }
예제 #2
0
파일: Program.cs 프로젝트: scrumvdabgenk/T1
        static void DoTerrateam()
        {
            // do some Console stuff
            Console.BackgroundColor = ConsoleColor.Black;
            Console.CursorVisible   = false;
            Console.Clear();
//          Console.SetWindowSize(cnGrootteY+1, cnGrootteX+1);
            //Console.SetBufferSize(cnGrootteY+1, cnGrootteX+1);

            // create speelveld and additional data
            Random    rnd       = new Random();
            Speelveld speelveld = new Speelveld(cnGrootteY, cnGrootteX, cnDisplayModel);

            int rndspeelveld      = speelveld.GrootteX * speelveld.GrootteY;
            int rndspeelveld1     = speelveld.GrootteX + speelveld.GrootteY;
            int rndValuePlant     = (cnGrootteX + cnGrootteY) / 2;
            int rndValueherbivoor = (cnGrootteX + cnGrootteY) / 2;
            int rndValueCarnivoor = cnGrootteX + cnGrootteY;
            int rndValueMens      = cnGrootteX + cnGrootteY;

            ////////int rndValuePlant = rnd.Next(1, ((rndspeelveld / rndspeelveld1) / 5)+1);
            ////////int rndValueherbivoor = rnd.Next(1, ((rndspeelveld / rndspeelveld1) / 4)+1);
            ////////int rndValueCarnivoor = rnd.Next(1, ((rndspeelveld / rndspeelveld1) / 4)+1);
            ////////int rndValueMens = rnd.Next(1, ((rndspeelveld / rndspeelveld1) / 4)+1);

            List <Plant> planten = Plant.CreatePlanten(rndValuePlant);

            speelveld.AddPlantenToSpeelveld(planten);

            List <Herbivoor> herbivoren = Herbivoor.CreateHerbivoren(rnd.Next(1, rndValueherbivoor));

            speelveld.AddHerbivorenToSpeelveld(herbivoren);

            List <Carnivoor> carnivoren = Carnivoor.CreateCarnivoren(rnd.Next(1, rndValueCarnivoor));

            speelveld.AddCarnivorenToSpeelveld(carnivoren);

            List <Mens> mensen = Mens.CreateMensen(rnd.Next(1, rndValueMens));

            speelveld.AddMensenToSpeelveld(mensen);

            speelveld.ToonSpeelveld();;
            while (!(Console.KeyAvailable && Console.ReadKey(true).Key == ConsoleKey.Escape))
            {
                int lnReturn = speelveld.DoActionsOf1Day(mensen, carnivoren, herbivoren, planten);

                speelveld.ToonSpeelveld();

                speelveld.ResetAllStappen(herbivoren, carnivoren);
                speelveld.RemoveDeletedCarnivoren(ref carnivoren);
                speelveld.RemoveDeletedHerbivoren(ref herbivoren);
                speelveld.RemoveDeletedMensen(ref mensen);

                if (lnReturn == -1)
                {
                    break;  // stop while loop
                }
            }
            Console.CursorVisible = true;
        }
예제 #3
0
        public override void Vecht(Speelveld eoSpeelveld, Dier dier)
        {
            if (this.TotAantStappen <= 0)
            {
                //Dier dier = null;

                //if ((PosY + 1 < eoSpeelveld.GrootteY)
                //    && (eoSpeelveld.Terrarium[PosX,PosY+1]!=null)
                //    && (eoSpeelveld.Terrarium[PosX, PosY + 1].GetType() == typeof(Dier)))
                //{
                //    dier = (Dier)eoSpeelveld.Terrarium[PosX, PosY + 1];
                //}

                // test if the animal at the right position is a carnivoor
                if (dier != null && dier.GetType() == typeof(Carnivoor))
                {
                    if (this.Levenskracht > dier.Levenskracht)
                    {
                        this.Eet(eoSpeelveld, dier);
                    }
                    else if (this.Levenskracht < dier.Levenskracht)
                    {
                        // add the levenskracht of the carnivoor with the carnivoor
                        dier.Levenskracht += this.Levenskracht;
                        // remove the current carnivoor
                        this.Delete();
                        eoSpeelveld.Terrarium[PosX, PosY] = null;   // todo: move this to the delete() of the carnivoor
                    }
                    else
                    {
                        this.Eet(eoSpeelveld, dier);
                    }
                }
            }
        }
예제 #4
0
        public void Stap(int Xpos, int Ypos, Speelveld eoSpeelveld)
        {
            eoSpeelveld.Terrarium[this.PosX, this.PosY] = null;

            this.PosX += Xpos;
            this.PosY += Ypos;

            eoSpeelveld.Terrarium[this.PosX, this.PosY] = this;
        }
예제 #5
0
 public override void Eet(Speelveld eoSpeelveld, Dier dier)
 {
     if (this.TotAantStappen <= 0)
     {
         // test if the animal at the right position is a plant
         if (PosY + 1 < eoSpeelveld.GrootteY &&
             eoSpeelveld.Terrarium[PosX, PosY + 1] != null &&
             eoSpeelveld.Terrarium[PosX, PosY + 1].GetType() == typeof(Plant))
         {
             // add the levenskracht of the herbivoor with the carnivoor
             this.Levenskracht++;
             // remove the plant
             ((Plant)eoSpeelveld.Terrarium[PosX, PosY + 1]).Delete();
             eoSpeelveld.Terrarium[PosX, PosY + 1] = null;   // todo: move this to the delete() of the herbivoor
             Stap(0, 1, eoSpeelveld);
             this.TotAantStappen++;
         }
     }
 }
예제 #6
0
 public override void Eet(Speelveld eoSpeelveld, Dier dier)
 {
     if (this.TotAantStappen <= 0)
     {
         if (dier != null)
         {
             if (dier.GetType() == typeof(Carnivoor))
             {
                 // add the levenskracht of the herbivoor with the carnivoor
                 this.Levenskracht += dier.Levenskracht;
                 // remove the herbivoor
                 dier.Delete();
                 dier = null;   // todo: move this to the delete() of the carnivoor
                 Stap(0, 1, eoSpeelveld);
                 this.TotAantStappen++;
             }
         }
     }
 }
예제 #7
0
        public Herbivoor PlantVoort(Speelveld eoSpeelveld, List <Herbivoor> eaHerbivoren)
        {
            if (this.TotAantStappen <= 0)
            {
                Random rnd  = new Random();
                int    flip = rnd.Next(1, 10);

                // test if the animal at the right position is a herbivoor
                if (PosY + 1 < eoSpeelveld.GrootteY &&
                    eoSpeelveld.Terrarium[PosX, PosY + 1] != null &&
                    eoSpeelveld.Terrarium[PosX, PosY + 1].GetType() == typeof(Herbivoor))
                {
                    if (flip == 1 || true)  // tricky!!!!
                    {
                        List <Herbivoor> laHerbivoren = CreateHerbivoren(1);
                        this.TotAantStappen++;
                        return(laHerbivoren[0]);
                    }
                }
            }
            return(null);
        }
예제 #8
0
파일: Program.cs 프로젝트: scrumvdabgenk/T1
        static void DoTest3()
        {
            Console.Clear();

            // test 1
            Speelveld speelveld = new Speelveld(3, 3, 0);

            // . . .
            // . . .
            // . . .

            List <Plant> planten = Plant.CreatePlanten(1);

            planten[0].PosX = 2;
            planten[0].PosY = 1;
            speelveld.AddPlantenToSpeelveld(planten, true);

            // . . .
            // . . .
            // P H .

            List <Herbivoor> herbivoren = Herbivoor.CreateHerbivoren(4);

            herbivoren[0].PosX = 0;
            herbivoren[0].PosY = 1;
            //herbivoren[1].PosX = 0;
            //herbivoren[1].PosY = 2;
            herbivoren[1].PosX = 1;
            herbivoren[1].PosY = 0;
            herbivoren[2].PosX = 1;
            herbivoren[2].PosY = 2;
            herbivoren[3].PosX = 2;
            herbivoren[3].PosY = 1;
            speelveld.AddHerbivorenToSpeelveld(herbivoren, true);

            // . H .
            // H . H
            // P H .

            List <Carnivoor> carnivoren = Carnivoor.CreateCarnivoren(3);

            carnivoren[0].PosX = 0;
            carnivoren[0].PosY = 0;
            carnivoren[1].PosX = 1;
            carnivoren[1].PosY = 1;
            carnivoren[2].PosX = 2;
            carnivoren[2].PosY = 2;
            speelveld.AddCarnivorenToSpeelveld(carnivoren, true);

            // C H .
            // H C H
            // H P C

            List <Mens> mensen = Mens.CreateMensen(1);

            mensen[0].PosX = 0;
            mensen[0].PosY = 2;
            speelveld.AddMensenToSpeelveld(mensen, true);

            speelveld.DoActionsOf1Day(mensen, carnivoren, herbivoren, planten, 10);

            Console.WriteLine("Press a key");
            Console.ReadLine();
        }
예제 #9
0
파일: Program.cs 프로젝트: scrumvdabgenk/T1
        static void DoTest1()
        {
            Console.Clear();

            // test 1
            Speelveld speelveld = new Speelveld(3, 3, 0);

            // . . .
            // . . .
            // . . .

            List <Plant> planten = Plant.CreatePlanten(2);

            planten[0].PosX = 1;
            planten[0].PosY = 2;
            planten[1].PosX = 2;
            planten[1].PosY = 1;
            speelveld.AddPlantenToSpeelveld(planten, true);

            // . . .
            // . . P
            // . P .

            List <Herbivoor> herbivoren = Herbivoor.CreateHerbivoren(2);

            herbivoren[0].PosX = 0;
            herbivoren[0].PosY = 1;
            herbivoren[1].PosX = 2;
            herbivoren[1].PosY = 0;
            speelveld.AddHerbivorenToSpeelveld(herbivoren, true);

            // . H .
            // . . P
            // H P .

            List <Carnivoor> carnivoren = Carnivoor.CreateCarnivoren(2);

            carnivoren[0].PosX         = 0;
            carnivoren[0].PosY         = 0;
            carnivoren[1].Levenskracht = 10;
            carnivoren[1].PosX         = 1;
            carnivoren[1].PosY         = 1;
            carnivoren[1].Levenskracht = 10;
            //carnivoren[1].PosX = 1;
            //carnivoren[1].PosY = 0;
            //carnivoren[1].Levenskracht = 10;
            speelveld.AddCarnivorenToSpeelveld(carnivoren, true);

            // C H .
            // . C P
            // H P .

            List <Mens> mensen = Mens.CreateMensen(2);

            mensen[0].PosX         = 1;
            mensen[0].PosY         = 0;
            mensen[0].Levenskracht = 10;
            mensen[1].PosX         = 1;
            mensen[1].PosY         = 1;
            mensen[1].Levenskracht = 15;
            speelveld.AddMensenToSpeelveld(mensen, true);

            // C H .
            // M C P
            // H P M

            speelveld.DoActionsOf1Day(mensen, carnivoren, herbivoren, planten, 10);

            Console.WriteLine("Press a key");
            Console.ReadLine();
        }
예제 #10
0
        /// <summary>
        /// Mag enkel bewegen indien de bestemming "." is.
        /// </summary>
        /// <param name="Beweeg"></param>
        public void Beweeg(Speelveld eoSpeelveld)
        {
            if (this.TotAantStappen <= 0)
            {
                Random rnd = new Random();
                for (int teller = 1; teller <= 100; teller++)
                {
                    int stap = rnd.Next(1, 5);
                    int x    = 0;
                    int y    = 0;

                    //if (PosX + 1 >= eoSpeelveld.GrootteX || eoSpeelveld.Terrarium[PosX + 1, PosY] == null)
                    {
                        switch (stap)
                        {
                        case 1:
                            x = 1;
                            y = 0;
                            if (PosX + 1 > eoSpeelveld.GrootteX)
                            {
                                x = 0;
                            }
                            break;

                        case 2:
                            x = 0;
                            y = 1;
                            if (PosY + 1 > eoSpeelveld.GrootteY)
                            {
                                y = 0;
                            }
                            break;

                        case 3:
                            x = -1;
                            y = 0;
                            if (PosX - 1 < 0)
                            {
                                x = 0;
                            }
                            break;

                        case 4:
                            x = 0;
                            y = -1;
                            if (PosY - 1 < 0)
                            {
                                y = 0;
                            }
                            break;

                        default:
                            break;
                        }
                        if (PosX + x < eoSpeelveld.GrootteX && PosY + y < eoSpeelveld.GrootteY)
                        {
                            if (eoSpeelveld.Terrarium[PosX + x, PosY + y] == null || eoSpeelveld.Terrarium[PosX + x, PosY + y].GetType() == typeof(Plant))
                            {
                                Stap(x, y, eoSpeelveld);
                                break; //ga uit de loop
                            }
                        }
                    }
                }
            }
        }
예제 #11
0
 public virtual void Eet(Speelveld eoSpeelveld, Dier dier)
 {
 }
예제 #12
0
        public void Earthquake(ref List <Mens> eoMensen, ref List <Carnivoor> eoCarnivoren, ref List <Herbivoor> eoHerbivoren, ref List <Plant> eoPlanten, Speelveld eoSpeelveld)
        {
            Random rnd = new Random();

            int extremeX     = eoSpeelveld.GrootteX;
            int extremeY     = eoSpeelveld.GrootteY;
            int centrepointX = rnd.Next(0, extremeX);
            int centrepointY = rnd.Next(0, extremeY);

            int grootteBeving = (((extremeX * extremeY) / (extremeX + extremeY)) / 2);

            int diagonaalBeving = (grootteBeving * 2) + 1; // Dient altijd oneven te zijn;

            int bevingMinX = 0 - ((diagonaalBeving - 1) / 2);
            int bevingMaxX = ((diagonaalBeving - 1) / 2);
            int bevingMinY = bevingMinX;
            int bevingMaxY = bevingMaxX;



            for (int i = bevingMinX; i <= bevingMaxX; i++)
            {
                for (int j = bevingMinY; j <= bevingMaxY; j++)
                {
                    if ((centrepointY + j < extremeY - 1) &&
                        (centrepointX + i < extremeX - 1) &&
                        (centrepointY + j >= 0) &&
                        (centrepointX + i >= 0))
                    {
                        if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j] != null)
                        {
                            if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].GetType() == typeof(Carnivoor))
                            {
                                ((Carnivoor)eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j]).Beweeg(eoSpeelveld);
                                //this.RemoveDeletedCarnivoren(ref eoCarnivoren);
                            }
                            else if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].GetType() == typeof(Herbivoor))
                            {
                                ((Herbivoor)eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j]).Beweeg(eoSpeelveld);
                            }
                            else if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].GetType() == typeof(Mens))
                            {
                                ((Mens)eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j]).Beweeg(eoSpeelveld);
                            }
                            else if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].GetType() == typeof(Plant))
                            {
                                eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].Delete();
                            }
                            this.Terrarium[centrepointX + i, centrepointY + j] = null;
                        }
                    }
                }
            }
            this.RemoveDeletedPlanten(ref eoPlanten);
        }
예제 #13
0
        public void Volcano(ref List <Mens> eoMensen, ref List <Carnivoor> eoCarnivoren, ref List <Herbivoor> eoHerbivoren, ref List <Plant> eoPlanten, Speelveld eoSpeelveld)
        {
            Random rnd = new Random();

            int extremeX     = eoSpeelveld.GrootteX;
            int extremeY     = eoSpeelveld.GrootteY;
            int centrepointX = rnd.Next(0, extremeX);
            int centrepointY = rnd.Next(0, extremeY);

            int grootteUitb = (((extremeX * extremeY) / (extremeX + extremeY)) / 2);

            int diagonaalUitbarsting = (grootteUitb * 2) + 1; // Dient altijd oneven te zijn;

            int vulkaanMinX = 0 - ((diagonaalUitbarsting - 1) / 2);
            int vulkaanMaxX = ((diagonaalUitbarsting - 1) / 2);
            int vulkaanMinY = vulkaanMinX;
            int vulkaanMaxY = vulkaanMaxX;



            for (int i = vulkaanMinX; i <= vulkaanMaxX; i++)
            {
                for (int j = vulkaanMinY; j <= vulkaanMaxY; j++)
                {
                    if ((centrepointY + j < extremeY - 1) &&
                        (centrepointX + i < extremeX - 1) &&
                        (centrepointY + j >= 0) &&
                        (centrepointX + i >= 0))
                    {
                        if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j] != null)
                        {
                            if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].GetType() == typeof(Carnivoor))
                            {
                                eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].Delete();
                            }
                            if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].GetType() == typeof(Herbivoor))
                            {
                                eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].Delete();
                            }
                            if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].GetType() == typeof(Mens))
                            {
                                eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].Delete();
                            }
                            if (eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].GetType() == typeof(Plant))
                            {
                                eoSpeelveld.Terrarium[centrepointX + i, centrepointY + j].Delete();
                            }
                            this.Terrarium[centrepointX + i, centrepointY + j] = null;
                        }
                    }
                }
            }
            this.RemoveDeletedCarnivoren(ref eoCarnivoren);
            this.RemoveDeletedHerbivoren(ref eoHerbivoren);
            this.RemoveDeletedMensen(ref eoMensen);
            this.RemoveDeletedPlanten(ref eoPlanten);
        }