Ejemplo n.º 1
0
 /// <summary>
 /// Konvertovanie peviny na vodu, alebo naopak
 /// </summary>
 public void Konvertuj()
 {
     Spolocnost spol = Hra.DajInstanciu().Spolocnost;
     if(aPoloha.Riadok != 0 && aPoloha.Stlpec != 0 && aPoloha.Riadok != HernaPlocha.PocetRiadkov-1 && aPoloha.Stlpec != HernaPlocha.PocetStlpcov-1)
     {
         if (!aPevnina && aVyroba == null && aZastavane == null)
         {
             if (spol.UpravFinancie(-cVysusenia))
             {
                 aPevnina = true;
                 NastavObrazok(Resources.grass, "grass");
             }
         }
         else if (MozemStavat())
         {
             if (spol.UpravFinancie(-cZavodnenia))
             {
                 this.Zburaj(false);
                 aPevnina = false;
                 NastavObrazok(Resources.water, "water");
             }
         }
         else
         {
             Sprava.Info("Nie je moЮnй konvertovaЭ");
         }
     }
     else
     {
         Sprava.Info("Nie je moЮnй konvertovaЭ! \r\n " +
                     "Na okrajoch mapy je povinnб voda!");
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Vyhľadaá trasu na grafe
 /// </summary>
 /// <param name="paZ">vychodrí bod</param>
 /// <param name="paDo">koncový bod</param>
 /// <param name="paDruhVozidla">alé je to vozidlo</param>
 /// <returns></returns>
 public static List <Hrana> NajdiTrasu(Poloha paZ, Poloha paDo, DruhVozidla paDruhVozidla)
 {
     aHernaPlocha = Hra.DajInstanciu().DajHernuPlochu();
     aTrasa       = new List <Hrana>();
     aPolohaZ     = paZ;
     aZacVrch     = NajdiZaciatocnyVrchol();
     aKonVrch     = NajdiCielovyVrchol(paDo);
     if (aZacVrch == null || aKonVrch == null)
     {
         return(null);
     }
     if (aZacVrch == aKonVrch)
     {
         return(aTrasa);
     }
     aZacVrch.NajkratciaVzdialenost = 0;
     aAktVrch            = aZacVrch;
     aAktVrch.Docastnost = false;
     PrejdiVystupnuHviezdu();
     Backtracking();
     aHernaPlocha.PovodnyStavVrcholov();
     if (!aTrasa.Any())
     {
         return(null);
     }
     return(aTrasa);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Konštruktor inicializuje všetko potrebné
 /// </summary>
 /// <param name="paBocneMenu">trieda, ktorá spravuje bočné menu</param>
 public TlacitkaNaPloche(BocneMenu paBocneMenu)
 {
     aHra       = Hra.DajInstanciu();
     aKamera    = Kamera.DajInstanciu();
     aBocneMenu = paBocneMenu;
     aStav      = false;
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Ak sa v okolн stanice nachбdza nejakб eЪte nezaradenб vэroba, tak sa zaradн
        /// </summary>
        /// <param name="paStavana">stavanб stanica</param>
        /// <param name="paRozmerRiadkov">rozmer</param>
        /// <param name="paRozmerStlpcov">rozmer</param>
        private void OverOkolieStaniceVyroba(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 = paStavana.Zoskupenie;

            for (int riadok = zacRiad; riadok <= konRiad; riadok++)
            {
                for (int stlpec = zacStlp; stlpec <= konStlp; stlpec++)
                {
                    Policko aktualne = matica[riadok, stlpec];
                    if (aktualne.Vyroba != null)
                    {
                        if (aktualne.Vyroba.Zoskupenie == null)
                        {
                            aktualne.Vyroba.Zoskupenie = zosk;
                            zosk.PridajVyrobu(aktualne.Vyroba);
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
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");
            }

        }
Ejemplo n.º 6
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");
            }
           
        }
 /// <summary>
 /// Pridanie cieľa
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void aButtonProdajCiel_Click(object sender, EventArgs e)
 {
     SpravcaOkien.AktDopProst = this;
     OknoAplikacie.DajInstanciu().Activate();
     Hra.DajInstanciu().Spolocnost.UpravovanyDP = aDopravProst;
     OknoAplikacie.DajInstanciu().HorneMenu.VyberCielov();
     AktualizujZoznamCielov();
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Vyplatenie odmeny Zastavka prepravu
        /// </summary>
	    public void VydajOdnemu(Stanica paStanica)
	    {
            Spolocnost spol = Hra.DajInstanciu().Spolocnost;
	        aCiel = paStanica;
            int zaklPocetDni = aZdroj.Poloha.Vzdialenost(aCiel.Poloha)/5;
	        int skutPocetDni = Hra.DajInstanciu().Den - aZaciatocnyDen;
	        double koeficient = this.DajKoeficient(zaklPocetDni, skutPocetDni);
            spol.UpravFinancie((int)((double)koeficient * (int)Typ *zaklPocetDni));
	    }
Ejemplo n.º 9
0
 /// <summary>
 /// Vэstavba bуje
 /// </summary>
 public void PostavBoju() {
     Spolocnost spol = Hra.DajInstanciu().Spolocnost;
     if(!aPevnina && aZastavane == null && aVyroba == null){
         Boja boj = new Boja(aPoloha);
         if (spol.UpravFinancie(-boj.Cena)) 
         {
             aZastavane = boj;
         }
     }
 }
Ejemplo n.º 10
0
        /// <summary>
        /// Vybъranie obsahu polниky, je rozdiel, иi to volб hrби, alebo hra
        /// </summary>
        /// <param name="paVyvolalUzivatel">иi to volб hrби</param>
        public void Zburaj(bool paVyvolalUzivatel)
        {
            Spolocnost spol = Hra.DajInstanciu().Spolocnost;
            if (aVyroba == null && aZastavane != null)
            {
                if (spol.UpravFinancie(-aZastavane.NakladyNaZburanie))
                {
                    if (aZastavane is MiestoZastavenia)
                    {
                        if (!(aZastavane as MiestoZastavenia).MozemZburat)
                        {
                            Sprava.Info("Nie je moЮnй zbъraЭ miesto zastavenia! \r\n EЪte je zaradenй v zozneme cieЊov!");
                            return;
                        }
                    }

                    if (aZastavane is Stanica)
                    {
                        Policko[,] matica = Hra.DajInstanciu().DajHernuPlochu().DajMaticu();
                        if ((aZastavane as Stanica).Odstavene.Any())
                        {
                            Sprava.Info("Nie je moЮnй zbъraЭ stanicu! \r\n Nachбdzajъ sa tam dopravnй prostriedky!");
                            return;
                        }
                        (aZastavane as Stanica).Zburaj();
                        Infrastruktura zast = aZastavane;

                        for (int riadok = 0; riadok < HernaPlocha.PocetRiadkov; riadok++)
                        {
                            for (int stlpec = 0; stlpec < HernaPlocha.PocetStlpcov; stlpec++)
                            {
                                if (matica[riadok, stlpec].Zastavane != null &&
                                    matica[riadok, stlpec].Zastavane.Equals(zast))
                                {
                                    matica[riadok, stlpec].Zastavane = null;
                                }
                            }

                        }
                    }
                    if (Prostriedky())
                    {
                        Sprava.Info("Nie je moЮnй zbъraЭ obsah polниka! \r\n Nachбdzajъ sa tam dopravnй prostriedky!");
                        return;
                    }
                    aZastavane = null;
                    Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka();
                }
            }
            else
            {
                if (paVyvolalUzivatel) Sprava.Info("Nie je moЮnй zbъraЭ!");
            }
        }
 /// <summary>
 /// Aktualiácia informácií
 /// </summary>
 private void Aktualizuj()
 {
     aDoprProst = Hra.DajInstanciu().Spolocnost.DopravneProstriedky;
     foreach (var item in aDoprProst)
     {
         if (item.Druh == aDruhVozidla)
         {
             aListBoxZozDoPr.Items.Add(item);
         }
     }
 }
Ejemplo n.º 12
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!");
            }
            
        }
Ejemplo n.º 13
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;
        }
 /// <summary>
 /// Zmazanie v�etk�ch (aspo� d�fam)
 /// referenci� na objekt
 /// </summary>
 public void ZmazSa()
 {
     Spolocnost spol = Hra.DajInstanciu().Spolocnost;
     spol.UpravFinancie(aTyp.Cena / 2);
     spol.ZmazDP(this);
     Zastav();
     aJeVPohybe = false;
     aTyp = null;
     if (aOkno != null)
     {
         aOkno.Close();
         aOkno = null;
     }
 }
Ejemplo n.º 15
0
        /// <summary>
        /// Aktualizácia informácií
        /// </summary>
        private void Aktualizuj()
        {
            aZoznam             = Hra.DajInstanciu().Spolocnost.Stanice;
            aZoznamPrirodzenych = Hra.DajInstanciu().DajHernuPlochu().ZoznamPrirodzenychStanic;
            foreach (var toto in aZoznam)
            {
                aListBoxZoznamStanic.Items.Add(toto.ToString());
            }

            foreach (var toto in aZoznamPrirodzenych)
            {
                aListBoxZoznamStanic.Items.Add(toto.ToString());
            }
        }
 /// <summary>
 /// Nalo�enie jednej jednotky n�kladu
 /// </summary>
 /// <returns></returns>
 public bool Naloz()
 {
     Stanica navstivena = KonvertujMiestoNaStanicu(aCiele[aAktualnaPozicia]);
     if (aNaklad.Count >= aTyp.Kapacita || navstivena == null) return false;
     PrepravJednotka pr = navstivena.Zoskupenie.VydajJednotku(aTyp.TypNakladu);
     if (pr != null)
     {
         Console.WriteLine("nalozenie" + pr.ToString());
         pr.CasNalozenia = Hra.DajInstanciu().Den;
         pr.Zdroj = navstivena;
         aNaklad.Add(pr);
         return true;
     }
     return false;
 }
Ejemplo n.º 17
0
	    public override bool PostavStroj(int paPor)
	    {
            Spolocnost spol = Hra.DajInstanciu().Spolocnost;
            if (paPor >= 0 && paPor < aMozneStroje.Count)
            {
                Auto autoStavane = new Auto(aMozneStroje[paPor], SmerZast);
                if (spol.UpravFinancie(-autoStavane.Cena))
                {
                    DopravnyProstriedok dp = new DopravnyProstriedok(autoStavane);
                    spol.PridajDP(dp);
                    PridajOdstavene(dp);
                }
            }
            return false;
	    }
Ejemplo n.º 18
0
	    public override bool PostavStroj(int paPor)
	    {
            Spolocnost spol = Hra.DajInstanciu().Spolocnost;
            if (paPor >= 0 && paPor < aMozneStroje.Count)
	        {
                Lietadlo liet = new Lietadlo(aMozneStroje[paPor]);
                if (spol.UpravFinancie(-liet.Cena))
                {
                    DopravnyProstriedok dp = new DopravnyProstriedok(liet);
                    spol.PridajDP(dp);
                    PridajOdstavene(dp);
                }
	        }
	        return false;
	    }
Ejemplo n.º 19
0
        /// <summary>
        /// �al�ia z pohybov�ch funkci�
        /// </summary>
        /// <param name="paPoloha">poloha kam</param>
        /// <returns>�i sa podarilo</returns>
	    private bool Pohyb(Poloha paPoloha)
	    {
            if (!Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[paPoloha.Riadok, paPoloha.Stlpec].Pevnina)
	        {

                Poloha = paPoloha;
	            return true;
            }
            else if (Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[paPoloha.Riadok, paPoloha.Stlpec].Zastavane is Dok)
	        {
                Poloha = paPoloha;
                return true;
	        }
	        return false;
	    }
Ejemplo n.º 20
0
        /// <summary>
        /// Metóda, ktorá sa vykoná pri spustení časovcača
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void casovac_Tick(object sender, EventArgs e)
        {
            aHra = Hra.DajInstanciu();

            if (HernaPlocha.PocetStlpcov < 50)
            {
                aHra.Nacitaj();
                return;
            }

            aKamera = Kamera.DajInstanciu();

            aHra.Tik();
            Vykreslene.Tik();
            this.Refresh();
        }
Ejemplo n.º 21
0
        /// <summary>
        /// Vymazanie pripojenej stanice
        /// </summary>
        /// <param name="paStanica"></param>
        public void ZmazPripojenuStanicu(Stanica paStanica) 
        {
            aStanice.Remove(paStanica);

            if (aStanice.Count == 0)
            {
                foreach (Vyroba item in aObsluhovanePodniky)
                {
                    item.Zoskupenie = null;
                }
                Hra.DajInstanciu().Spolocnost.VymazZoskupenie(this);
            }
            else
            {
                this.AktualizujInfoProstriedky();
            }
        }
Ejemplo n.º 22
0
        /// <summary>
        /// Kontrola polνθok, kτli možnosti vytvori graf
        /// </summary>
        public void PrejdiPolicka()
        {
            ZmazGraf();

            for (int riadok = 0; riadok < PocetRiadkov; riadok++)
            {
                for (int stlpec = 0; stlpec < PocetStlpcov; stlpec++)
                {
                    this.VytvorGraf(riadok, stlpec);
                }
            }
            HranyVOpacnomSmere();
            foreach (var item in Hra.DajInstanciu().Spolocnost.DopravneProstriedky)
            {
                item.NajdiTrasu();
            }
        }
Ejemplo n.º 23
0
 /// <summary>
 /// vэstavby cersty
 /// </summary>
 /// <param name="paSmer">smer</param>
 public void PostavCestu(int paSmer) {
     Spolocnost spol = Hra.DajInstanciu().Spolocnost;
     if (paSmer > 0 && paSmer <= Enum.GetNames(typeof(SmerCesty)).Length)
     {
         if (this.MozemStavat())
         {
             this.Zburaj(false);
             Cesta cest = new Cesta((SmerCesty)paSmer, aPoloha);
             if(spol.UpravFinancie(-cest.Cena)){
                 aZastavane = cest;
                 Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka();
             }
         }
     }
     else 
     {
         Console.WriteLine("Nie je mozne stavat");
     }
 }
 /// <summary>
 /// Pohnutie sa
 /// </summary>
 public void Start()
 {
     if (aCiele.Count >= 2)
     {
         Hra.DajInstanciu().DajHernuPlochu().PrejdiPolicka();
         aTyp.Skryte = false;
         aJeVPohybe = true;
         NajdiTrasu();
         aTyp.Strateny = false;
         Stanica stan = Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[Poloha.Riadok, Poloha.Stlpec].Zastavane as Stanica;
         if (stan!= null)
         {
             stan.OdstranOdstavene(this);
         }
     }
     else
     {
         Sprava.Info("Dopravn� prostriedok nem� dostatok cielov!");
     }
 }
Ejemplo n.º 25
0
 public static void ZoznamVyroby(bool paJeMesto)
 {
     if (paJeMesto)
     {
         if (aMesta == null)
         {
             aMesta = new ZoznamVyrobyForm(Hra.DajInstanciu().ZoznamMiest);
         }
         aMesta.Show();
         aMesta.Activate();
     }
     else
     {
         if (aVyroba == null)
         {
             aVyroba = new ZoznamVyrobyForm(Hra.DajInstanciu().ZoznamVyroby);
         }
         aVyroba.Show();
         aVyroba.Activate();
     }
 }
Ejemplo n.º 26
0
 /// <summary>
 /// Vytváranie tlačítok
 /// </summary>
 /// <param name="paBocneMenu"></param>
 public HorneMenu(BocneMenu paBocneMenu)
 {
     aBocneMenu    = paBocneMenu;
     aHra          = Hra.DajInstanciu();
     aTlacitkaMenu = new List <Tlacitko>();
     aTlacitkaMenu.Add(new Tlacitko(4, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.pauza));
     aTlacitkaMenu.Add(new Tlacitko(38, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.start));
     aTlacitkaMenu.Add(new Tlacitko(72, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.nacitaj));
     aTlacitkaMenu.Add(new Tlacitko(106, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.uloz));
     aTlacitkaMenu.Add(new Tlacitko(140, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamMiest));
     aTlacitkaMenu.Add(new Tlacitko(174, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamStanic));
     aTlacitkaMenu.Add(new Tlacitko(208, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamVyroby));
     aTlacitkaMenu.Add(new Tlacitko(242, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamVlakov));
     aTlacitkaMenu.Add(new Tlacitko(276, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamVozidiel));
     aTlacitkaMenu.Add(new Tlacitko(310, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zoznamLodi));
     aTlacitkaMenu.Add(new Tlacitko(344, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.zozmanLietadiel));
     aTlacitkaMenu.Add(new Tlacitko(378, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.vystavbaZeleznic));
     aTlacitkaMenu.Add(new Tlacitko(412, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.vystavbaCiest));
     aTlacitkaMenu.Add(new Tlacitko(446, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.vystavbaVodnychCiest));
     aTlacitkaMenu.Add(new Tlacitko(480, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.vystavbaLetisk));
     aTlacitkaMenu.Add(new Tlacitko(514, 3, cRozmerPolozkyMenuX, cRozmerPolozkyMenuY, VykonavanaCinnost.upravaTerenu));
 }
Ejemplo n.º 27
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");
            }
        }
        /// <summary>
        /// Vykreslenie Obr�zku + pohyb
        /// </summary>
        /// <param name="paGafika"></param>
        public void DrawImage(Graphics paGafika)
        {
            bool mamHladatTrasu = true;
            bool najdenaTrasa = true;
            if (aTyp.Strateny)
            {
                aJeVPohybe = false;
                aTyp.DrawImage(paGafika);
                return;
            }

            if (aJeVPohybe)
            {
                if (aTyp.JeVCieli)
                {
                    najdenaTrasa = false;
                    if (aAktualnaPozicia != -1)
                    {
                        mamHladatTrasu = false;
                        if (!aNakladam)
                        {
                            if (!Vyloz())
                            {
                                aNakladam = true;
                            }
                        }
                        else if (aNakladam)
                        {
                            if (!Naloz())
                            {
                                aNakladam = false;
                                mamHladatTrasu = true;
                            }
                            
                        }
                        
                    }

                    
                    if (mamHladatTrasu)
                    {
                        if (aAktualnaPozicia < aCiele.Count - 1)
                        {
                            aAktualnaPozicia++;
                        }
                        else
                        {
                            aAktualnaPozicia = 0;
                        }
                        najdenaTrasa = aTyp.NajdiTrasu(aCiele[aAktualnaPozicia].Poloha);
                    }
                }
                if (najdenaTrasa)
                {
                    Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[Poloha.Riadok, Poloha.Stlpec].OdoberDopravnyProstriedok(this);
                    aTyp.VykonajPohyb();
                    Hra.DajInstanciu().DajHernuPlochu().DajMaticu()[Poloha.Riadok, Poloha.Stlpec].PridajDopravnyProstriedok(this);
                }
            }
            aTyp.DrawImage(paGafika);
        }
Ejemplo n.º 29
0
        /// <summary>
        /// Spracovanie kliknutia na plochu
        /// </summary>
        /// <param name="paE"></param>
        private void SpracujKliknutie(MouseEventArgs paE)
        {
            VykonavanaCinnost tl = VykonavanaCinnost.bezna;

            foreach (Tlacitko toto in aTlacitkaMenu)
            {
                if (toto.Kliknute(paE.X, paE.Y))
                {
                    Console.WriteLine(toto.ToString());
                    tl = toto.DajTyp();
                    break;
                }
            }

            RestartCinnosti();
            aBocneMenu.HlavnaCinnost = tl;
            switch (tl)
            {
            case VykonavanaCinnost.pauza:
                OknoAplikacie.DajInstanciu().Pauza();
                Sprava.Info("Hra prerušená");
                RestartCinnosti();
                break;

            case VykonavanaCinnost.start:
                OknoAplikacie.DajInstanciu().Start();
                Sprava.Info("Hra pokračuje");
                RestartCinnosti();
                break;

            case VykonavanaCinnost.vystavbaCiest:
                aBocneMenu.Obrazok       = Resources.MenuCesty;
                aBocneMenu.HlavnaCinnost = tl;
                aBocneMenu.Nadpis        = "Výstavba ciest";
                break;

            case VykonavanaCinnost.vystavbaZeleznic:
                aBocneMenu.Obrazok       = Resources.MenuZeleznice;
                aBocneMenu.HlavnaCinnost = tl;
                aBocneMenu.Nadpis        = "Výstavba železníc";
                break;

            case VykonavanaCinnost.upravaTerenu:
                aBocneMenu.Obrazok       = Resources.MenuTerenu;
                aBocneMenu.HlavnaCinnost = tl;
                aBocneMenu.Nadpis        = "Úprava terénu";
                break;

            case VykonavanaCinnost.vystavbaLetisk:
                aBocneMenu.HlavnaCinnost = tl;
                aBocneMenu.Nadpis        = "Výstavba letísk";
                break;

            case VykonavanaCinnost.vystavbaVodnychCiest:
                aBocneMenu.Nadpis        = "Výstavba vodných\nciest";
                aBocneMenu.Obrazok       = Resources.MenuVodnychStavieb;
                aBocneMenu.HlavnaCinnost = tl;
                break;

            case VykonavanaCinnost.zoznamMiest:
                SpravcaOkien.ZoznamVyroby(true);
                RestartCinnosti();
                break;

            case VykonavanaCinnost.zoznamVyroby:
                SpravcaOkien.ZoznamVyroby(false);
                RestartCinnosti();
                break;

            case VykonavanaCinnost.zoznamStanic:
                SpravcaOkien.ZoznamStanic();
                RestartCinnosti();
                break;

            case VykonavanaCinnost.zozmanLietadiel:
                SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.vzdusne);
                break;

            case VykonavanaCinnost.uloz:
                if (Sprava.DajNaVyber("Prajete si uložiť aktuálnu pozíciu v hre?\nUkladanie môže chvíľku trvať."))
                {
                    try
                    {
                        OknoAplikacie.DajInstanciu().Pauza();
                        Hra.DajInstanciu().Uloz();
                        OknoAplikacie.DajInstanciu().Start();
                        Sprava.Info("Hra bola úspešne uložená.");
                    }
                    catch (Exception)
                    {
                        Sprava.Info("Nie je možné uložiť hru!");
                        OknoAplikacie.DajInstanciu().Start();
                    }
                }
                break;

            case VykonavanaCinnost.nacitaj:
                if (Sprava.DajNaVyber("Prajete si načítať hru? Neuložený postup bude stratený!\nNačítanie môže chvíľku trvať."))
                {
                    try
                    {
                        OknoAplikacie.DajInstanciu().Pauza();
                        Hra.DajInstanciu().Nacitaj();
                        OknoAplikacie.DajInstanciu().Start();
                        Sprava.Info("Hra bola úspešne načítaná.");
                    }
                    catch (Exception)
                    {
                        Sprava.Info("Nie je možné načítať hru!");
                    }
                }

                break;

            case VykonavanaCinnost.zoznamVlakov:
                SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.kolajove);
                break;

            case VykonavanaCinnost.zoznamVozidiel:
                SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.cestne);
                break;

            case VykonavanaCinnost.zoznamLodi:
                SpravcaOkien.ZobrazZoznamDoprevProst(DruhVozidla.vodne);
                break;
            }
        }