Exemple #1
0
        /// <summary>
        /// Vycentruje poh�ad kamery na zadan� s�radnice. 
        /// Ak je to mo�n�, tak objekt umiestni do stredu obrazovky
        /// </summary>
        /// <param name="paPoloha">Poloha na ktor� sa m� vycentrova�</param>
	    public void VycentrujPohlad(Poloha paPoloha)
	    {
            int odsadenieStlpec = paPoloha.Stlpec + PozadieMenu.cPosunZBoku - cPocetOkienStplce / 2;
            int odsadenieRiadok = paPoloha.Riadok + PozadieMenu.cPosunZVrchu - cPocetOkienRiadky / 2;

            if (odsadenieStlpec < 0)
            {
                odsadenieStlpec = 0;
            }
            else if (odsadenieStlpec > HernaPlocha.PocetStlpcov-cPocetOkienStplce + PozadieMenu.cPosunZBoku)
            {
                odsadenieStlpec = HernaPlocha.PocetStlpcov - cPocetOkienStplce + PozadieMenu.cPosunZBoku;
            }
	        
            if (odsadenieRiadok < 0)
            {
                odsadenieRiadok = 0;
            }
            else if (odsadenieRiadok > HernaPlocha.PocetRiadkov - cPocetOkienRiadky + PozadieMenu.cPosunZVrchu)
            {
                odsadenieRiadok = HernaPlocha.PocetRiadkov - cPocetOkienRiadky + PozadieMenu.cPosunZVrchu;
            }

            aPoloha.Stlpec = odsadenieStlpec;
            aPoloha.Riadok = odsadenieRiadok; 
	    }
        /// <summary>
        /// Generovanie hernej plochy. Keοže povnina na hernej ploche mα reprezentova ostrov,
        /// tak sa využνva okrem inιho aj rovnica elipsy
        /// </summary>
        private void GenerujPlochu()
        {
            Poloha pol = null;

            int stredovyRiadok = PocetRiadkov / 2;
            int stredovyStlpec = PocetStlpcov / 2;
            int polomerRiadkov = stredovyRiadok - 3;
            int polomerStlpcov = stredovyStlpec - 3;

            for (int riadok = 0; riadok < PocetRiadkov; riadok++)
            {
                for (int stlpec = 0; stlpec < PocetStlpcov; stlpec++)
                {
                    pol = new Poloha(riadok, stlpec);
                    if (Math.Pow((double)(riadok - stredovyRiadok) / (double)polomerRiadkov, 2) + Math.Pow((double)(stlpec - stredovyStlpec) / (double)polomerStlpcov, 2) <= 1)
                    {
                        aMatica[riadok, stlpec] = new Policko(pol, true);
                    }
                    else
                    {
                        aMatica[riadok, stlpec] = new Policko(pol, false);
                    }
                }
            }
        }
Exemple #3
0
        /// <summary>
        /// Kon�truktor pe dok, ktor� stavia hr��
        /// </summary>
        /// <param name="paPoloha"></param>
        /// <param name="paSmerDoku"></param>
        public Dok(Poloha paPoloha, SmerDoku paSmerDoku)
        {
            ZburatelneAutomaticky = false;
            NakladyNaZburanie = 300;
            Cena = 700;

            Poloha = paPoloha;

            switch (paSmerDoku) 
            {
                case SmerDoku.dole:
                    NastavObrazok(Resources.dokDole, "dokDole");
                    break;
                case SmerDoku.hore:
                    NastavObrazok(Resources.dokHore, "dokHore");
                    break;
                case SmerDoku.vlavo:
                    NastavObrazok(Resources.dokVlavo, "dokVlavo");
                    break;
                case SmerDoku.vpravo:
                    NastavObrazok(Resources.dokVpravo, "dokVpravo");
                    break;
            }
            DokonciVytvaranie();
        }
Exemple #4
0
 /// <summary>
 /// Vykonanie pohybu
 /// </summary>
 public override void VykonajPohyb()
 {
     if (aAktualnyFrame == FramePohyb)
     {
         if (Poloha.Stlpec > aPolohaDo.Stlpec)
         {
             NastavObrazok(Resources.lietadloVlavo, "lietadloVlavo");
             Poloha = new Poloha(Poloha.Riadok, Poloha.Stlpec-1);
         }
         else if (Poloha.Stlpec < aPolohaDo.Stlpec)
         {
             Poloha = new Poloha(Poloha.Riadok, Poloha.Stlpec + 1);
             NastavObrazok(Resources.lietadloVpravo, "lietadloVpravo");
         }
         else if (Poloha.Riadok > aPolohaDo.Riadok)
         {
             NastavObrazok(Resources.lietadloHore, "lietadloHore");
             Poloha = new Poloha(Poloha.Riadok-1, Poloha.Stlpec);
         }
         else if (Poloha.Riadok < aPolohaDo.Riadok)
         {
             NastavObrazok(Resources.lietadloDole, "lietadloDole");
             Poloha = new Poloha(Poloha.Riadok + 1, Poloha.Stlpec);
         }
         else
         {
             JeVCieli = true;
         }
         aAktualnyFrame = 0;
     }
     aAktualnyFrame++;
 }
 /// <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);
 }
Exemple #6
0
        /// <summary>
        /// Inicializácia potrebných vecí
        /// </summary>
        /// <param name="paPoloha"></param>
		public Boja(Poloha paPoloha){

            Poloha = paPoloha;
            NastavObrazok(Resources.boja, "boja");
            ZburatelneAutomaticky = false;
            NakladyNaZburanie = 50;
            Cena = 100;
            MozePriat = DruhVozidla.vodne;
		}
Exemple #7
0
        /// <summary>
        /// Kon�etruktor s parametrami
        /// </summary>
        /// <param name="paPoloha"></param>
        /// <param name="paTypPreprJ"></param>
        /// <param name="paKapacita"></param>
        /// <param name="paRychlost"></param>
        /// <param name="paCena"></param>
        /// <param name="paNazov"></param>
	    protected PrototypDp(Poloha paPoloha, TypPrepravJednotky paTypPreprJ, int paKapacita, int paRychlost, int paCena, String paNazov)
        {
            Cena = paCena;
            Kapacita = paKapacita;
            Rychlost = paRychlost;
            Poloha = paPoloha;
            Nazov = paNazov;
	        TypNakladu = paTypPreprJ;
            JeVCieli = false;
	        Strateny = false;
        }
Exemple #8
0
        /// <summary>
        /// Kop�rovac� kon�truktor
        /// </summary>
        /// <param name="paPredloha">Predloha</param>
	    protected PrototypDp(PrototypDp paPredloha)
	    {
            Cena = paPredloha.Cena;
            Kapacita = paPredloha.Kapacita;
            Rychlost = paPredloha.Rychlost;
            Poloha = paPredloha.Poloha;
            Nazov = paPredloha.Nazov;
            TypNakladu = paPredloha.TypNakladu;
	        JeVCieli = false;
	        Strateny = false;
	    }
Exemple #9
0
        /// <summary>
        /// Kon�truktor inicializuje v�etko potrebn�
        /// </summary>
        /// <param name="paPoloha"></param>
	    public Letisko(Poloha paPoloha)

	    {
            Poloha = paPoloha;

            base.ZburatelneAutomaticky = false;
            base.NastavObrazok(Resources.letisko, "letisko");
            Cena = 10000;
            NakladyNaZburanie = 2000;
            aMozneStroje = new List<PrototypDp>();
            Predlohy();
		}
Exemple #10
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;
	    }
Exemple #11
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);
        }
Exemple #12
0
	    /// <summary>
	    /// Inicializ�cia mesta, v�ber n�zvu a n�hodne zvolenie po�iato�nej popul�cia pod�a trojuholn�kov�ho rozdelenia
	    /// </summary>
	    /// <param name="paPoloha">poloha</param>
	    /// <param name="paPoradoveCislo">poradsov� ��slo</param>
	    public Mesto(Poloha paPoloha, int paPoradoveCislo): base(DruhVyroby.Mesto, paPoloha)
        {
            aDen = 0;
            aPoradoveCislo = paPoradoveCislo;
            int poradie = 0;

            foreach( NazvyMiest nazov in Enum.GetValues(typeof(NazvyMiest)))
            {
                if(aPoradoveCislo == poradie)
                {
                    Nazov = nazov.ToString();
                    break;
                }
                poradie++;
            }

            Populacia = Nahoda.TriaInt(100, 300, 400);
            this.ZmenPrirastok();
		}
        public ZeleznicnaStanica(Poloha paPoloha, SmerZast paSmerZast)
        {
            Poloha = paPoloha;
            SmerZastavky = paSmerZast;
            aMozneStroje = new List<PrototypDp>();

            if (SmerZastavky == SmerZast.horizontalny)
            {
                NastavObrazok(Resources.zelStanicaVodor, "zelStanicaVodor");
            }
            else
            {
                NastavObrazok(Resources.zelStanicaZv, "zelStanicaZv");
            }

            ZburatelneAutomaticky = false;
            NakladyNaZburanie = 200;
            Cena = 650;
            Predlohy();
        }
Exemple #14
0
        /// <summary>
        /// Vytvorenie polниka, poliиko sa pri vytvбranн rozhoduje, иi bude maЭ na sebe prнrodnэ prvok, alebo nie
        /// </summary>
        /// <param name="paPoloha">poloha polниka</param>
        /// <param name="paPevnina"> иi je pevnina</param>
        public Policko(Poloha paPoloha, bool paPevnina)
        {
            aPoloha = paPoloha;
            aZastavane = null;
            aPevnina = paPevnina;
            aDopravneProst = new List<DopravnyProstriedok>();
            if (aPevnina == true)
            {
                NastavObrazok(Resources.grass, "grass");
                if (Nahoda.NahodneCislo0az1() < 0.2)
                {
                    aZastavane = new Priroda(aPoloha); 
                }
            }
            else {
                NastavObrazok(Resources.water, "water");
            }

            OdsadenieZLava = aPoloha.Stlpec * Policko.cVelkostPolicka;
            OdsadenieZHora = aPoloha.Riadok * Policko.cVelkostPolicka;
		}
Exemple #15
0
        public Zastavka(Poloha paPoloha, SmerZast paSmerZast)
        {
            Poloha = paPoloha;
            SmerZast = paSmerZast;
            aMozneStroje = new List<PrototypDp>();

            if (SmerZast == SmerZast.horizontalny)
            {
                NastavObrazok(Resources.cestaZastavkaVodor, "cestaZastavkaVodor");
            }
            else 
            {
                NastavObrazok(Resources.cestaZastavkaZvy, "cestaZastavkaZvy");
            }

            ZburatelneAutomaticky = false;
            NakladyNaZburanie = 200;
            Cena = 500;
            Predlohy();

		}
		public Zeleznica(SmerInf paSmer, Poloha paPoloha){

            base.ZburatelneAutomaticky = false;
            Poloha = paPoloha;
            aOrientacia = paSmer;

            switch (aOrientacia)
            {
                case SmerInf.horizontalny:
                    NastavObrazok(Resources.zelVodorovne, "zelVodorovne");
                    Cena = 300;
                    break;
                case SmerInf.vertikalny:
                    NastavObrazok(Resources.zelZvisle, "zelZvisle");
                    Cena = 300;
                    break;
                case SmerInf.zatackaDoleVlavo:
                    NastavObrazok(Resources.zelOdbVlavoDole, "zelOdbVlavoDole");
                    Cena = 320;
                    break;
                case SmerInf.zatackaDoleVpravo:
                    NastavObrazok(Resources.zelOdbVpravoDole, "zelOdbVpravoDole");
                    Cena = 320;
                    break;
                case SmerInf.zatackaHoreVlavo:
                    NastavObrazok(Resources.zelOdbVlavoHore, "zelOdbVlavoHore");
                    Cena = 320;
                    break;
                case SmerInf.zatackaHoreVpravo:
                    NastavObrazok(Resources.zelOdbVpravoHore, "zelOdbVlavoHore");
                    Cena = 320;
                    break;
            }

            NakladyNaZburanie = 20;
            Povolene = DruhVozidla.kolajove;
            
		}
Exemple #17
0
		public Priroda(Poloha paPoloha)
		{

		    Poloha = paPoloha;

            aJeStrom = true;
            if (Nahoda.NahodneCislo0az1() < 0.25)
            {
                aJeStrom = false;
            }

            if (aJeStrom == true)
            {
                NastavObrazok(Resources.tree, "tree");
                NakladyNaZburanie = cNakladyStrom;
            }
            else {
                NastavObrazok(Resources.stone, "stone");
                NakladyNaZburanie = cNakladySkala;
            }

            base.ZburatelneAutomaticky = true;
		}
Exemple #18
0
        /// <summary>
        /// Kon�truktor pre dok, ktor� m��e by� s��as�ou ropnej plo�iny
        /// </summary>
        /// <param name="paPoloha"></param>
	    public Dok(Poloha paPoloha)
		{
		    Poloha = paPoloha;
            DokonciVytvaranie();
		}
Exemple #19
0
	    public override bool NajdiTrasu(Poloha paPolohaDo)
        {
            JeVCieli = false;
            aPolohaDo = paPolohaDo;
            return true;
        }
Exemple #20
0
 public Vlak(Poloha paPoloha, TypPrepravJednotky paTypPreprJ, int paKapacita, int paRychlost, int paCena, string paNazov) :
     base(paPoloha, paTypPreprJ, paKapacita, paRychlost, paCena, paNazov)
 {
 }
Exemple #21
0
        public Lietadlo(Poloha paPoloha, TypPrepravJednotky paTypPreprJ, int paKapacita, int paRychlost, int paCena, String paNazov)
            : base(paPoloha, paTypPreprJ, paKapacita, paRychlost, paCena, paNazov)
        {
            DokonciVytvaranie();
		}
Exemple #22
0
 /// <summary>
 /// Vyh¾adanie trasy
 /// </summary>
 /// <param name="paPolohaDo"></param>
 /// <returns></returns>
 public override bool NajdiTrasu(Poloha paPolohaDo)
 {
     JeVCieli = false;
     aPolohaDo = new Poloha(paPolohaDo.Riadok+1, paPolohaDo.Stlpec+1);
     return true;
 }
Exemple #23
0
        /// <summary>
        /// Singleton - pri vytovaren� je kamera na 0,0 poz�ci�
        /// </summary>
        private Kamera()
        {
            aPoloha = new Poloha(0, 0);
		}
Exemple #24
0
	    /// <summary>
	    /// Vyh�adanie trasy - ka�d� potomok si to rie�i samostatne
	    /// </summary>
	    /// <param name="paPolohaDo"></param>
	    /// <returns></returns>
	    public abstract bool NajdiTrasu(Poloha paPolohaDo);
 /// <summary>
 /// Vyhľadanie konečného vrcholu v zozname vrcholov
 /// </summary>
 /// <param name="paPoloha">poloha</param>
 /// <returns>konečný vrchol</returns>
 private static Vrchol NajdiCielovyVrchol(Poloha paPoloha)
 {
     return(aHernaPlocha.ZoznamVrcholov.FirstOrDefault(item =>
                                                       item.Policko.Poloha.Riadok == paPoloha.Riadok && item.Policko.Poloha.Stlpec == paPoloha.Stlpec));
 }
Exemple #26
0
        /// <summary>
        /// Cesta + priradenie spr�vnych obr�zkov a s�m, 
        /// pod�a jednotiliv�ch druhov
        /// </summary>
        /// <param name="paSmer"></param>
        /// <param name="paPoloha"></param>
		public Cesta(SmerCesty paSmer, Poloha paPoloha){

            base.ZburatelneAutomaticky = false;
            aOrientacia = paSmer;
            Poloha = paPoloha;

            switch (aOrientacia)
            { 
                case SmerCesty.krizovatka :
                    NastavObrazok(Resources.cestaKri�ovatka, "cestaKri�ovatka");
                    Cena = 300;
                    break;

                case SmerCesty.odbVodorovneDole:
                    NastavObrazok(Resources.cestaOdbVodorovneDole, "cestaOdbVodorovneDole");
                    Cena = 250;
                    break;

                case SmerCesty.odbVodorovneHore:
                    NastavObrazok(Resources.cestaOdbVodorovneHore, "cestaOdbVodorovneHore");
                    Cena = 250;
                    break;

                case SmerCesty.odbZvysleVlavo:
                    NastavObrazok(Resources.cestaOdbZvysleVlavo, "cestaOdbZvysleVlavo");
                    Cena = 250;
                    break;

                case SmerCesty.odbZvysleVpravo:
                    NastavObrazok(Resources.cestaOdbZvysleVpravo, "cestaOdbZvysleVpravo");
                    Cena = 250;
                    break;

                case SmerCesty.vodorovne:
                    NastavObrazok(Resources.cestaVodorovne, "cestaVodorovne");
                    Cena = 200;
                    break;

                case SmerCesty.zakDoleVlavo:
                    NastavObrazok(Resources.cestaZakDoleVlavo, "cestaZakDoleVlavo");
                    Cena = 220;
                    break;

                case SmerCesty.zakDoleVpravo:
                    NastavObrazok(Resources.cestaZakDoleVpravo, "cestaZakDoleVpravo");
                    Cena = 220;
                    break;

                case SmerCesty.zakHoreVpravo:
                    NastavObrazok(Resources.cestaZakHoleVpravo, "cestaZakHoleVpravo");
                    Cena = 220;
                    break;

                case SmerCesty.zakHoreVlavo:
                    NastavObrazok(Resources.cestaZakHoreVlavo, "cestaZakHoreVlavo");
                    Cena = 220;
                    break;

                case SmerCesty.zvisle:
                    NastavObrazok(Resources.cestaZvisle, "cestaZvisle");
                    Cena = 200;
                    break;

            }

            NakladyNaZburanie = 100;
            Povolene = DruhVozidla.cestne;

		}
Exemple #27
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();
		}