/// <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(); } }
/// <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); } }
/// <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; } }
/// <summary> /// Zmena pr�rastku /// </summary> private void ZmenPrirastok() { aPriprastok = Populacia / Nahoda.NahodnyInt(45, 55); }