/// <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; } }
/// <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++; }