예제 #1
0
        /// <summary>
        /// Procedimiento que genera las gemas de forma aleatoria.
        /// </summary>
        public void GenerarGemas()
        {
            int cantidad = (dificultad * 2) + 2;

            gemas = new Gemas[cantidad];

            for (int i = 0; i < gemas.Length; i++)
            {
                if (dificultad > 1)
                {
                    if (HayUnLugarDisponible())
                    {
                        Gemas newGema = new Gemas();
                        gemas[i] = newGema;
                        PosicionGema(newGema);
                    }
                }
                else
                {
                    Gemas newGema = new Gemas();
                    gemas[i] = newGema;
                    PosicionGema(newGema);
                }
            }
        }
        /// <summary>
        /// Procedimiento que genera una cierta cantidad de objetos tipo gema y los almacena en un vector; todo esto, con base en la dificultad.
        /// </summary>
        public void GenerarGemas()
        {
            int cantidad = (dificultad * 2) + 2;

            gemas = new Gemas[cantidad];

            for (int i = 0; i < gemas.Length; i++)
            {
                Gemas newGema = new Gemas();
                gemas[i] = newGema;
            }
        }
예제 #3
0
        /// <summary>
        /// Procedimiento que asigna una posición aleatoria a las gemas.
        /// </summary>
        /// <param name="gema"></param>
        private void PosicionGema(Gemas gema)
        {
            int posX, posY;
            int limx = 0, limy = 0;

            switch (dificultad)
            {
            case 32:
                limx = 4;
                limy = 5;
                break;

            case 3:
                limx = 5;
                limy = 6;
                break;

            case 4:
                limx = 6;
                limy = 7;
                break;

            case 5:
                limx = 10;
                limy = 10;
                break;
            }

            if (dificultad == 1)
            {
                do
                {
                    posX = x.Next(0, tablero.RowCount);
                    posY = x.Next(0, tablero.ColumnCount);
                }while (mapa[posX, posY] != null || (posX == 2 && posY == 0));

                mapa[posX, posY] = "Gema";
                tablero.Controls.Add(gema.gema, posX, posY);
            }
            else if (dificultad == 2)
            {
                do
                {
                    posX = x.Next(0, 4);
                    posY = x.Next(0, 5);
                }while (mapa[posX, posY] != null || posY == 1 || posY == 3 || HayGemaAlrededor(posX, posY));

                mapa[posX, posY] = "Gema";
                tablero.Controls.Add(gema.gema, posX, posY);
            }
            else
            {
                do
                {
                    posX = x.Next(0, limx);
                    posY = x.Next(0, limy);
                }while (mapa[posX, posY] != null || HayGemaAlrededor(posX, posY));

                mapa[posX, posY] = "Gema";
                tablero.Controls.Add(gema.gema, posX, posY);
            }

            contgemas++;
        }