Exemple #1
0
        /// <summary>
        /// Overenie okolia zoskupenia, rozhoduje иi pridaЭ stanicu uЮ ku existujъcemu zoskupenium
        /// alebo иi vytvori novй. 
        /// </summary>
        /// <param name="paStavana">stavanб stanica</param>
        /// <param name="paRozmerRiadkov">rozmer</param>
        /// <param name="paRozmerStlpcov">rozmer</param>
        /// <returns>vэsledok</returns>
        private bool OverOkolieStaniceZoskupenia(Stanica paStavana, int paRozmerRiadkov, int paRozmerStlpcov) {
            
            int zacRiad = aPoloha.Riadok - 1;
            int zacStlp = aPoloha.Stlpec - 1;
            
            int konRiad = aPoloha.Riadok + paRozmerRiadkov;
            int konStlp = aPoloha.Stlpec + paRozmerStlpcov;

            Hra hra = Hra.DajInstanciu();
            Policko[,] matica = hra.DajHernuPlochu().DajMaticu();

            ZoskupenieStanic zosk = null;
            int pocetNajdenachZosk = 0;

            for (int riadok = zacRiad; riadok <= konRiad; riadok++)
            {
                for (int stlpec = zacStlp; stlpec <= konStlp; stlpec++)
                {
                    Policko aktualne = matica[riadok, stlpec];
                    if(aktualne.Zastavane is Stanica)
                    {
                        if (zosk == null || !zosk.Equals((aktualne.Zastavane as Stanica).Zoskupenie))
                        {
                            zosk = (aktualne.Zastavane as Stanica).Zoskupenie;
                            pocetNajdenachZosk++;
                        }
                    }
                }
            }

            if (pocetNajdenachZosk == 0)
            {
                zosk = new ZoskupenieStanic();
                paStavana.Zoskupenie = zosk;
                zosk.PridajStanicu(paStavana);
                hra.Spolocnost.PridajStanicu(zosk);
                OverOkolieStaniceVyroba(paStavana, paRozmerRiadkov, paRozmerStlpcov);
                return true;
            }
            else if (pocetNajdenachZosk == 1)
            {
                paStavana.Zoskupenie = zosk;
                zosk.PridajStanicu(paStavana);
                hra.Spolocnost.PridajStanicu(zosk);
                OverOkolieStaniceVyroba(paStavana, paRozmerRiadkov, paRozmerStlpcov);
                return true;
            }

            return false;
        }
Exemple #2
0
        /// <summary>
        /// Inicializ�cia v�roby. Pre ka�d� druh, je vykonan� nie�o in�
        /// </summary>
        /// <param name="paDruh"></param>
        /// <param name="paPoloha"></param>
	    public Vyroba(DruhVyroby paDruh, Poloha paPoloha)
        {
            aDok = null;
            aPrilahlaStanica = null;
            Poloha = paPoloha;
            OdsadenieZLava = Poloha.Stlpec * Policko.cVelkostPolicka;
            OdsadenieZHora = Poloha.Riadok * Policko.cVelkostPolicka;
            aPrijma = new List<TypPrepravJednotky>();
            aProdukuje = new Dictionary<TypPrepravJednotky, int>();
            aDruhVyroby = paDruh;

            switch (paDruh)
            {
                case DruhVyroby.Elektraren:
                    NastavObrazok(Resources.el, "el");
                    aPrijma.Add(TypPrepravJednotky.uhlie);
                    break;

                case DruhVyroby.Farma:
                    NastavObrazok(Resources.farm, "farm");
                    aProdukuje.Add(TypPrepravJednotky.dobytok, cStrProd);
                    aProdukuje.Add(TypPrepravJednotky.obilie, cStrProd);
                    break;

                case DruhVyroby.Les:
                    NastavObrazok(Resources.forest, "forest");
                    aProdukuje.Add(TypPrepravJednotky.drevo, cStrProd);
                    break;

                case DruhVyroby.Oceliaren:
                    NastavObrazok(Resources.oceliaren, "oceliaren");
                    aPrijma.Add(TypPrepravJednotky.zeleznaRuda);
                    aProdukuje.Add(TypPrepravJednotky.ocel, 0);
                    break;

                case DruhVyroby.Pila:
                    NastavObrazok(Resources.sawmill, "sawmill");
                    aPrijma.Add(TypPrepravJednotky.drevo);
                    aProdukuje.Add(TypPrepravJednotky.tovar, 0);
                    break;

                case DruhVyroby.RopnaRafineria:
                    NastavObrazok(Resources.rafineria, "rafineria");
                    aPrijma.Add(TypPrepravJednotky.ropa);
                    aProdukuje.Add(TypPrepravJednotky.tovar, 0);
                    break;

                case DruhVyroby.Tovaren:
                    NastavObrazok(Resources.farctory, "farctory");
                    aPrijma.Add(TypPrepravJednotky.ocel);
                    aPrijma.Add(TypPrepravJednotky.dobytok);
                    aPrijma.Add(TypPrepravJednotky.obilie);
                    aProdukuje.Add(TypPrepravJednotky.tovar, 0);
                    break;

                case DruhVyroby.UholnaBana:
                    NastavObrazok(Resources.mineCoalM, "mineCoalM");
                    aProdukuje.Add(TypPrepravJednotky.uhlie, cStrProd);
                    break;

                case DruhVyroby.ZelezorudnaBana:
                    NastavObrazok(Resources.mineRudaM, "mineRudaM");
                    aProdukuje.Add(TypPrepravJednotky.zeleznaRuda, cStrProd);
                    break;

                case DruhVyroby.RopnaPlosina:
                    NastavObrazok(Resources.oilPlat, "oilPlat");
                    aProdukuje.Add(TypPrepravJednotky.ropa, cStrProd);

                    aDok = new Dok(Poloha);
                    Zoskupenie = new ZoskupenieStanic();
                    Zoskupenie.PridajStanicu(aDok);
                    Zoskupenie.PridajVyrobu(this);
                    aDok.Zoskupenie = Zoskupenie;
                    break;

                case DruhVyroby.Mesto:
                    NastavObrazok(Resources.city, "city");
                    aPrijma.Add(TypPrepravJednotky.tovar);
                    aPrijma.Add(TypPrepravJednotky.cestujuci);
                    aPrijma.Add(TypPrepravJednotky.posta);
                    aProdukuje.Add(TypPrepravJednotky.cestujuci, 0);
                    aProdukuje.Add(TypPrepravJednotky.posta, 0);
                    break;
            }
            this.ZmenProdukciu();
		}