/// <summary>
 /// Pridanie cie�a
 /// </summary>
 /// <param name="paStanica">cie�</param>
 /// <returns>�i bolo mo�n� prida�</returns>
 public bool PridajCiel(MiestoZastavenia paStanica)
 {
     if (paStanica.MozePriat == aTyp.Druh)
     {
         paStanica.ZvysPobluhovane();
         aCiele.Add(paStanica);
         return true;
     }
     Sprava.Info("Nekompatibiln� cie�!");
     return false;
 }
Exemple #2
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!");
            }
            
        }
Exemple #3
0
        /// <summary>
        /// Vyhľadanie trasy pokocou dijkstru
        /// </summary>
        /// <param name="paPolohaDo"></param>
        /// <returns></returns>
        public override bool NajdiTrasu(Poloha paPolohaDo)
        {
            JeVCieli        = false;
            aHranaNaTrase   = 0;
            aPoziciaNaHrane = 0;

            aTrasa = DijkstrovAlg.NajdiTrasu(Poloha, paPolohaDo, Druh);
            if (aTrasa == null)
            {
                Strateny = true;
                Sprava.Info("Vlak sa stratil");
                Kamera.DajInstanciu().VycentrujPohlad(Poloha);
                return(false);
            }
            return(true);
        }
        /// <summary>
        /// Vymazanie cie�ov
        /// </summary>
        public void VymazCiele()
        {
            if (!aTyp.JeVCieli)
            {
                Sprava.Info("Nie je mo�n� vymaza� zoznam cielov, \r\n " +
                            "dopravn� prostriedok mus� by� v depe!");
            }
            else
            {
                foreach (var item in aCiele)
                {
                    item.ZnizObsluhovane();
                }

                aCiele.Clear();
                aAktualnaPozicia = -1;
                aNakladam = false;
            }
        }
 /// <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!");
     }
 }
Exemple #6
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");
            }
        }
Exemple #7
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;
            }
        }