Exemplo n.º 1
0
 //Method dat als er rechts van een carnivoor nog een carnivoor staat dat de carnivoor met de grootste levenkracht wint en de andere opeet
 public static void CarnivoorVecht(List <List <IOrganismen> > Speelveld)
 {
     foreach (var list in Speelveld)
     {
         for (var element = 0; element < Speelveld.Count(); element++)
         {
             if (list[element] != list[5])
             {
                 if (list[element].GetType() == typeof(Carnivoor) && list[element + 1].GetType() == typeof(Carnivoor))
                 {
                     if (list[element].LevensKracht > list[element + 1].LevensKracht)
                     {
                         list[element].LevensKracht += list[element + 1].LevensKracht;
                         list[element + 1]           = new LeegOrganisme();
                     }
                     else if (list[element + 1].LevensKracht > list[element].LevensKracht)
                     {
                         list[element + 1].LevensKracht += list[element].LevensKracht;
                         list[element] = new LeegOrganisme();
                     }
                     else
                     {
                         //Er wijzigt niets!
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 2
0
 //method als er rechts van een herbivoor een plant staat wordt deze opgegeten
 public static void HerbivoorEet(List <List <IOrganismen> > Speelveld)
 {
     foreach (var list in Speelveld)
     {
         for (var element = 0; element < Speelveld.Count(); element++)
         {
             if (list[element] != list[5])
             {
                 if (list[element].GetType() == typeof(Herbivoor) && list[element + 1].GetType() == typeof(Plant))
                 {
                     list[element + 1] = new LeegOrganisme();
                     ++list[element].LevensKracht;
                 }
             }
         }
     }
 }
Exemplo n.º 3
0
        //Method als er rechts een lege plaats is van een herbivoor zet deze (indien mogelijk "Geen andere organismen of buiten het speelveld) willekurig een stap omhoog, omlaag, rechts of links
        public static void HerbivoorPosRechtsLeeg(List <List <IOrganismen> > Speelveld, Random r)
        {
            var previousList = Speelveld[0];
            var nextList     = Speelveld[0];

            int intStap = 0;
            int x       = 0;

            foreach (var list in Speelveld)
            {
                if (list != Speelveld[0])
                {
                    previousList = Speelveld[x - 1];
                }

                if (list != Speelveld[5])
                {
                    nextList = Speelveld[x + 1];
                }
                // x Wordt gebruikt om de index van het speelveld te bepalen
                x++;


                for (var element = 0; element < Speelveld.Count(); element++)
                {
                    if (list[element] != list[5])
                    {
                        if (list[element].GetType() == typeof(Herbivoor) && list[element + 1].GetType() == typeof(LeegOrganisme))
                        {
                            string[] Richtingen = new string[4];
                            Richtingen[0] = "Rechts";
                            Richtingen[1] = "leeg";
                            Richtingen[2] = "leeg";
                            Richtingen[3] = "leeg";


                            //Teller die bijhoudt in hoeveel richtingen er kan bewogen worden
                            int possibleDirectionsNum = 1;

                            //Console.WriteLine("Rechts leeg");

                            //check range waarin de herbivoor zich kan voortbewegen

                            //Controleer of het te checken item niet het als eerste in de lijst staat
                            if (list[element] != list[0])
                            {
                                //Check of links leeg is
                                if (list[element - 1].GetType() == typeof(LeegOrganisme))
                                {
                                    //Console.WriteLine("Links leeg");
                                    Richtingen[1] = "Links";
                                }
                            }

                            //Check of boven leeg is
                            if (Speelveld[0] != list)
                            {
                                if (previousList[element].GetType() == typeof(LeegOrganisme))
                                {
                                    //Console.WriteLine("Boven leeg");
                                    Richtingen[2] = "Boven";
                                }
                            }

                            //Check of onder leeg is
                            if (Speelveld[5] != list)
                            {
                                if (nextList[element].GetType() == typeof(LeegOrganisme))
                                {
                                    //Console.WriteLine("Onder leeg");
                                    Richtingen[3] = "Onder";
                                }
                            }

                            string richting = "leeg";
                            while (richting == "leeg")
                            {
                                richting = Richtingen[new Random().Next(0, Richtingen.Length - 1)];
                                //Console.WriteLine("de random richting is:{0}", richting);
                            }


                            if (richting == "Rechts")
                            {
                                list[element + 1] = list[element];
                                list[element]     = new LeegOrganisme();
                            }
                            if (richting == "Links")
                            {
                                list[element - 1] = list[element];
                                list[element]     = new LeegOrganisme();
                            }
                            if (richting == "Boven")
                            {
                                previousList[element] = list[element];
                                list[element]         = new LeegOrganisme();
                            }
                            if (richting == "Onder")
                            {
                                nextList[element] = list[element];
                                list[element]     = new LeegOrganisme();
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 4
0
        static void Main(string[] args)
        {
            //Program vars
            bool          wrongInput        = true;
            string        input             = "";
            bool          playing           = true;
            bool          generateSpeelVeld = true;
            Random        r = new Random();
            LeegOrganisme leegOrganisme1 = new LeegOrganisme(); //Laten staan wordt gebruikt bij het opvullen van het speelveld

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Voor 1'STE ACTIE VAN DE SPELER
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

            //Initialiseren van het speelveld
            var Speelveld = new List <List <IOrganismen> >();

            for (int i = 0; i < 6; ++i)
            {
                var l = new List <IOrganismen>();
                Speelveld.Add(l);
            }

            //Willekeurig opvullen van het speelveld met alle organismen
            foreach (var list in Speelveld)
            {
                for (var i = 0; i < Speelveld.Count(); i++)
                {
                    int soortInt = r.Next(15);//Neemt een willekeurig getal 0 - 2 gebruikt in methode RandomSoort de .Random method mag steeds maar een maal geinitiliaseerd worden per variable in je programma dus nooit in een loop zetten

                    if (soortInt < 3)
                    {
                        list.Add(RandomSoort(soortInt));//Geef het willekeurig getal door aan methode RandomSoort en add een van de 3 soorten aan de lijst
                    }
                    else
                    {
                        list.Add(leegOrganisme1);//Add een leeg organisme (.) toe aan de lijst
                    }
                }
                Console.WriteLine();
            }

            while (playing == true)
            {
                while (generateSpeelVeld == true)
                {
                    Console.WriteLine("===========================================================");
                    Console.WriteLine("Het speelveld");
                    Console.WriteLine("===========================================================");

                    //Toon het speelveld
                    foreach (var list in Speelveld)
                    {
                        foreach (var element in list)
                        {
                            Console.Write(element.ToString());
                        }
                        Console.WriteLine();
                    }
                    //Zorgt ervoor dat het 1ste speelveld niet iedere maal getoond wordt bij een nieuwe dag
                    generateSpeelVeld = false;

                    //Validation op de input van de user
                    while (wrongInput == true)
                    {
                        Console.WriteLine("=========================================================== ");
                        Console.WriteLine("Druk op 1 om de volgende dag te zien");
                        Console.WriteLine("Druk op 2 om het spel te stoppen");
                        input = Console.ReadLine();
                        if (input != "1" && input != "2")
                        {
                            Console.WriteLine("=========================================================== ");
                            Console.WriteLine("Gelieve een correcte keuze te maken");
                        }
                        else
                        {
                            wrongInput = false;
                        }
                    }
                }

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////NA 1'STE ACTIE VAN DE SPELER
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //Alle code voor de veranderingen aan de matrix te genereren komen hierin
                if (input == "1")
                {
                    Console.WriteLine("===========================================================");
                    Console.WriteLine("Het speelveld vandaag voor de acties van de Organismen");
                    Console.WriteLine("===========================================================");

                    //Add random plants voor een nieuwe dag
                    Plant.AddRandomPlants(Speelveld, r);



                    foreach (var list in Speelveld)
                    {
                        foreach (var element in list)
                        {
                            Console.Write(element.ToString());
                        }
                        Console.WriteLine();
                    }
                    //////////////////////////////////////////////////////////////////////////////////////////
                    //Acties van de organismen
                    //////////////////////////////////////////////////////////////////////////////////////////
                    Herbivoor.HerbivoorPosRechtsLeeg(Speelveld, r);
                    Carnivoor.CarnivoorPosRechtsLeeg(Speelveld, r);
                    Herbivoor.HerbivoorEet(Speelveld);
                    Herbivoor.HerbivoorVrijt(Speelveld);
                    Carnivoor.CarnivoorEet(Speelveld);
                    Carnivoor.CarnivoorVecht(Speelveld);


                    Console.WriteLine("===========================================================");
                    Console.WriteLine("Het speelveld van vandaag");
                    Console.WriteLine("===========================================================");

                    foreach (var list in Speelveld)
                    {
                        foreach (var element in list)
                        {
                            Console.Write(element.ToString());
                        }
                        Console.WriteLine();
                    }

                    Console.WriteLine("=========================================================== ");
                    Console.WriteLine("Druk op 1 om de volgende dag te zien");
                    Console.WriteLine("Druk op 2 om het spel te stoppen");
                    input = Console.ReadLine();
                }

                //Het spel stopt de playing while loop
                if (input == "2")
                {
                    playing = false;
                    Console.WriteLine("=========================================================== ");
                    Console.WriteLine("Bedankt om te spelen");
                }
                //Het spelt geeft een foutmelding
                if (input != "1" && input != "2")
                {
                    Console.WriteLine("=========================================================== ");
                    Console.WriteLine("Gelieve een correcte keuze te maken");
                    input = "1";
                }
            }
        }//Einde Main Method