예제 #1
0
 // Constructores
 public Plaza(string nombre, int superficie, int arboles, int farolas, Calle calle, DirectorDeSectores directorDeSectores)
 {
     this.nombre             = nombre;
     this.superficie         = superficie;
     this.arboles            = arboles;
     this.farolas            = farolas;
     this.calle              = calle;
     this.directorDeSectores = directorDeSectores;
 }
예제 #2
0
        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();
        }
예제 #3
0
        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();
        }
예제 #4
0
        static void Main(string[] args)
        {
            Test_HeroesDeCiudad.tituloDecorado();
            // heroes
            BomberoProxy      bombero      = new BomberoProxy();
            MedicoProxy       medico       = new MedicoProxy();
            PoliciaProxy      policia      = new PoliciaProxy();
            ElectricistaProxy electricista = new ElectricistaProxy();

            // creo Cadena
            medico.setSiguiente(bombero);
            policia.setSiguiente(medico);
            electricista.setSiguiente(policia);

            Operador911 op = new Operador911(electricista);

            // armar cadena?

            // 10 ILugar
            DirectorDeSectores directorFavorable = new DirectorDeSectores(new ConstructorDesfavorable());

            Calle callePrincipal  = new Calle(11, 10, 50); // 50 de agua
            Calle calleSecundaria = new Calle(15, 10, 30); // 20 de agua

            Casa  A = new Casa(1, 4, 10, callePrincipal, directorFavorable);
            Casa  B = new Casa(1, 16, 10, callePrincipal, directorFavorable);
            Casa  C = new Casa(1, 9, 10, calleSecundaria, directorFavorable);
            Casa  D = new Casa(1, 9, 10, calleSecundaria, directorFavorable);
            Casa  E = new Casa(1, 16, 10, calleSecundaria, directorFavorable);
            Casa  F = new Casa(1, 40, 10, calleSecundaria, directorFavorable);
            Plaza G = new Plaza("Plaza Alemana", 100, 10, 10, callePrincipal, directorFavorable);
            Casa  H = new Casa(1, 72, 10, calleSecundaria, directorFavorable);
            Casa  I = new Casa(1, 30, 10, callePrincipal, directorFavorable);
            Casa  J = new Casa(1, 25, 10, calleSecundaria, directorFavorable);


            // Instancie una DenunciasPorTablero y hágala observadora de los lugares A, B, C, D, E y F.
            DenunciasPorTablero denunciasPorTablero = new DenunciasPorTablero();

            A.agregarObservador(denunciasPorTablero);
            B.agregarObservador(denunciasPorTablero);
            C.agregarObservador(denunciasPorTablero);
            D.agregarObservador(denunciasPorTablero);
            E.agregarObservador(denunciasPorTablero);
            F.agregarObservador(denunciasPorTablero);

            //Instancie una DenunciasPorWhatsapp y agréguele los lugares G, H e I
            MensajeWhatsapp mensajeswpp = null;

            // 3 denuncias de incendio
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeIncendio(G), mensajeswpp);
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeIncendio(H), mensajeswpp);
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeIncendio(I), mensajeswpp);
            // agregando denuncias 12 - chain
            // 2 denuncias de infarto
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeInfarto(new Transeunte(0.7, 0.7, 0.7)), mensajeswpp);
            InfartableAdapter passerby = new InfartableAdapter(new Passerby(0.7, 0.7, 0.7));

            mensajeswpp = new MensajeWhatsapp(new DenunciaDeInfarto(passerby), mensajeswpp);
            // 3 denuncias de robo
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeRobo(A), mensajeswpp);
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeRobo(C), mensajeswpp);
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeRobo(D), mensajeswpp);
            // 5 denuncias lamparas quemadas
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(G), mensajeswpp);
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Esquina(10)), mensajeswpp);
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(new Esquina(2)), mensajeswpp);
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(calleSecundaria), mensajeswpp);
            mensajeswpp = new MensajeWhatsapp(new DenunciaDeLamparaQuemada(callePrincipal), mensajeswpp);
            DenunciasPorWhatsapp denunciasPorWhatsapp = new DenunciasPorWhatsapp(mensajeswpp);

            // Instancie una DenunciasPorMostrador con el lugar J
            DenunciasPorMostrador denunciasPorMostrador = new DenunciasPorMostrador(new DenunciaDeIncendio(J));

            // Invoque al método chispa de los lugares B y F (para que se agreguen denuncias a la lista de DenunciasPorTablero).
            B.chispa();
            F.chispa();

            // PROBADNO FUNCIONAMIENTO
            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine("\n \n ---------------------------- \n  ATENDIENDO DENUNCIAS POR WHATSAPP! \n ---------------------------- \n ");
            Console.ForegroundColor = ConsoleColor.White;

            op.atenderDenuncias(denunciasPorWhatsapp);

            Console.WriteLine("\n ------------------------------- \n Presiona una tecla para cerrar");
            Console.ReadKey();
        }
예제 #5
0
 abstract public void apagarIncendio(ILugar lugar, Calle calle);