コード例 #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();
            }
        }
コード例 #2
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);
            }

        }
コード例 #3
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;
	        }
	    }
コード例 #4
0
        /// <summary>
        /// Zmena pr�rastku
        /// </summary>
        private void ZmenPrirastok()
        {
            aPriprastok = Populacia / Nahoda.NahodnyInt(45, 55);
		}