コード例 #1
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 );
        }
コード例 #2
0
        public void AgarroUnArticuloBombaToleToleConBombitaYDestruyoUnBloqueDeAcero()
        {
            Punto posInicio = new Punto(0, 0);
            Personaje unBombita = new Bombita(posInicio);

            //Agrego articulo

            Punto posicionCasillaArt = new Punto(1, 0);
            Casilla CasillaConArticulo = this.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);

            unBombita.Movimiento.CambiarADerecha();
            unBombita.Mover(); // 1,0, como articulo.
            unBombita.LanzarExplosivo(); // lanzo tole tole
            unBombita.Movimiento.CambiarAIzquierda();
            unBombita.Mover(); // 0,0
            unBombita.Movimiento.CambiarAArriba();
            unBombita.Mover(); // 0,1.

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

            unBombita.Movimiento.CambiarADerecha();
            unBombita.Mover(); // 1,1

            Punto puntoFinal = new Punto(1, 1);

            Assert.AreEqual(puntoFinal.X, unBombita.Posicion.X);
            Assert.AreEqual(puntoFinal.Y, unBombita.Posicion.Y);
        }
コード例 #3
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());
        }
コード例 #4
0
 public void BombitaPlantaUnaMolotovSeMueveFueraDeSuAlcanceAgarraArticuloYLuegoDeQueLaBombaExplotaVuelveYPlantaUnaToleTole()
 {
     Punto PosicionDePlantado = new Punto(8, 2);
     Bombita bombita = new Bombita(PosicionDePlantado);
     Casilla unaCasilla = this.unJuego.Ambiente.ObtenerCasilla(PosicionDePlantado);
     Casilla casillaBloqueConArticulo = this.unJuego.Ambiente.ObtenerCasilla(new Punto(7, 2));
     unaCasilla.Transitar(bombita);
     bombita.LanzarExplosivo();
     bombita.Movimiento.CambiarADerecha();
     bombita.Mover();
     bombita.Mover();
     bombita.Movimiento.CambiarAArriba();
     bombita.Mover();
     System.Threading.Thread.Sleep(3000);
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     bombita.Movimiento.CambiarAAbajo();
     bombita.Mover();
     bombita.Movimiento.CambiarAIzquierda();
     bombita.Mover();
     bombita.Mover();
     bombita.Mover(); //come articulo BombaToleToe
     bombita.LanzarExplosivo();
     Assert.IsInstanceOf(typeof(BombaToleTole), this.unJuego.Ambiente.ObtenerCasilla(new Punto(7, 2)).Explosivo);
     Assert.IsFalse(bombita.Destruido());
 }
コード例 #5
0
        public void TransitarCasillaHaceQueUnPersonajeDeLaMismaClaseTransiteEsaCasilla()
        {
            Personaje unBombita = new Bombita(new Punto(0, 0));

            Casilla unaCas = Juego.Instancia().Ambiente.ObtenerCasilla(new Punto(0, 0));
            unaCas.Transitar(unBombita);

            Assert.IsTrue(unaCas.TransitaEnCasillaUn(new Bombita(new Punto(0, 0))));
        }
コード例 #6
0
        public void AlLanzarUnaBombaLaDebeAgregarEnListaDeLosQueEsperanParaExplotar()
        {
            Punto posicionBombita1 = new Punto(3, 0);
            int cantDependeTiempo = Juego.Instancia().DependientesDelTiempo.Count;
            Bombita movil = new Bombita(posicionBombita1);

            Casilla casillaBomba1 = Juego.Instancia().Ambiente.ObtenerCasilla(posicionBombita1);
            casillaBomba1.Transitar(movil);

            movil.LanzarExplosivo();
            movil.LanzarExplosivo();
            movil.LanzarExplosivo();
            movil.LanzarExplosivo();
            movil.LanzarExplosivo();

            Assert.AreEqual((cantDependeTiempo+1), Juego.Instancia().DependientesDelTiempo.Count);
        }
コード例 #7
0
 public void BombitaAvanzaPorTodoElMapaYNoCambiaDePosCuandoChocaConElLimiteDerechoDelMapa()
 {
     IMovible otroMovil = new Bombita(new Punto(10, 1));
     this.unMapa.AgregarPersonaje(otroMovil);
     otroMovil.Movimiento.CambiarAAbajo();
     otroMovil.Mover();//fue a 10,0
     otroMovil.Movimiento.CambiarADerecha();
     otroMovil.Mover();//fue a 11,0
     otroMovil.Mover();//fue a 12,0
     otroMovil.Mover();//fue a 13,0
     otroMovil.Mover();//fue a 14,0
     otroMovil.Mover();//fue a 15,0
     otroMovil.Mover();//fue a 16,0, esta en el limite!
     otroMovil.Mover(); //choca con el limite
     Punto posFinal = new Punto(ANCHOMAPA -1, 0);
     Assert.IsTrue(otroMovil.Posicion.Equals(posFinal));
 }
コード例 #8
0
 public void BombitaPlantaUnaMolotovSeMueveFueraDeSuAlcanceYLuegoDeQueLaBombaExplotaVuelveYPlantaOtraMolotov()
 {
     Punto PosicionDePlantado=new Punto(7,0);
     Bombita bombita = new Bombita(PosicionDePlantado);
     this.unJuego.Ambiente.ObtenerCasilla(PosicionDePlantado).Transitar(bombita);
     bombita.LanzarExplosivo();
     bombita.Movimiento.CambiarADerecha();
     bombita.Mover();
     bombita.Movimiento.CambiarAArriba();
     bombita.Mover();
     System.Threading.Thread.Sleep(3000);
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     bombita.Movimiento.CambiarAAbajo();
     bombita.Mover();
     bombita.Movimiento.CambiarAIzquierda();
     bombita.Mover();
     bombita.LanzarExplosivo();
     Assert.IsInstanceOf( typeof(BombaMolotov),Juego.Instancia().Ambiente.ObtenerCasilla(PosicionDePlantado).Explosivo);
 }
コード例 #9
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);
        }
コード例 #10
0
        public void ExplotoUnObstaculoQueContieneUnArticuloBombaToleToleYLuegoLoComeBombita()
        {
            Punto posInicio = new Punto(14,7);
            //Posision del articulo Bomba ToleTole (14,8)
            Personaje unBombita = new Bombita(posInicio);

            //Muevo a bombita para dejarlo cerca de un Bloque y explotarlo.
            this.unJuego.Ambiente.AgregarPersonaje(unBombita);

            unBombita.LanzarExplosivo();
            //Pongo a bombita lejos de la explosion
            unBombita.Movimiento.CambiarAAbajo();
            unBombita.Mover();//fue a 14,6
            unBombita.Movimiento.CambiarADerecha();
            unBombita.Mover();//fue a 15,6
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            unBombita.Movimiento.CambiarAIzquierda();
            unBombita.Mover(); //fue a 14,6
            unBombita.Movimiento.CambiarAArriba();
            unBombita.Mover(); //fue a 14,7
            unBombita.Mover(); //fue a 14,8 come el item

            Assert.IsInstanceOf(typeof(LanzadorToleTole), unBombita.Lanzador);
        }
コード例 #11
0
ファイル: TestMapa.cs プロジェクト: hugo-chavar/bomber-algo-3
        public void CuandoBombitaSeParaArribaDeUnPasilloConTimerOcultoNOComeElItem()
        {
            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();
            unArticulo.EstaOculto = true;
            destino.ArticuloContenido = unArticulo;
            Personaje unBombita = new Bombita(posOrigen);
            int retardo = 0;

            destino.Transitar(unBombita);

            Assert.AreEqual(retardo, unBombita.Lanzador.RetardoExplosion);
        }
コード例 #12
0
        public void ExplotoUnObstaculoQueContieneUnTimerYLuegoLoComeBombita()
        {
            Punto posInicio = new Punto(12, 6);
            Personaje unBombita = new Bombita(posInicio);

            //Muevo a bombita para dejarlo cerca de un Bloque y explotarlo.
            this.unJuego.Ambiente.AgregarPersonaje(unBombita);
            float velocidad = unBombita.Movimiento.Velocidad;

            unBombita.Movimiento.CambiarAIzquierda();

            unBombita.LanzarExplosivo();

            //Pongo a bombita lejos de la explosion

            unBombita.Movimiento.CambiarADerecha();
            unBombita.Mover(); //fue a 13,6
            unBombita.Mover();//fue a 14,6
            unBombita.Movimiento.CambiarAArriba();
            unBombita.Mover();//fue a 14,7

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

            unBombita.Movimiento.CambiarAAbajo();
            unBombita.Mover(); //fue a 14,6
            unBombita.Movimiento.CambiarAIzquierda();
            unBombita.Mover(); //fue a 13,6
            unBombita.Mover();//fue a 12,6
            unBombita.Mover();// come timer en 11,6.

            Assert.AreEqual(15, unBombita.Lanzador.RetardoExplosion);
        }
コード例 #13
0
 public void BombitaNoCambiaDePosCuandoChocaConElLimiteInferiorDelMapa()
 {
     IMovible otroMovil = new Bombita(new Punto(3, 0));
     Punto posOriginal = otroMovil.Posicion.Clonar();
     this.unMapa.AgregarPersonaje(otroMovil);
     otroMovil.Movimiento.CambiarAAbajo();
     otroMovil.Mover(); //choca con el limite inferior
     Assert.IsTrue(otroMovil.Posicion.Equals(posOriginal));
 }
コード例 #14
0
 public void UnMovilDespuesDeMoverseEnDireccionAUnObstaculoSuPosicionEsIgualALaOriginal()
 {
     IMovible otroMovil = new Bombita(new Punto(1, 0));
     Punto posOriginal = otroMovil.Posicion.Clonar();
     this.unMapa.AgregarPersonaje(otroMovil);
     otroMovil.Movimiento.CambiarAArriba();
     otroMovil.Mover();
     Assert.IsTrue(posOriginal.Equals(otroMovil.Posicion));
 }
コード例 #15
0
 public void UnMovilDespuesDeMoverseEnDireccionAUnPasilloSuPosicionNoEsIgualALaOriginal()
 {
     IMovible otroMovil = new Bombita(new Punto(0, 0));
     Punto posOriginal = otroMovil.Posicion.Clonar();
     this.unMapa.AgregarPersonaje(otroMovil);
     otroMovil.Movimiento.CambiarADerecha();
     otroMovil.Mover();
     Assert.IsFalse(posOriginal.Equals(otroMovil.Posicion));
 }
コード例 #16
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);
        }
コード例 #17
0
        public void BombitaAgarraUnArticuloBombaToleToleYAniquilaALosLopezReggae()
        {
            Punto posInicio = new Punto(0, 0);
            Punto posLR = new Punto(0, 1);

            Personaje unBombita = new Bombita(posInicio);
            Personaje unEnemigo = new LosLopezReggae(posLR);

            //Agrego articulo
            Punto posicionCasillaArt = new Punto(1, 0);
            Casilla CasillaConArticulo = this.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);

            unBombita.Movimiento.CambiarADerecha();
            unBombita.Mover(); // 1,0, como articulo.
            Assert.IsInstanceOf(typeof(Bombita), Juego.Instancia().Ambiente.ObtenerCasilla(posicionCasillaArt).TransitandoEnCasilla[0]);
            Assert.IsInstanceOf(typeof(LanzadorToleTole), unBombita.Lanzador);

            unBombita.Movimiento.CambiarAIzquierda();
            unBombita.Mover(); // 0,0

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

            Assert.IsTrue(unEnemigo.Destruido());
        }
コード例 #18
0
 public void TestSetup()
 {
     pos = new Punto(3, 4);
     c = FabricaDeCasillas.FabricarPasillo(pos);
     unBombita = new Bombita(pos);
 }
コード例 #19
0
        public void ExplotoUnObstaculoQueContieneUnaChalaYLuegoLoComeBombita()
        {
            int AnchoYLargo = 5;

            Tablero unMapa = new Tablero(AnchoYLargo, AnchoYLargo);
            Punto posInicio = new Punto(0, 0);
            Punto posFinal = new Punto(1, 1);
            Personaje unBombita = new Bombita(posInicio);

            //Pongo un BombaToleTole en el pasillo para agarrarlo con bombita y poder romper el bloque de acero donde esta la Chala
            Punto posicionCasillaArt = new Punto(0, 1);
            Casilla CasillaConArticulo = Juego.Instancia().Ambiente.ObtenerCasilla(posicionCasillaArt);
            Articulo unArticulo = new ArticuloBombaToleTole();
            CasillaConArticulo.ArticuloContenido = unArticulo;

            //Agrego articulo
            posicionCasillaArt = new Punto(1, 1);
            CasillaConArticulo = this.unJuego.Ambiente.ObtenerCasilla(posicionCasillaArt);
            unArticulo = new Chala();
            CasillaConArticulo.agregarArticulo(unArticulo);

            //Muevo a bombita para dejarlo cerca de un Bloque y explotarlo.
            this.unJuego.Ambiente.AgregarPersonaje(unBombita);
            float velocidad = unBombita.Movimiento.Velocidad;

            unBombita.Movimiento.CambiarAArriba();
            unBombita.Mover();//fue a 0,1
            unBombita.LanzarExplosivo();

            //Pongo a bombita lejos de la explosion
            unBombita.Movimiento.CambiarAAbajo();
            unBombita.Mover();//fue a 0,0
            unBombita.Movimiento.CambiarADerecha();
            unBombita.Mover(); //fue a 0,1

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

            unBombita.Movimiento.CambiarAArriba();
            unBombita.Mover(); //fue a 1,1; come item.

            Assert.AreEqual(2 * velocidad, unBombita.Movimiento.Velocidad);
        }
コード例 #20
0
 public void obstaculoDeLadrilloNoEsTransitablePorUnPersonajeNoAlado()
 {
     Punto unPunto = new Punto(0, 0);
     Personaje unPersonaje = new Bombita(unPunto);
     Assert.IsFalse(obstaculoLadrillo.TransitablePor(unPersonaje));
 }
コード例 #21
0
ファイル: TestMapa.cs プロジェクト: hugo-chavar/bomber-algo-3
        public void CuandoBombitaSeParaArribaDeUnPasilloConTimerComeElItemYLoOculta()
        {
            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 unBombita = new Bombita(posOrigen);

            destino.Transitar(unBombita);

            Assert.IsTrue(destino.ArticuloContenido.EstaOculto);
        }
コード例 #22
0
ファイル: TestMapa.cs プロジェクト: hugo-chavar/bomber-algo-3
        public void CuandoBombitaSeParaArribaDeUnPasilloConChalaOcultaNOComeElItem()
        {
            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();
            unArticulo.EstaOculto = true;
            destino.ArticuloContenido = unArticulo;
            Personaje unBombita = new Bombita(posOrigen);
            float velocidad = unBombita.Movimiento.Velocidad;

            destino.Transitar(unBombita);

            Assert.AreEqual(velocidad, unBombita.Movimiento.Velocidad);
        }
コード例 #23
0
ファイル: TestMapa.cs プロジェクト: hugo-chavar/bomber-algo-3
        public void CuandoBombitaSeParaArribaDeUnPasilloConArticuloBombaToleToleOcultoNOComeElItem()
        {
            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();
            unArticulo.EstaOculto = true;
            destino.ArticuloContenido = unArticulo;
            Personaje unBombita = new Bombita(posOrigen);

            destino.Transitar(unBombita);

            Assert.IsInstanceOf(typeof(LanzadorMolotov), unBombita.Lanzador);
        }
コード例 #24
0
ファイル: TestMapa.cs プロジェクト: hugo-chavar/bomber-algo-3
        public void CuandoBombitaSeParaArribaDeUnPasilloConArticuloBombaToleToleComeElItemYLoModificaCorrectamente()
        {
            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 unBombita = new Bombita(posOrigen);

            destino.Transitar(unBombita);

            Assert.IsInstanceOf(typeof(LanzadorToleTole), unBombita.Lanzador);
        }
コード例 #25
0
 public void BombitaPlantaUnaMolotovSeMueveFueraDeSuAlcanceYNoEsDaniadoPorLaBomba()
 {
     Punto PosicionDePlantado = new Punto(1,0);
     Bombita bombita = new Bombita(PosicionDePlantado);
     this.unJuego.Ambiente.ObtenerCasilla(PosicionDePlantado).Transitar(bombita);
     bombita.LanzarExplosivo();
     bombita.Movimiento.CambiarAIzquierda();
     bombita.Mover();
     bombita.Movimiento.CambiarAArriba();
     bombita.Mover();
     System.Threading.Thread.Sleep(3000);
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     this.unJuego.AvanzarElTiempo();
     Assert.IsFalse(bombita.Destruido());
 }
コード例 #26
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());
        }
コード例 #27
0
 public void noEsTransitablePorUnPersonajeNoAlado()
 {
     Punto unPunto = new Punto(0, 0);
     Personaje unPersonaje = new Bombita(unPunto);
     Assert.IsFalse(this.unObstaculo.TransitablePor(unPersonaje));
 }
コード例 #28
0
        public void CuandoLopezReggaePlantaUnaMolotovDestruyendoABombitaYSafa()
        {
            Punto pBombita = new Punto(1, 0);
            Punto pReggaeAlado = new Punto(0, 0);

            Bombita bombita = new Bombita(pBombita);
            LosLopezReggaeAlado lRA = new LosLopezReggaeAlado(pReggaeAlado);
            Juego.Instancia().Ambiente.AgregarPersonaje(bombita);
            Juego.Instancia().Ambiente.AgregarPersonaje(lRA);

            lRA.LanzarExplosivo();
            lRA.Movimiento.CambiarAArriba();
            lRA.Mover();
            lRA.Mover();
            lRA.Mover();
            lRA.Mover();
            System.Threading.Thread.Sleep(3000);
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            Juego.Instancia().AvanzarElTiempo();
            //escapa el alado

            Assert.IsFalse(lRA.Destruido());
            Assert.IsTrue(bombita.Destruido());
        }
コード例 #29
0
 public void esTransitablePorUnPersonaje()
 {
     Personaje unPersonaje = new Bombita(unaPosicion);
     Assert.IsTrue(this.unaCasillaVacia.PermiteTransitarUn(unPersonaje));
 }
コード例 #30
0
        public Tablero ContinuarPartidaGuardada(string pathName)
        {
            Casilla casillaActual = null;
            Punto posActual = null;
            Tablero tableroNuevo = new Tablero();
            try
            {

                StreamReader lector = new StreamReader(pathName);
                //Uso reflection a full
                String xmlString = lector.ReadToEnd();

                Type tipo;
                int res;
                XmlReaderSettings settings = new XmlReaderSettings();
                settings.IgnoreWhitespace = true;

                using (XmlReader reader = XmlReader.Create(new StringReader(xmlString), settings))
                {
                    //leo el inicio del mapa
                    while (reader.Read())
                    {
                        switch (reader.NodeType)
                        {
                            case XmlNodeType.Element:
                                //Es el tablero
                                if (reader.Name == "Tablero")
                                {
                                    tipo = Type.GetType("BombermanModel.Mapa." + reader.Name);
                                    tableroNuevo = Activator.CreateInstance(tipo) as Tablero;
                                    if (reader.HasAttributes) //deberia entrar, tiene 2 attr
                                    {
                                        tableroNuevo.DimensionHorizontal = Convert.ToInt32(reader.GetAttribute("ancho"));
                                        tableroNuevo.DimensionVertical = Convert.ToInt32(reader.GetAttribute("alto"));
                                        tableroNuevo.NroNivel = Convert.ToInt32(reader.GetAttribute("nivel"));
                                        tableroNuevo.StageName = reader.GetAttribute("mapa");
                                        if (reader.AttributeCount > 4)
                                        {
                                            elJuego.CantDeVidas = Convert.ToInt32(reader.GetAttribute("vidas"));
                                        }
                                    }
                                    elJuego.Ambiente = tableroNuevo;
                                }
                                else
                                {
                                    //es una casilla
                                    if (reader.Name == "Casilla")
                                    {
                                        int x, y;
                                        //leo coordenadas x e y
                                        x = Convert.ToInt32(reader.GetAttribute("x"));
                                        y = Convert.ToInt32(reader.GetAttribute("y"));
                                        if (reader.IsEmptyElement)
                                        {
                                            casillaActual = FabricaDeCasillas.FabricarPasillo(new Punto(x, y));
                                            tableroNuevo.AgregarCasilla(casillaActual);
                                        }
                                        else
                                        {
                                            posActual = new Punto(x, y);
                                        }
                                    }
                                    else
                                    {

                                        //es algun obstaculo
                                        if ((reader.Name.Length >= 6) && (reader.Name.Substring(0, 6).Equals("Bloque")))
                                        {
                                            res = Convert.ToInt32(reader.GetAttribute("resistencia"));
                                            switch (reader.Name)
                                            {
                                                case "BloqueLadrillo":
                                                    casillaActual = FabricaDeCasillas.FabricarCasillaConBloqueLadrillos(posActual);
                                                    break;
                                                case "BloqueCemento":
                                                    casillaActual = FabricaDeCasillas.FabricarCasillaConBloqueCemento(posActual);
                                                    break;
                                                case "BloqueAcero":
                                                    casillaActual = FabricaDeCasillas.FabricarCasillaConBloqueAcero(posActual);
                                                    break;
                                            }
                                            casillaActual.Estado.UnidadesDeResistencia = res;

                                            tableroNuevo.AgregarCasilla(casillaActual);

                                        }
                                        else //es un personaje o un articulo
                                        {
                                            if (!tableroNuevo.ExisteCasillaEnPosicion(posActual))
                                            {
                                                casillaActual = FabricaDeCasillas.FabricarPasillo(posActual);
                                                tableroNuevo.AgregarCasilla(casillaActual);
                                            }

                                            if (reader.HasAttributes) //es personaje
                                            {
                                                int vel = Convert.ToInt32(reader.GetAttribute("velocidad"));
                                                res = Convert.ToInt32(reader.GetAttribute("resistencia"));
                                                Personaje.Personaje p = null;
                                                if (reader.Name == "Bombita")
                                                {

                                                    p = new Bombita(posActual);
                                                    if (reader.AttributeCount > 2) //si el lanzador se guardo en el mapa
                                                    {
                                                        string lanz = reader.GetAttribute("lanzador");
                                                        tipo = Type.GetType("BombermanModel.Arma." + lanz);
                                                        Arma.Lanzador l = Activator.CreateInstance(tipo) as Arma.Lanzador;
                                                        p.Lanzador = l;
                                                    }
                                                    casillaActual.Transitar(p);
                                                    elJuego.Protagonista = p;
                                                    tableroNuevo.PosicionInicial = posActual;
                                                }
                                                else //es algun enemigo
                                                {
                                                    tipo = Type.GetType("BombermanModel.Personaje." + reader.Name);
                                                    p = Activator.CreateInstance(tipo, new object[] { posActual }) as Personaje.Personaje;
                                                    elJuego.AgregarEnemigo(p);
                                                }

                                                p.Movimiento.Velocidad = vel;
                                                p.UnidadesDeResistencia = res;
                                            }
                                            else //es articulo
                                            {
                                                tipo = Type.GetType("BombermanModel.Articulo." + reader.Name);
                                                Articulo.Articulo a = Activator.CreateInstance(tipo) as Articulo.Articulo;
                                                casillaActual.ArticuloContenido = a;
                                                if (reader.Name == "Salida")
                                                    elJuego.Salida = (Articulo.Salida)a;
                                            }
                                        }
                                    }
                                }
                                break;
                        }

                    }

                    return tableroNuevo;

                }
            }
            catch (FileNotFoundException)
            {
                throw new BombermanModel.Excepciones.NoExisteMapaArchivoException("No pudo abrirse el archivo " + pathName);
            }
            catch (Exception)
            {
                throw new BombermanModel.Excepciones.FormatoMapaXMLInvalidoException("Archivo de mapa " + pathName+" tiene formato invalido" );
            }
        }