private void filledAnimalsBox_SelectedIndexChanged(object sender, EventArgs e) { Wagon foundWagon = wagonLogic.madeWagons.Single(wagon => wagon.getString() == filledAnimalsBox.Text); string message = ""; foreach (Animal animal in foundWagon.filledAnimals) { message += animal.getString() + "\n"; } MessageBox.Show("Animals: " + message, "Wagon: " + foundWagon.getString(), MessageBoxButtons.OK, MessageBoxIcon.Information); }
private void calcCarnivore() { for (int i = 0; i < Animals.Count; i++) { if (Animals[i].type == "vlees") { Wagon wagon = createNewWagon(); wagon.animals.Add(Animals[i]); wagon.punten = wagon.punten + Animals[i].punt; wagons.Add(wagon); } } deleteCarnivores(); calcHerbivore3(); }
public string TrainWagonCycleAdd(Animal animalrd) { int Nextwagon = 1; int CurrentWagon = 0; for (CurrentWagon = 0; CurrentWagon < Nextwagon; CurrentWagon++) { bool AnimalIsAdded = wagons[CurrentWagon].AnimalIsAdded(animalrd); if (AnimalIsAdded == false) { Nextwagon++; add = new Wagon(); wagons.Add(add); } } return(string.Format("Animal added to {0}", wagons[CurrentWagon - 1].ToString())); }
private bool wagonRules4(Wagon wagon, Animal CheckAnimal) { if (wagon.punten == 10 || wagon.punten + CheckAnimal.punt > 10) { return(false); } foreach (var wagonAnimal in wagon.animals) { if (wagonAnimal.type == "vlees" && wagonAnimal.grootte == "groot") { return(false); } else if (wagonAnimal.type == "vlees" && CheckAnimal.grootte == "klein") { return(false); } else if (CheckAnimal.grootte == "groot" && wagonAnimal.type == "vlees" && wagonAnimal.grootte == "middelmatig") { return(true); } else if (CheckAnimal.grootte == "groot" && wagonAnimal.type == "vlees" && wagonAnimal.grootte == "klein") { return(true); } else if (CheckAnimal.grootte == "middelmatig" && wagonAnimal.type == "vlees" && wagonAnimal.grootte == "klein") { return(true); } if (CheckAnimal.type == wagonAnimal.type) { return(true); } } return(false); }
public static List <Wagon> RunAlgoritme(List <Dier> dieren) { int wagonCounter = 1; List <Wagon> wagonLijstIncompleet = new List <Wagon>(); List <Wagon> wagonLijstCompleet = new List <Wagon>(); List <Dier> dierenTemp = new List <Dier>(); //Iedere carnivoor een wagon geven foreach (Dier dier in dieren) { if (dier.diet == Dier.Dieet.carnivoor) { Wagon wagon = new Wagon(wagonCounter++); switch (dier.size) { case Dier.Grote.groot: wagon.addDierAanWagon(dier); wagonLijstCompleet.Add(wagon); break; default: wagon.addDierAanWagon(dier); wagonLijstIncompleet.Add(wagon); break; } } else { dierenTemp.Add(dier); } } dieren.Clear(); foreach (Dier dier in dierenTemp) { dieren.Add(dier); } dierenTemp.Clear(); //Iedere middel carnivoor een grote herbivoor geven foreach (Dier dier in dieren) { if (dier.size == Dier.Grote.groot) { bool dierToegevoegd = false; foreach (Wagon wagon in wagonLijstIncompleet) { if (wagon.HuidigeGrote == 3) //is dit een wagon met een middel carnivoor? { wagon.addDierAanWagon(dier); wagonLijstCompleet.Add(wagon); wagonLijstIncompleet.Remove(wagon); dierToegevoegd = true; break; } } if (!dierToegevoegd) { dierenTemp.Add(dier); } } else { dierenTemp.Add(dier); } } dieren.Clear(); foreach (Dier dier in dierenTemp) { dieren.Add(dier); } dierenTemp.Clear(); //alle overige wagons met middel carnivoren naar de complete lijst zetten List <Wagon> wagonTemp = new List <Wagon>(); foreach (Wagon wagon in wagonLijstIncompleet) { if (wagon.HuidigeGrote == 3) { wagonLijstCompleet.Add(wagon); } else { wagonTemp.Add(wagon); } } wagonLijstIncompleet.Clear(); foreach (Wagon wagon in wagonTemp) { wagonLijstIncompleet.Add(wagon); } wagonTemp.Clear(); //iedere wagon met een kleine carnivoor opvullen met de overige grote herbivoren foreach (Dier dier in dieren) { if (dier.size == Dier.Grote.groot) { bool dierToegevoegd = false; foreach (Wagon wagon in wagonLijstIncompleet) { if (wagon.HuidigeGrote == 1) //is dit een wagon met alleen 1 kleine carnivoor? { wagon.addDierAanWagon(dier); dierToegevoegd = true; break; } } if (!dierToegevoegd) { dierenTemp.Add(dier); } } else { dierenTemp.Add(dier); } } dieren.Clear(); foreach (Dier dier in dierenTemp) { dieren.Add(dier); } dierenTemp.Clear(); //iedere wagon met een kleine carnivoor zo effiecent mogelijk opvullen foreach (Dier dier in dieren) { if (dier.size == Dier.Grote.middel) { bool dierToegevoegd = false; foreach (Wagon wagon in wagonLijstIncompleet) { if (wagon.HuidigeGrote <= 7) //kan er nog een middel herbivoor bij { wagon.addDierAanWagon(dier); wagonLijstCompleet.Add(wagon); wagonLijstIncompleet.Remove(wagon); dierToegevoegd = true; break; } } if (!dierToegevoegd) { dierenTemp.Add(dier); } } else { dierenTemp.Add(dier); } } dieren.Clear(); foreach (Dier dier in dierenTemp) { dieren.Add(dier); } dierenTemp.Clear(); // de lijst van dieren sorteren op grote, //dit is omdat er alleen nog maar herbivoren zijn en deze moeten zo efficient mogelijk geplaatst worden in wagons //en nu kan je de lijst van boven naar beneden doorlopen en dieren toevoegen tot er geen plek meer is dieren = sorteerDierenOpGrote(dieren); //overige herbivoren zo efficient opdelen over wagons foreach (Dier dier in dieren) { if (wagonLijstIncompleet.Count == 0) { wagonLijstIncompleet.Add(new Wagon(wagonCounter++)); } foreach (Wagon wagon in wagonLijstIncompleet) { if ((wagon.HuidigeGrote + (int)dier.size) <= 10) //is er plek voor een grote herbivoor? { wagon.addDierAanWagon(dier); break; } } } foreach (Wagon wagon in wagonLijstIncompleet) { wagonLijstCompleet.Add(wagon); } return(wagonLijstCompleet); }
private void listBox2_SelectedIndexChanged(object sender, EventArgs e) { Wagon selectedWagon = listBox2.SelectedItem as Wagon; listBox3.DataSource = selectedWagon.GetAllAnimals(); }
public Train() { add = new Wagon(); wagons = new List <Wagon>(); wagons.Add(add); }
public void AddWagon() { Wagon wagon = new Wagon(); wagonList.Add(wagon); }