示例#1
0
        private void vytvorPlan()
        {
            int  vx = sx;
            int  vy = sy;
            int  difx, dify, r, or;
            bool propojeno = false;

            while (!propojeno)
            {
                r    = random.Next(2);
                or   = (r + 1) % 2;
                difx = vx - cx;
                dify = vy - cy;
                if (difx == 0) //pokud ne tak musí být rozdíl v y jinak je identita
                {
                    vy = -Math.Sign(dify) + vy;
                }
                else if (dify == 0)
                {
                    vx = -Math.Sign(difx) + vx;
                }
                else
                {
                    vx = -Math.Sign(difx) * r + vx;
                    vy = -Math.Sign(dify) * or + vy;
                }

                if (vx == cx && vy == cy)
                {
                    propojeno = true;
                }
                else
                {
                    mapa[vx, vy] = true;
                }
            }
            pridejDalsiPole();
            planMapy k;

            for (int i = 0; i < sirka; i++)
            {
                for (int j = 0; j < vyska; j++)
                {
                    if (mapa[i, j])
                    {
                        k = new planMapy(this, i, j, false);
                    }
                    else
                    {
                        k = new planMapy(this, i, j, true);
                    }
                    listPlanuMapy[i, j] = k;
                }
            }
        }
示例#2
0
        public void NactiMapu(int lvl)
        {
            PohyblivePrvky = new List <PohyblivyPrvek>();
            Prvky          = new List <Prvek>();
            pickables      = new List <Pickable>();
            int s = 19;
            int v = 16;

            if (lvl % 3 == 0)
            {
                //načítání z předem vybrané mapy "boss"
                System.IO.StreamReader sr = new System.IO.StreamReader("mapa" + lvl + ".txt");
                int sirkaVyrezu           = int.Parse(sr.ReadLine()); //v mapách
                int vyskaVyrezu           = int.Parse(sr.ReadLine());



                sirka = sirkaVyrezu * s;
                vyska = vyskaVyrezu * v;

                int my, mx;
                plan = new char[sirka, vyska];

                for (int i = 0; i < sirkaVyrezu; i++)
                {
                    for (int j = 0; j < vyskaVyrezu; j++)
                    { //jednotlivé prvky
                        for (int y = 0; y < v; y++)
                        {
                            string radek = sr.ReadLine();
                            for (int x = 0; x < s; x++)
                            {
                                char znak = radek[x];
                                mx = x + i * s;
                                my = y + j * v;
                                nactiZnak(mx, my, znak);
                            }
                        }
                        sr.ReadLine();
                    }
                }


                sr.Close();
            }
            else
            {
                //random generovaná mapa
                TvorbaMapy t         = new TvorbaMapy(8, 8, "MyTest2.txt");
                int        sirkaMapy = 8;
                int        vyskaMapy = 8;

                sirka = sirkaMapy * s;
                vyska = vyskaMapy * v;

                int my, mx;
                plan = new char[sirka, vyska];

                for (int i = 0; i < sirkaMapy; i++)
                {
                    for (int j = 0; j < vyskaMapy; j++)
                    { //jednotlivé prvky
                        planMapy k = t.listPlanuMapy[i, j];

                        for (int y = 0; y < v; y++)
                        {
                            for (int x = 0; x < s; x++)
                            {
                                char znak = k.plan[x, y];
                                mx = x + i * s;
                                my = y + j * v;
                                nactiZnak(mx, my, znak);
                            }
                        }
                    }
                }
            }
        }