public Aap(string naam, Boom tijdelijkeBoom, int bosID) { TijdelijkeBoom = tijdelijkeBoom; ID = iDCounter; iDCounter++; Naam = naam; VorigeBomen = new Dictionary <int, Boom>(); this.bosID = bosID; }
public double AfstandNaarRandVanBos(Boom boomOmVanTeZoeken) { double afstandVanRand = (new List <double>() { MaxX - boomOmVanTeZoeken.X, MaxY - boomOmVanTeZoeken.Y, boomOmVanTeZoeken.X - MinX, boomOmVanTeZoeken.Y - MinY } ).Min(); return(afstandVanRand); }
private void MaakBomen(int aantalBomen) { Random random = new Random(); for (int i = 1; i <= aantalBomen; i++) { int x = random.Next(MaxX); int y = random.Next(MaxY); Boom toAdd = new Boom(x, y, i); if (Bomen.Contains(toAdd)) { i--; } else { Bomen.Add(toAdd); } } }
public KeyValuePair <double, Boom> VindDichtstbijzijndeBoom(Aap aapDieSpringt) { double kortsteAfstand = double.MaxValue; Boom kortsteBoom = null; foreach (var boom in Bomen) { double afstandTeChecken = Math.Abs(Boom.LengteTussenBomen(aapDieSpringt.TijdelijkeBoom, boom)); if (afstandTeChecken != 0) { if (!aapDieSpringt.VorigeBomen.Values.Contains(boom)) { if (afstandTeChecken < kortsteAfstand) { kortsteBoom = boom; kortsteAfstand = afstandTeChecken; } } } } KeyValuePair <double, Boom> toReturn = new KeyValuePair <double, Boom>(kortsteAfstand, kortsteBoom); return(toReturn); }
public static double LengteTussenBomen(Boom boom1, Boom boom2) { double toReturn = Math.Sqrt(Math.Pow(boom2.X - boom1.X, 2) + Math.Pow(boom2.Y - boom1.Y, 2)); return(toReturn); }