Exemple #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);
        }
Exemple #2
0
        private static void WritePetle(Model m)
        {
            List <Stacja> petle = m.GetPetle();

            Console.WriteLine("\nPetle w modelu m:");
            foreach (Stacja pe in petle)
            {
                Console.WriteLine(pe);
            }
            Console.WriteLine();
        }