private bool GenerujNowaLinie() { List <Stacja> petle = Model.GetPetle(); // Losowanie pętli startowej. Line.Add(petle[Random.Next(petle.Count)]); int i = 0; while (i == 0 || !((Stacja)Line[i]).IsPetla) { // Losowanie stacji. List <Stacja> sasiednieElementy = ((Stacja)Line[i]).GetSasiednieStacje(); Stacja wylosowanaStacja = sasiednieElementy[Random.Next(sasiednieElementy.Count)]; int loopGuard = 0; while (Line.Contains(wylosowanaStacja)) { loopGuard++; if (loopGuard > 5) { Line = new List <ElementModelu>(); return(false); } wylosowanaStacja = sasiednieElementy[Random.Next(sasiednieElementy.Count)]; } Krawedz wylosowanaKrawedz = wylosowanaStacja.GetIncydentneKrawedzie() .Where(x => x.Stacja1.Id == Line[i].Id || x.Stacja2.Id == Line[i].Id).First(); Line.Add(wylosowanaKrawedz); Line.Add(wylosowanaStacja); i = i + 2; } return(true); }
/// <summary> /// Dodaje krawędź do stacji. /// </summary> /// <param name="kr"> Dodawana krawędź.</param> public void AddKrawedz(Krawedz kr) { IncydentneKrawedzie.Add(kr); }
public KrawedzSieci(List <int> idLinii, Krawedz k) { this.IdLinii = idLinii; this.Krawedz = k; }