Esempio n. 1
0
        /// <summary>
        /// Vytvαranie miest
        /// </summary>
        private void VytvorMesto()
        {
            int riadok = Nahoda.NahodnyInt(CBocnePolia, PocetRiadkov - CBocnePolia);
            int stlpec = Nahoda.NahodnyInt(CBocnePolia, PocetStlpcov - CBocnePolia);
            Mesto ms = new Mesto(new Poloha(riadok, stlpec), aPoradieMesta);
            int riadokMax = riadok + ms.PocetRiadkov;
            int stlpecMax = stlpec + ms.PocetStlpcov;

            if (MoznostUmiestnit(riadok, riadokMax, stlpec, stlpecMax, true, false))
            {
                for (int i = riadok; i < riadokMax; i++)
                {
                    for (int j = stlpec; j < stlpecMax; j++)
                    {
                        aMatica[i, j].Vyroba = ms;
                    }
                }
                aMesta.Add(ms);
                aPoradieMesta++;
            }
            else
            {
                VytvorMesto();
            }
        }
Esempio n. 2
0
        /// <summary>
        ///
        /// Ak je firma prvov�robn�, tak je mo�n�, �e sa jej mno�stvo vyroben�ch produktov zmen�
        ///  Ak nie je prvov�robn�, tak sa vyr�ba pod�a toho, ko�ko sa pr�jme
        /// </summary>
		public void ZmenProdukciu(){
            var kluce = new List<TypPrepravJednotky>(aProdukuje.Keys);

            foreach (TypPrepravJednotky kluc in kluce)
            {
                if (aProdukuje[kluc] != 0)
                {
                    aProdukuje[kluc] = Nahoda.TriaInt(cMinProd, aProdukuje[kluc], cMaxProd);
                }
                
            }
		}
Esempio n. 3
0
        /// <summary>
        /// Ak m��em dan� jednotku pria�, tak ju pr�jmem a vyrob�m
        /// Ak vyr�bam z "polotovaru" tak sa cca 20% strat� pri v�robnom procese.
        /// </summary>
        /// <param name="paPrepJedn">tdruh prep j</param>
        /// <returns>�i sa podarilo</returns>
        public bool Vyrob(PrepravJednotka paPrepJedn)
        {
            if (aPrilahlaStanica != null && aPrijma.Contains(paPrepJedn.Typ))
            {
                if (aDruhVyroby != DruhVyroby.Mesto && aDruhVyroby != DruhVyroby.Elektraren)
                {
                    double rmd = Nahoda.NahodneCislo0az1();

                    if (rmd < 0.8)
                    {
                        PrepravJednotka prepJ = new PrepravJednotka(aProdukuje.Keys.First());
                        aPrilahlaStanica.NechajCakat(prepJ);
                    }
                }
                return true;
            }
            return false;
        }
Esempio n. 4
0
        /// <summary>
        /// Vytvαranie vύroby
        /// </summary>
        /// <param name="paDrVyr">druh vytvαranej vύroby</param>
        private void VytvorVyrobu(DruhVyroby paDrVyr)
        {

            int riadok = Nahoda.NahodnyInt(0, PocetRiadkov - 3);
            int stlpec = Nahoda.NahodnyInt(0, PocetStlpcov - 3);
            Vyroba vyr = new Vyroba(paDrVyr, new Poloha(riadok, stlpec));

            int riadokMax = riadok + vyr.PocetRiadkov;
            int stlpecMax = stlpec + vyr.PocetStlpcov;

            bool mUm;
            if (paDrVyr == DruhVyroby.RopnaPlosina)
            {
                mUm = MoznostUmiestnit(riadok, riadokMax, stlpec, stlpecMax, false, false);
                if (mUm)
                {
                    ZoznamPrirodzenychStanic.Add(vyr.Zoskupenie);
                }
            }else if (paDrVyr == DruhVyroby.RopnaRafineria)
            {
                mUm = MoznostUmiestnit(riadok, riadokMax, stlpec, stlpecMax, false, true);
            }
            else
            {
                mUm = MoznostUmiestnit(riadok, riadokMax, stlpec, stlpecMax, true, false);
            }

            if (mUm)
            {
                for (int i = riadok; i < riadokMax; i++)
                {
                    for (int j = stlpec; j < stlpecMax; j++)
                    {
                        aMatica[i, j].Vyroba = vyr;
                    }
                }
                aVyroba.Add(vyr);
            }
            else
            {
                VytvorVyrobu(paDrVyr);
            }

        }
Esempio n. 5
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();
		}
Esempio n. 6
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;
		}
Esempio n. 7
0
        /// <summary>
        /// Vyrobenie - teda vznikn� cestuj�ci a po�ta
        /// </summary>
        public void Vyrob() 
        {
            if(Zoskupenie != null)
            {
                int temp = Populacia / cIntervalDni;

                int pocetCestujucich = temp/5;

                if (pocetCestujucich > 0)
                {
                    pocetCestujucich = Nahoda.TriaInt(pocetCestujucich - 1, pocetCestujucich, pocetCestujucich + 2);
                }
                else 
                {
                    pocetCestujucich = 1;
                }

                int pocetPosty = temp / 10;

                if (pocetPosty > 0)
                {
                    pocetPosty = Nahoda.TriaInt(pocetPosty - 1, pocetPosty, pocetPosty + 2);
                }
                else
                {
                    pocetPosty = 1;
                }

                for (int i = 0; i < pocetCestujucich; i++)
                {
                    Zoskupenie.NechajCakat(new PrepravJednotka(TypPrepravJednotky.cestujuci));
                }

                for (int i = 0; i < pocetPosty; i++)
                {
                    Zoskupenie.NechajCakat(new PrepravJednotka(TypPrepravJednotky.posta));
                }
                Console.WriteLine("Mesto, cest: " + pocetCestujucich + ", post: " + pocetPosty);
            }
        }
Esempio n. 8
0
        /// <summary>
        /// Vyrobanie nejak�ho po�tu v�robn�ch jednotiek. Produkcia je vypo��tana �iasto�ne metematick�mi vz�ahmi 
        /// z celkovej produknie za mesiac a m��e by� upraven� pomocou trojuholn�kov�ho rozdelenia
        /// </summary>
		public void Vyrob(){
            if (aPrilahlaStanica != null && !aPrilahlaStanica.Uzamknute)
            {
                int dnesnaProdukcia = 0;
                double temp = 0;
                foreach (var item in aProdukuje)
                {
                    temp = (double)item.Value / (double)30;
                    dnesnaProdukcia = (int)Math.Round(temp, MidpointRounding.AwayFromZero);

                    if (dnesnaProdukcia > 0)
                    {
                        dnesnaProdukcia = Nahoda.TriaInt(dnesnaProdukcia-1, dnesnaProdukcia, dnesnaProdukcia+1);
                    }

                    for (int i = 0; i < dnesnaProdukcia; i++)
                    {
                        aPrilahlaStanica.NechajCakat(new PrepravJednotka(item.Key));
                    }
                    Console.WriteLine(item.Key + " " + dnesnaProdukcia);
                }
            }
		}
Esempio n. 9
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;
		}
Esempio n. 10
0
        /// <summary>
        /// Vykonanie n�hodn�ho pohybu.
        /// Ak sa nepodar� vykona� n�hodn� pohyb 20x,
        /// tak sa lo� strat�
        /// </summary>
	    private void NahodnyPohyb()
	    {
	        if (aPokusyNahPoh < 20)
	        {
	            aPokusyNahPoh++;
	            int poradie = Nahoda.NahodnyInt(0, 4);
	            bool vysledok = false;

                switch (poradie)
	            {
                    case 0:
	                    vysledok = PohybHore(false);
	                    break;

                    case 1:
                        vysledok = PohybDole(false);
                        break;

                    case 2:
                        vysledok = PohybVlavo(false);
                        break;

                    case 3:
                        vysledok = PohybVpravo(false);
                        break;
	            }
	            if (!vysledok)
	            {
                    NahodnyPohyb();
	            }
	        }
	        else
	        {
                aPokusyNahPoh = 0;
	            Strateny = true;
	        }
	    }
Esempio n. 11
0
        /// <summary>
        /// Zmena pr�rastku
        /// </summary>
        private void ZmenPrirastok()
        {
            aPriprastok = Populacia / Nahoda.NahodnyInt(45, 55);
		}