override public void apagarIncendio(ILugar lugar, Calle calle) { ISector[,] matrizLugar = lugar.getSectores(); int caudalAgua = calle.CaudalAgua; int lugarCantFilas = matrizLugar.GetLength(0); int lugarCantColumnas = matrizLugar.GetLength(1); for (int fila = 0; fila < lugarCantFilas; fila++) { if ((fila % 2) == 0) { //Console.WriteLine("La fila es par, recorrido --> "); for (int columna = 0; columna < lugarCantColumnas; columna++) { ApagarSector(fila, columna, matrizLugar, caudalAgua); } } else { //Console.WriteLine("La fila es impar, recorrido <-- "); for (int columna = lugarCantColumnas - 1; columna >= 0; columna--) { ApagarSector(fila, columna, matrizLugar, caudalAgua); } } } // Creo mensajes de finalización en consola Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(" ¡¡¡¡¡¡¡ El fuego de {0} fue extinguido en su totalidad!!!!!! \n", lugar); Console.ResetColor(); }
//METODO QUE UTILIZA EL METODO DE GETSECTORES DE LA PLAZA QUE RECIBE UN CONSTRUCTOR CONCRETO public void ApagarIncendio(ILugar pLugar, Calle pCalle) { int intAguaDisponible = pCalle.GetCaudalAguaPorMinuto(); ISector[,] matrizLugar = pLugar.getSectores(); for (int fila = 0; fila < matrizLugar.GetLength(0); fila++) { for (int columnas = 0; columnas < matrizLugar.GetLength(1); columnas++) { //CUANDO EL NUMERO DE FILA SEA IMPAR (SE TENDRA QUE RECORRER AL REVES PARA DAR EL EFECTO ESCALERA) if (fila % 2 != 0) { for (int columna = matrizLugar.GetLength(1) - 1; columna >= 0; columna--) { DeterminarApagado(matrizLugar, fila, columna, intAguaDisponible); } break; } DeterminarApagado(matrizLugar, fila, columnas, intAguaDisponible); } } Console.WriteLine("EL FUEGO DE LUGAR FUE EXTINGUIDO EN SU TOTALIDAD"); }
override public void apagarIncendio(ILugar lugar, Calle calle) { ISector[,] matrizLugar = lugar.getSectores(); int caudalAgua = calle.CaudalAgua; int CantFilas = matrizLugar.GetLength(0); int CantColumnas = matrizLugar.GetLength(1); int aux = CantColumnas - 1; int fila, columna; for (int i = 0; i < CantFilas; i++) { // a derecha for (int j = i; j < aux; j++) { fila = CantFilas - (aux + 1); columna = j; ApagarSector(fila, columna, matrizLugar, caudalAgua); } // a abajo for (int j = i; j < aux; j++) { fila = j; columna = aux; ApagarSector(fila, columna, matrizLugar, caudalAgua); } // a izquierda for (int j = aux; j > (i - 1); j--) { fila = aux; columna = j; ApagarSector(fila, columna, matrizLugar, caudalAgua); } // increento aux aux--; // hacia arriba for (int j = aux; j > i; j--) { fila = j; columna = CantFilas - (aux + 2); ApagarSector(fila, columna, matrizLugar, caudalAgua); } } // Creo mensajes de finalización en consola Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(" ¡¡¡¡¡¡¡ El fuego de {0} fue extinguido en su totalidad!!!!!! \n", lugar); Console.ResetColor(); }
public void ApagarIncendio(ILugar pLugar, Calle pCalle) { int intAguaDisponible = pCalle.GetCaudalAguaPorMinuto(); ISector [,] matrizLugar = pLugar.getSectores(); for (int filas = 0; filas < matrizLugar.GetLength(0); filas++) { for (int columnas = 0; columnas < matrizLugar.GetLength(1); columnas++) { //SE LE PASA DIRECTAMENTE LA MATRIZ, EL NUMERO DE FILA Y COLUMNA DE CADA SECTOR PARA QUE SE EVALUE LA SITUACION DEL SECTOR DeterminarApagado(matrizLugar, filas, columnas, intAguaDisponible); } } Console.WriteLine("EL FUEGO DE LUGAR FUE EXTINGUIDO EN SU TOTALIDAD"); }
public void apagarIncendio(ILugar lugar, int caudal) { Console.WriteLine("Apagando el incendio con la estrategia escalera en " + lugar.ToString()); ISector [][] sectores = lugar.getSectores(); int fin = sectores.Length - 1; int cont = 0; int indicador = 0; while (cont <= fin) { switch (indicador) { case 0: for (int i = 0; i <= fin; i++) { Console.Write("({0},{1})", cont, i); Console.Write(sectores[cont][i]); sectores[cont][i].mojar(caudal); } indicador = 1; break; case 1: for (int j = fin; j >= 0; j--) { Console.Write("({0},{1})", cont, j); Console.Write(sectores[cont][j]); sectores[cont][j].mojar(caudal); } indicador = 0; break; } Console.WriteLine(); cont++; } Console.WriteLine("!!!!!El fuego de " + lugar.ToString() + " fue extinguido en su totalidad¡¡¡¡¡¡"); }
public void apagarIncendio(ILugar lugar, int caudal) { Console.WriteLine("Apagando el incendio con la estrategia espiral"); ISector [][] sectores = lugar.getSectores(); int fin = sectores.GetLength(0) - 1; int iteraciones = sectores.GetLength(0) * 4; int inicio = 0; for (int j = 0; j < sectores.Length; j++) { for (int i = inicio; i <= fin; i++) { Console.Write("({0},{1})", inicio, i); Console.Write(sectores[inicio][i]); sectores[inicio][i].mojar(caudal); } for (int i = inicio + 1; i <= fin; i++) { Console.Write("({0},{1})", i, fin); Console.Write(sectores[i][fin]); sectores[i][fin].mojar(caudal); } for (int i = fin - 1; i >= inicio; i--) { Console.Write("({0},{1})", fin, i); Console.Write(sectores[fin][i]); sectores[fin][i].mojar(caudal); } for (int i = fin - 1; i > inicio; i--) { Console.Write("({0},{1})", i, inicio); Console.Write(sectores[i][inicio]); sectores[i][inicio].mojar(caudal); } inicio++; fin--; } Console.WriteLine("El fuego de" + lugar.ToString() + " fue extinguido en su totalidad"); }
//debería poder verse: //(1, 1)-> 45-> 0 public void ApagarIncendio(ILugar pLugar, Calle pCalle) { int intAguaDisponible = pCalle.GetCaudalAguaPorMinuto(); int[,] matrizLugar = pLugar.getSectores(); for (int filas = 0; filas < matrizLugar.GetLength(0); filas++) { for (int columnas = 0; columnas < matrizLugar.GetLength(1); columnas++) { int intSector = matrizLugar[filas, columnas]; int intResultadoSector = intSector - intAguaDisponible; string strResultado = "(" + filas + " , " + columnas + ") --> " + intSector; if (intResultadoSector < 0) { strResultado += " --> 0"; Console.WriteLine(strResultado); } //SI EL RESULTADO DEL SECTOR ES MAYOR SIGNIFICA QUE NO SE APAGO else { strResultado += " --> " + intResultadoSector; Boolean boolEntrar = true; while (boolEntrar) { int intTerminarApagar = intResultadoSector - intAguaDisponible; if (intTerminarApagar < 0) { strResultado += "--> 0"; Console.WriteLine(strResultado); boolEntrar = false; } else { strResultado += " --> " + intTerminarApagar; } } } } } Console.WriteLine("EL FUEGO DE LUGAR FUE EXTINGUIDO EN SU TOTALIDAD"); }
public void apagarIncendio(ILugar lugar, int caudal) { Console.WriteLine("Apagando el incendio con la estrategia secuencial en " + lugar.ToString()); ISector [][] sectores = lugar.getSectores(); int tamaño = sectores.GetLength(0); for (int i = 0; i < tamaño; i++) { for (int j = 0; j < tamaño; j++) { Console.Write("({0},{1})", i, j); Console.Write(" -- ({0})", sectores[i][j].ToString()); sectores[i][j].mojar(caudal); } } Console.WriteLine("!!!!!El fuego de " + lugar.ToString() + " fue extinguido en su totalidad¡¡¡¡¡¡"); }
public void ApagarIncendio(ILugar pLugar, Calle pCalle) { int intAguaDisponible = pCalle.GetCaudalAguaPorMinuto(); int[,] matrizLugar = pLugar.getSectores(); int intInicio = 0; int intLimiteColumna = matrizLugar.GetLength(1) - 1; int intLimiteFila = matrizLugar.GetLength(0) - 1; int intCantidadElementos = matrizLugar.GetLength(1) * matrizLugar.GetLength(0); int intContador = 0; while (intContador < intCantidadElementos) { for (int columnas = intInicio; columnas <= intLimiteColumna; columnas++) { DeterminarApagado(matrizLugar, intInicio, columnas, intAguaDisponible); intContador++; } for (int filas = intInicio + 1; filas <= intLimiteFila; filas++) { DeterminarApagado(matrizLugar, filas, intLimiteFila, intAguaDisponible); intContador++; } for (int columnasReversa = intLimiteColumna - 1; columnasReversa >= intInicio; columnasReversa--) { DeterminarApagado(matrizLugar, intLimiteColumna, columnasReversa, intAguaDisponible); intContador++; } for (int i = intLimiteFila - 1; i > intInicio; i--) { DeterminarApagado(matrizLugar, i, intInicio, intAguaDisponible); intContador++; } intInicio = intInicio + 1; intLimiteColumna = intLimiteColumna - 1; intLimiteFila = intLimiteFila - 1; } Console.WriteLine("EL FUEGO DE LUGAR FUE EXTINGUIDO EN SU TOTALIDAD"); }
override public void apagarIncendio(ILugar lugar, Calle calle) { // Obtengo las dimensiones de lugar ISector[,] matrizLugar = lugar.getSectores(); int caudalAgua = calle.CaudalAgua; int lugarFilas = matrizLugar.GetLength(0); int lugarColumnas = matrizLugar.GetLength(1); for (int fila = 0; fila < lugarFilas; fila++) { for (int columna = 0; columna < lugarColumnas; columna++) { ApagarSector(fila, columna, matrizLugar, caudalAgua); } } // Creo mensajes de finalización en consola Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(" ¡¡¡¡¡¡¡ El fuego de {0} fue extinguido en su totalidad!!!!!! \n", lugar); Console.ResetColor(); }
public void ApagarIncendio(ILugar pLugar, Calle pCalle) { int intAguaDisponible = pCalle.GetCaudalAguaPorMinuto(); int[,] matrizLugar = pLugar.getSectores(); for (int filas = 0; filas < matrizLugar.GetLength(0); filas++) { for (int columnas = 0; columnas < matrizLugar.GetLength(1); columnas++) { if (filas % 2 != 0) { for (int columna = matrizLugar.GetLength(1) - 1; columna >= 0; columna--) { DeterminarApagado(matrizLugar, filas, columna, intAguaDisponible); } break; } DeterminarApagado(matrizLugar, filas, columnas, intAguaDisponible); } } Console.WriteLine("EL FUEGO DE LUGAR FUE EXTINGUIDO EN SU TOTALIDAD"); }
public void apagarIncendio(ILugar lugar, Calle calle) { ISector [][] sectores = lugar.getSectores(); int longitud = sectores.GetLength(0); int caudal = calle.getCaudal(); Console.WriteLine("Un bombero esta apagando el incendio con el metodo Secuencial en la " + lugar.ToString() + "\n"); Console.WriteLine("Matriz de sectores de la " + lugar.ToString() + " (" + longitud + "x" + longitud + "):"); for (int i = 0; i < longitud; i++) { for (int j = 0; j < longitud; j++) { var fuegoRestante = new List <double>(); //Lista que va a ir añadiendo valores del caudal a medida que se va apagando el fuego. fuegoRestante.Add(sectores[i][j].getAfeccion()); while (!sectores[i][j].estaApagado()) { sectores[i][j].mojar(caudal); if (sectores[i][j].estaApagado()) { fuegoRestante.Add(0); //Se añade 0 en caso de que el caudal sea menor o igual a 0. } else { fuegoRestante.Add(sectores[i][j].getAfeccion()); } } Console.WriteLine("(" + i + "," + j + ") - " + "(" + sectores[i][j].ToString() + ") -> " + string.Join(" -> ", fuegoRestante)); } } Console.WriteLine("\nEl fuego de " + lugar.ToString() + " fue extinguido en su totalidad!!"); }
public ISector[,] ObtenerMatrizLugar() { return(lugar.getSectores()); }