コード例 #1
0
        public void BombitaAgarraUnArticuloBombaToleToleYAniquilaACecilio()
        {
            Punto posInicio = new Punto(3, 0);
            Punto posInicioCecilio = new Punto(6, 2);
            Personaje unBombita = new Bombita(posInicio);
            Personaje unEnemigo = new Cecilio(posInicioCecilio);

            //Agrego articulo
            Punto posicionCasillaArt = new Punto(4, 0);
            Casilla CasillaConArticulo = unJuego.Ambiente.ObtenerCasilla(posicionCasillaArt);
            Articulo unArticulo = new ArticuloBombaToleTole();
            CasillaConArticulo.ArticuloContenido = unArticulo; //Pongo un articulo en el pasillo para agarrarlo con bombita.

            unJuego.Ambiente.AgregarPersonaje(unBombita);
            unJuego.Ambiente.AgregarPersonaje(unEnemigo);
            unJuego.AgregarEnemigo(unEnemigo);

            unBombita.Movimiento.CambiarADerecha();
            unBombita.Mover(); // 4,0, como articulo.
            unBombita.Movimiento.CambiarAArriba();
            unBombita.Mover(); // 4,1
            unBombita.Mover(); // 4,2
            unBombita.LanzarExplosivo();
            unBombita.Movimiento.CambiarAIzquierda();
            unBombita.Mover(); // 3,2
            unBombita.Mover(); // 2,2
            unEnemigo.Movimiento.CambiarAAbajo();
            unBombita.Mover(); // 2,1 bombita se oculta
            System.Threading.Thread.Sleep(5000);//Pasan 5 segundos
            unJuego.AvanzarElTiempo();

            Assert.IsTrue(unEnemigo.Destruido());
        }
コード例 #2
0
        public void CuandoEnOtroMapaAgrego2PersonajesEliminoAlUnicoEnemigoYSeActivaLaSalida()
        {
            // agrego articulo
            Tablero otroMapa = Juego.Instancia().Ambiente;
            Punto pUnaSalida = new Punto(3, 3);
            Punto pUnCecilio = new Punto(2, 1);
            Punto pUnaBombaMolotov = new Punto(2, 0);
            Punto pBombita = new Punto(4, 4);

            Casilla unaCasillaDeSalida = Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida);
            unaCasillaDeSalida.agregarSalida(Juego.Instancia().Salida);

            Cecilio unCecil = new Cecilio(pUnCecilio);
            Bombita unBombita = new Bombita(pBombita);
            BombaMolotov unaBomba = new BombaMolotov(pUnaBombaMolotov, 0);

            otroMapa.AgregarPersonaje(unBombita);
            otroMapa.AgregarPersonaje(unCecil);
            Juego.Instancia().EnemigosVivos.Add(unCecil);

            Casilla casillaBomba = otroMapa.ObtenerCasilla(pUnaBombaMolotov);
            Juego.Instancia().AlojarExplosivo(unaBomba);

            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();

            Assert.AreEqual(0, Juego.Instancia().CantidadEnemigosVivos());
            Assert.IsTrue(Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida).ArticuloContenido.EstaActivo );
        }
コード例 #3
0
        public void TransitarCasillaNoHaceQueUnPersonajeDeOtraClaseTransiteEsaCasilla()
        {
            Cecilio unCeci = new Cecilio(new Punto(7, 2));

            Casilla unaCas = Juego.Instancia().Ambiente.ObtenerCasilla(new Punto(7, 2));
            unaCas.Transitar(unCeci);
            Assert.IsFalse(unaCas.TransitaEnCasillaUn(new Bombita(new Punto(7, 2))));
        }
コード例 #4
0
        public void CuandoEnOtroMapaAgrego3PersonajesEliminoSoloUnEnemigoYNoSeActivaLaSalida()
        {
            // agrego articulo
            Tablero otroMapa = Juego.Instancia().Ambiente;
            Punto pUnaSalida = new Punto(3, 3);
            Punto pUnCecilio = new Punto(2, 1);
            Punto pUnaBombaMolotov = new Punto(2, 0);
            Punto pBombita = new Punto(4, 4);
            Punto pLopez = new Punto(4, 3);

            Casilla unaCasillaDeSalida = Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida);
            Salida salida = new Salida();
            unaCasillaDeSalida.agregarSalida(salida);

            Assert.IsInstanceOf(typeof(Salida), Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida).ArticuloContenido);

            Cecilio unCecil = new Cecilio(pUnCecilio);
            Bombita unBombita = new Bombita(pBombita);
            BombaMolotov unaBomba = new BombaMolotov(pUnaBombaMolotov, 0);
            LosLopezReggae lopez = new LosLopezReggae(pLopez);

            otroMapa.AgregarPersonaje(unBombita);
            otroMapa.AgregarPersonaje(unCecil);
            Juego.Instancia().EnemigosVivos.Add(unCecil);
            otroMapa.AgregarPersonaje(lopez);
            Juego.Instancia().EnemigosVivos.Add(lopez);

            Juego.Instancia().AlojarExplosivo(unaBomba);

            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();

            Assert.AreEqual(Juego.Instancia().CantidadEnemigosVivos(),1);
            Assert.IsFalse(Juego.Instancia().Ambiente.ObtenerCasilla(pUnaSalida).ArticuloContenido.EstaActivo);
        }
コード例 #5
0
        public void CecilioPlantaUnaBombaEnUnaCasillaTransitadaPorVariosEnemigosYEstosMuerenTodosPorElloNoHayNadieTransitandoDespues()
        {
            Punto puntoTransito = new Punto(5,0);
            Cecilio unCecilio = new Cecilio(puntoTransito);
            Cecilio otroCecilio = new Cecilio(puntoTransito);
            Cecilio Cecilio = new Cecilio(puntoTransito);
            LosLopezReggaeAlado unLRA = new LosLopezReggaeAlado(puntoTransito);
            LosLopezReggaeAlado otroLRA = new LosLopezReggaeAlado(puntoTransito);
            LosLopezReggaeAlado LRA = new LosLopezReggaeAlado(puntoTransito);
            Casilla casillaTransitada = Juego.Instancia().Ambiente.ObtenerCasilla(puntoTransito);

            casillaTransitada.Transitar(unCecilio);
            casillaTransitada.Transitar(Cecilio);
            casillaTransitada.Transitar(otroCecilio);
            casillaTransitada.Transitar(unLRA);
            casillaTransitada.Transitar(LRA);
            casillaTransitada.Transitar(otroLRA);

            Assert.AreEqual(casillaTransitada.TransitandoEnCasilla.Count, 6);

            unCecilio.LanzarExplosivo();

            Assert.IsInstanceOf(typeof(BombaMolotov), casillaTransitada.Explosivo);
            System.Threading.Thread.Sleep(3000);
            this.unJuego.AvanzarElTiempo();
            this.unJuego.AvanzarElTiempo();
            this.unJuego.AvanzarElTiempo();

            Assert.IsTrue(unCecilio.Destruido());
            Assert.IsTrue(LRA.Destruido());
            Assert.IsTrue(otroCecilio.Destruido());
            Assert.IsTrue(Cecilio.Destruido());
            Assert.IsTrue(unLRA.Destruido());
            Assert.IsTrue(otroLRA.Destruido());

            Assert.AreEqual(casillaTransitada.TransitandoEnCasilla.Count, 0);
        }
コード例 #6
0
        public void CuandoGeneroUnMapaNuevoYElimino1EnemigoConToleToleRestaUnEnemigoVivo()
        {
            int cantEnemigos = this.unJuego.CantidadEnemigosVivos();
            Punto p = new Punto(2, 2);
            Personaje bombita = new Bombita(p);
            this.unJuego.Ambiente.AgregarPersonaje(bombita);
            Cecilio unCeci = new Cecilio(p);
            this.unJuego.AgregarEnemigo(unCeci);
            bombita.CambiarLanzadorAToleTole();
            bombita.LanzarExplosivo();
            bombita.Movimiento.CambiarADerecha();
            bombita.Mover();
            bombita.Mover();
            bombita.Movimiento.CambiarAAbajo();
            bombita.Mover();
            System.Threading.Thread.Sleep(5000);//Pasan 5 segundos
            this.unJuego.AvanzarElTiempo();
            this.unJuego.AvanzarElTiempo();
            this.unJuego.AvanzarElTiempo();
            this.unJuego.AvanzarElTiempo();
            this.unJuego.AvanzarElTiempo();

            Assert.AreEqual(this.unJuego.CantidadEnemigosVivos(), cantEnemigos);
        }
コード例 #7
0
        public void CuandoGeneroUnMapaNuevoYAgregoAUnEnemigoLaCantidadDeEnemigosAumentaAen1()
        {
            int enemigosVivos = this.unJuego.CantidadEnemigosVivos();
            Punto pCecilio = new Punto(0, 1);

            Cecilio unCecilio = new Cecilio(pCecilio);

            this.unJuego.AgregarEnemigo(unCecilio);

            Assert.AreEqual(this.unJuego.CantidadEnemigosVivos(), enemigosVivos+1);
        }
コード例 #8
0
        public void CuandoExplotaUnaBombaToleToleYTieneUnCasilleroAbajoConCecilioLoDestruye()
        {
            Punto posicionBomba = new Punto(2, 3);
            Punto posicionCecilio = new Punto(2, 2);
            Cecilio cecilio = new Cecilio(posicionCecilio);

            Casilla casillaCecilio = unMapa.ObtenerCasilla(posicionCecilio);
            Casilla casillaBomba = unMapa.ObtenerCasilla(posicionBomba);

            Bomba unaBomba = new BombaToleTole(posicionBomba, 0);
            casillaCecilio.Transitar(cecilio);

            casillaBomba.PlantarExplosivo(unaBomba);
            unaBomba.Explotar();
            Assert.AreEqual(cecilio.UnidadesDeResistencia, 0);
        }
コード例 #9
0
ファイル: TestMapa.cs プロジェクト: hugo-chavar/bomber-algo-3
        public void CuandoCecilioSeParaArribaDeUnPasilloConTimerNOComeElItem()
        {
            Punto posDestino = new Punto(1, 1);
            Punto posOrigen = new Punto(0, 1);
            Casilla destino = FabricaDeCasillas.FabricarPasillo(posDestino);
            Casilla origen = FabricaDeCasillas.FabricarPasillo(posOrigen);
            Articulo unArticulo = new Timer();
            destino.ArticuloContenido = unArticulo;
            Personaje unEnemigo = new Cecilio(posOrigen);
            int retardo = 0;

            destino.Transitar(unEnemigo);

            Assert.AreEqual(retardo, unEnemigo.Lanzador.RetardoExplosion);
        }
コード例 #10
0
        public void CuandoBombmitaPlantaUnaToleToleDestruyendoATodosLosPersonajesYObstaculosDentroDeSuAlcancePeroNoLosQueEstanAtrasDeUnBloque()
        {
            Punto pBombita = new Punto(1, 0);
            Punto pLopezReggae = new Punto(1, 2);
            Punto pLopezReggaeAlado = new Punto(2, 0);
            Punto pCecil = new Punto(1, 3);

            Punto pBloqueAcero = new Punto(1, 1);

            Bombita bombita = new Bombita(pBombita);
            Cecilio unCecil = new Cecilio(pCecil);
            LosLopezReggae lRG = new LosLopezReggae(pLopezReggae);
            LosLopezReggaeAlado lRGA = new LosLopezReggaeAlado(pLopezReggaeAlado);

            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(lRG);
            Juego.Instancia().Ambiente.AgregarPersonaje(lRGA);
            Juego.Instancia().Ambiente.AgregarPersonaje(unCecil);

            bombita.CambiarLanzadorAToleTole();
            bombita.LanzarExplosivo();

            System.Threading.Thread.Sleep(5000);//Pasan 5 segundos
            unJuego.AvanzarElTiempo();

            Assert.IsFalse(unCecil.Destruido());
            Assert.IsTrue(bombita.Destruido());
            Assert.IsTrue(lRGA.Destruido());
            Assert.IsFalse(lRG.Destruido());
            Assert.IsInstanceOf(typeof(Pasillo), Juego.Instancia().Ambiente.ObtenerCasilla(pBloqueAcero).Estado);
        }
コード例 #11
0
ファイル: TestMapa.cs プロジェクト: hugo-chavar/bomber-algo-3
        public void CuandoCecilioSeParaArribaDeUnPasilloConArticuloBombaToleToleNOComeElItem()
        {
            Punto posDestino = new Punto(1, 1);
            Punto posOrigen = new Punto(0, 1);
            Casilla destino = FabricaDeCasillas.FabricarPasillo(posDestino);
            Casilla origen = FabricaDeCasillas.FabricarPasillo(posOrigen);
            Articulo unArticulo = new ArticuloBombaToleTole();
            destino.ArticuloContenido = unArticulo;
            Personaje unEnemigo = new Cecilio(posOrigen);

            destino.Transitar(unEnemigo);

            Assert.IsInstanceOf(typeof(LanzadorMolotov), unEnemigo.Lanzador);
        }
コード例 #12
0
ファイル: TestMapa.cs プロジェクト: hugo-chavar/bomber-algo-3
 public void AgregarUnMovilConPosicionFueraDeRangoLanzaPuntoFueraDeRangoEnMapaException()
 {
     pos = new Punto(ANCHOMAPA + 1, ALTOMAPA - 1);
     IMovible movil = new Cecilio(pos);
     try
     {
         otroMapa.AgregarPersonaje(movil);
         Assert.Fail();
     }
     catch (PuntoFueraDeRangoEnMapaException)
     {
         Assert.Pass("Exception correcta fue lanzada.");
     }
     catch (System.Exception)
     {
         Assert.Fail();
     }
 }
コード例 #13
0
        public void CuandoCecilioPlantaUnaMolotovDestruyendoABombitaYSafa()
        {
            Punto pBombita = new Punto(0, 0);
            Punto pCecil = new Punto(0, 1);

            Bombita bombita = new Bombita(pBombita);
            Cecilio unCecil = new Cecilio(pCecil);
            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(unCecil);

            unCecil.LanzarExplosivo();
            unCecil.Movimiento.CambiarAAbajo();
            unCecil.Mover();
            unCecil.Movimiento.CambiarADerecha();
            unCecil.Mover();

            //escapa Cecilio antes de que explote
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();

            Assert.IsFalse(unCecil.Destruido());
            Assert.IsTrue(bombita.Destruido());
        }
コード例 #14
0
        public void CuandoCecilioPlantaUnaMolotovDestruyendoABombitaYASiMismo()
        {
            Punto pBombita = new Punto(1, 0);
            Punto pCecil = new Punto(0, 0);

            Bombita bombita = new Bombita(pBombita);
            Cecilio unCecil = new Cecilio(pCecil);
            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(unCecil);

            unCecil.LanzarExplosivo();
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();

            Assert.IsTrue(unCecil.Destruido());
            Assert.IsTrue(bombita.Destruido());
        }
コード例 #15
0
        public void CuandoBombmitaPlantaUnaToleToleYNoDestruyeACecilioUbicadoDetrasDeUnBloqueDeAcero()
        {
            Punto pBombita = new Punto(1, 0);
            Punto pCecil = new Punto(1, 2);         //Cecil ubicado detras del bloque
            Punto pBloqueAcero = new Punto(1, 1);

            Bombita bombita = new Bombita(pBombita);
            Cecilio unCecil = new Cecilio(pCecil);
            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(unCecil);
            bombita.CambiarLanzadorAToleTole();
            bombita.LanzarExplosivo();
            System.Threading.Thread.Sleep(5000);//Pasan 5 segundos
            unJuego.AvanzarElTiempo();

            Assert.IsFalse(unCecil.Destruido());
            Assert.IsTrue(bombita.Destruido());
            Assert.IsInstanceOf(typeof(Pasillo), Juego.Instancia().Ambiente.ObtenerCasilla(pBloqueAcero).Estado);
        }
コード例 #16
0
ファイル: TestMapa.cs プロジェクト: hugo-chavar/bomber-algo-3
        public void CuandoCecilioSeParaArribaDeUnPasilloConChalaNOComeElItem()
        {
            Punto posDestino = new Punto(1, 1);
            Punto posOrigen = new Punto(0, 1);
            Casilla destino = FabricaDeCasillas.FabricarPasillo(posDestino);
            Casilla origen = FabricaDeCasillas.FabricarPasillo(posOrigen);
            Articulo unArticulo = new Chala();
            destino.ArticuloContenido = unArticulo;
            Personaje unEnemigo = new Cecilio(posOrigen);
            float velocidad = unEnemigo.Movimiento.Velocidad;

            destino.Transitar(unEnemigo);

            Assert.AreEqual(velocidad, unEnemigo.Movimiento.Velocidad);
        }
コード例 #17
0
 public void ProyectilNoImpactaACecilioYAlPasarTresTiemposExplotaYLoDania()
 {
     Personaje personaje = new LosLopezReggae(new Punto(6, 0));
     Personaje cecilio = new Cecilio(new Punto(4, 0));
     Juego.Instancia().Ambiente.AgregarPersonaje(personaje);
     Juego.Instancia().Ambiente.AgregarPersonaje(cecilio);
     int vida = cecilio.UnidadesDeResistencia;
     personaje.Movimiento.CambiarAIzquierda();
     personaje.LanzarExplosivo();
     System.Threading.Thread.Sleep(300);
     this.unJuego.AvanzarElTiempo();
     System.Threading.Thread.Sleep(300);
     this.unJuego.AvanzarElTiempo();
     System.Threading.Thread.Sleep(300);
     this.unJuego.AvanzarElTiempo();
     Assert.AreEqual(cecilio.UnidadesDeResistencia, vida - 1);
 }