Beispiel #1
0
        public GeneratorPolaczenPieszych(int rozmiarMapyX, int rozmiarMapyY, GeneratorPolaczenSamochodow generatorPolaczen, GeneratorPrzestrzeni generatorBudynkow)
        {
            GRANICA_DOLNA = rozmiarMapyY * 2 - 1;
            GRANICA_PRAWA = rozmiarMapyX * 2 - 1;

            WierzcholkiChodnikow = generatorBudynkow.WierzcholkiChodnikow;
            Chodniki             = generatorBudynkow.Chodniki;

            OdwzorujChodnikiZDrog(generatorPolaczen);
            LaczChodniki();
            RedukujPolaczenia();
            OznaczPunktyWejscia();

            PrzeszukiwanieDFS przeszukiwanieDFS = new PrzeszukiwanieDFS(WierzcholkiChodnikow.ConvertAll(o => (WierzcholekGrafu)o));

            if (!przeszukiwanieDFS.CzyGrafSpojny())
            {
                throw new Exception("Graf połączeń pieszych nie spójny");
            }
        }
        public GeneratorPolaczenSamochodow(int rozmiarMapyX, int rozmiarMapyY, int liczbaWejsc)
        {
            GRANICA_PRAWA    = this.rozmiarMapyX = rozmiarMapyX;
            GRANICA_DOLNA    = this.rozmiarMapyY = rozmiarMapyY;
            this.liczbaWejsc = liczbaWejsc;

            WylosujPunktyWejscia();
            GenerujPoloczeniaKonieczne();
            LaczSkrzyzowania();
            RedukujPolaczenia();
            GenerujPrzejsciaPieszych();
            ZamienDrogiNaWierzcholki();
            UstawObiektyWejscia();

            PrzeszukiwanieDFS przeszukiwanieDFS = new PrzeszukiwanieDFS(WierzcholkiDrog.ConvertAll(o => (WierzcholekGrafu)o));

            if (!przeszukiwanieDFS.CzyGrafSpojny())
            {
                throw new Exception("Graf połączeń drogowych nie spójny");
            }
        }