示例#1
0
        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);
        }
示例#2
0
 /// <summary>
 ///     Dodaje krawędź do stacji.
 /// </summary>
 /// <param name="kr"> Dodawana krawędź.</param>
 public void AddKrawedz(Krawedz kr)
 {
     IncydentneKrawedzie.Add(kr);
 }
示例#3
0
 public KrawedzSieci(List <int> idLinii, Krawedz k)
 {
     this.IdLinii = idLinii;
     this.Krawedz = k;
 }