//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! } } } } } }
//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; } } } } }
//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(); } } } } } }
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