public ActionResult pares() { //metemos variables var num1 = Request["text1"]; var num2 = Request["text2"]; //creamos lista List <int> milista2 = new List <int>(); //creamos objeto primos pares mispares = new pares(); int from, until; if ((int.TryParse(num1, out from)) && (int.TryParse(num2, out until))) { milista2 = mispares.CalculaPar(from, until); } //retornar la lista return(View(milista2)); }
public static void DescubreAdyacentes(Tablero tab, int x, int y) { pares[] pendientes = new pares[tab.cas.GetLength(1) * tab.cas.GetLength(0)]; int act = 0; //referencia que indica la casilla que estamos explorando int sigLibre = 1; //Indica la siguiente posición libre del array pendientes[0].x = x; pendientes[0].y = y; //Exploramos todo el array de pendientes while (act < sigLibre) { //Comprobamos que esa casilla esta cubierta y no es una mina if (tab.cas[pendientes[act].y, pendientes[act].x].estado == 'o') { //Asignamos el número de minas que la rodean al estado de la casilla tab.cas[pendientes[act].y, pendientes[act].x].estado = MinasAlRededor(tab, pendientes[act].x, pendientes[act].y); //Si no hay minas al rededor de esa casilla, añadimos las casillas adyacentes a pendientes if (tab.cas[pendientes[act].y, pendientes[act].x].estado == '0') { for (int j = Math.Max(0, pendientes[act].y - 1); j <= Math.Min(pendientes[act].y + 1, tab.cas.GetLength(0) - 1); j++) { for (int i = Math.Max(0, pendientes[act].x - 1); i <= Math.Min(pendientes[act].x + 1, tab.cas.GetLength(1) - 1); i++) { //Si la casilla no está en el array la añadimos if (!EstaEnPendientes(pendientes, i, j, sigLibre)) { pendientes[sigLibre].x = i; pendientes[sigLibre].y = j; sigLibre++; } } } } } act++; } }