示例#1
0
        /// <summary>
        /// Vэstavba zбstavky pre cestnй vozidlб
        /// </summary>
        /// <param name="upresnenieCinnosti">ktorб z nich</param>
        public void PostavZastavku(int upresnenieCinnosti)
        {
            Spolocnost spol = Hra.DajInstanciu().Spolocnost;
            try 
            {
                Zastavka zast;

                if (aZastavane != null)
                {
                    Cesta c = (Cesta)aZastavane;
                    if (upresnenieCinnosti == (int)SmerZast.horizontalny && c.Orientacia == SmerCesty.vodorovne)
                    {
                        zast = new Zastavka(aPoloha, SmerZast.horizontalny);
                    }
                    else
                    {
                        zast = new Zastavka(aPoloha, SmerZast.vertikalny);
                    }
                    if (spol.OverVydavok(-zast.Cena) && OverOkolieStaniceZoskupenia(zast, 1, 1))
                    {
                        aZastavane = zast;
                        Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka();
                        spol.UpravFinancie(-zast.Cena);
                    }
                }
            }catch (InvalidCastException e)
            {
                Sprava.Info("Nie je mozne postavit zastavku");
            }
           
        }
示例#2
0
        public void PostavStanicu(int upresnenieCinnosti)
        {
            Spolocnost spol = Hra.DajInstanciu().Spolocnost;
            try
            {
                ZeleznicnaStanica zelSt;
                if (aZastavane != null)
                {
                    Zeleznica z = (Zeleznica)aZastavane;
                    if (upresnenieCinnosti == (int)SmerZast.horizontalny && z.Orientacia == SmerInf.horizontalny)
                    {
                        zelSt = new ZeleznicnaStanica(aPoloha, SmerZast.horizontalny);
                    }
                    else
                    {
                        zelSt = new ZeleznicnaStanica(aPoloha, SmerZast.vertikalny);
                    }
                    if (spol.OverVydavok(-zelSt.Cena) && OverOkolieStaniceZoskupenia(zelSt, 1, 1))
                    {
                        aZastavane = zelSt;
                        Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka();
                        spol.UpravFinancie(-zelSt.Cena);
                    }
                }
                else
                {
                    Sprava.Info("Nie je mozne postavit stanicu");
                }
            }
            catch (InvalidCastException e)
            {
                Sprava.Info("Nie je mozne postavit stanicu");
            }

        }
示例#3
0
        /// <summary>
        /// Vэstavba doku
        /// </summary>
        /// <param name="paSmer">jeho smer</param>
        public void PostavDok(int paSmer)
        {
            Policko[,] matica = Hra.DajInstanciu().DajHernuPlochu().DajMaticu();
            Dok dk = null;
            Spolocnost spol = Hra.DajInstanciu().Spolocnost;
            if (MozemStavat())
            {
                switch (paSmer)
                {
                    case (int)SmerDoku.dole:
                        if (!matica[aPoloha.Riadok + 1, aPoloha.Stlpec].aPevnina && matica[aPoloha.Riadok + 1, aPoloha.Stlpec].aZastavane == null)
                        {
                            dk = new Dok(aPoloha, SmerDoku.dole);
                        }
                        break;

                    case (int)SmerDoku.hore:
                        if (!matica[aPoloha.Riadok - 1, aPoloha.Stlpec].aPevnina && matica[aPoloha.Riadok - 1, aPoloha.Stlpec].aZastavane == null)
                        {
                            dk = new Dok(aPoloha, SmerDoku.hore);
                        }
                        break;

                    case (int)SmerDoku.vpravo:
                        if (!matica[aPoloha.Riadok, aPoloha.Stlpec + 1].aPevnina && matica[aPoloha.Riadok, aPoloha.Stlpec + 1].aZastavane == null)
                        {
                            dk = new Dok(aPoloha, SmerDoku.vpravo);
                        }
                        break;

                    case (int)SmerDoku.vlavo:
                        if (!matica[aPoloha.Riadok, aPoloha.Stlpec - 1].aPevnina && matica[aPoloha.Riadok, aPoloha.Stlpec - 1].aZastavane == null)
                        {
                            dk = new Dok(aPoloha, SmerDoku.vlavo);
                        }
                        break;
                }
                if ( dk != null && spol.OverVydavok(-dk.Cena) && OverOkolieStaniceZoskupenia(dk, 1, 1))
                {
                    aZastavane = dk;
                    spol.UpravFinancie(-dk.Cena);
                }
                else
                {
                    Sprava.Info("Nie je moЮnб vэstavba doku!");
                }
            }
            else
            {
                Sprava.Info("Nie je moЮnб vэstavba doku!");
            }
            
        }
示例#4
0
        /// <summary>
        /// Vэstavba letiska
        /// </summary>
        public void PostavLetisko()
        {
            Hra hra = Hra.DajInstanciu();
            Policko[,] matica = hra.DajHernuPlochu().DajMaticu();
            bool mozemStavat = true;

            Letisko letisko = new Letisko(Poloha);

            for (int riadok = letisko.Poloha.Riadok; riadok < letisko.Poloha.Riadok + letisko.PocetRiadkov; riadok++)
            {
                for (int stlpec = letisko.Poloha.Stlpec; stlpec < letisko.Poloha.Stlpec + letisko.PocetStlpcov; stlpec++)
                {
                    if (riadok >= HernaPlocha.PocetRiadkov || stlpec >= HernaPlocha.PocetStlpcov || !matica[riadok, stlpec].MozemStavat())
                    {
                        mozemStavat = false;
                        break;
                    }
                }
            }

            Spolocnost spol = Hra.DajInstanciu().Spolocnost;
            if (mozemStavat && spol.OverVydavok(-letisko.Cena) && OverOkolieStaniceZoskupenia(letisko, letisko.PocetRiadkov, letisko.PocetStlpcov))
            {
                for (int riadok = letisko.Poloha.Riadok; riadok < letisko.Poloha.Riadok + letisko.PocetRiadkov; riadok++)
                {
                    for (int stlpec = letisko.Poloha.Stlpec; stlpec < letisko.Poloha.Stlpec + letisko.PocetStlpcov; stlpec++)
                    {
                        var hladanePolicko = matica[riadok, stlpec];
                        hladanePolicko.Zburaj(false);
                        hladanePolicko.Zastavane = letisko;
                    }
                }
                spol.UpravFinancie(-letisko.Cena);
            }
            else
            {
                Sprava.Info("Nie je moЮnй postaviЭ letisko");
            }
        }