public void BombitaAgarreUnBombaToleToleYCambieElTipoDeBombaQueLanza()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0)
            BombaToleTole articulo = new BombaToleTole();
            tablero.AgregarEntidadEnCasillero(articulo, 0, 1);

            bombita.MoverAbajo();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();

            bombita.Bomba.CuandoPaseElTiempo(1);
            Assert.IsInstanceOf<Molotov>(bombita.Bomba);

            bombita.MoverArriba();
            bombita.MoverArriba();
            bombita.MoverDerecha();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();
            bombita.Bomba.CuandoPaseElTiempo(10);
            Assert.IsTrue(bombita.Bomba.FueDestruido());
            Assert.IsInstanceOf<ToleTole>(bombita.Bomba);

            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();
            bombita.Bomba.CuandoPaseElTiempo(5);
            Assert.IsInstanceOf<ToleTole>(bombita.Bomba);
        }
        public void BombitaAgarreUnTimerYSusBombasTardenMasEnExplotar()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);// Arranca en (0,0)
            Timer articulo = new Timer();
            tablero.AgregarEntidadEnCasillero(articulo, 0, 1);

            bombita.MoverAbajo();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();

            bombita.Bomba.CuandoPaseElTiempo(1);
            Assert.IsTrue(bombita.Bomba.FueDestruido());

            bombita.MoverArriba();
            bombita.MoverArriba();
            Assert.AreEqual(0.85,bombita.PorcentajeDeRetardo);
            bombita.MoverDerecha();
            bombita.LanzarBomba();
            bombita.MoverDerecha();
            bombita.MoverAbajo();
            bombita.Bomba.CuandoPaseElTiempo(0.9);

            Assert.IsTrue(bombita.Bomba.FueDestruido());

            Assert.AreEqual(3, bombita.Vidas);
        }
        public void PruebaQueCuandoSeIntentaAccederAUnCasilleroFueraDeRangoLanceUnaExcepcion()
        {
            Tablero tablero = new Tablero();

            Casillero casillero;

            Assert.Throws<CasilleroFueraDeRangoException>(() => casillero = tablero.ObtenerCasillero(35, 1));
        }
        public void PruebaQueDevuelvaElCasilleroDeUnaPosicionDada()
        {
            Tablero tablero = new Tablero();

            Casillero casillero = tablero.ObtenerCasillero(1, 2);

            Assert.AreEqual(2, casillero.Columna);
            Assert.AreEqual(1, casillero.Fila);
        }
        public void PruebaAgregarUnaEntidadAUnaCasillaDelTableroYVerificarQueEstaVacioDevuelvaFalse()
        {
            Tablero tablero = new Tablero();
            BloqueDeAcero bloque = new BloqueDeAcero();
            tablero.AgregarEntidadEnCasillero(bloque, 0, 0);

            Assert.IsFalse(bloque.Posicion.EstaVacio());
            Assert.IsFalse(tablero.ObtenerCasillero(0, 0).EstaVacio());
        }
        public void PruebaObtenerLaCasillaPosicionadaArriba()
        {
            Tablero tablero = new Tablero();
            Casillero casilleroActual = tablero.ObtenerCasillero(1, 1);

            Casillero casilleroArriba = casilleroActual.ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(Entidad.NORTE, tablero);

            Assert.AreEqual(0, casilleroArriba.Fila);
            Assert.AreEqual(1, casilleroArriba.Columna);
        }
        public void PruebaObtenerLaCasillaPosicionadaALaIzquierda()
        {
            Tablero tablero = new Tablero();
            Casillero casilleroActual = tablero.ObtenerCasillero(1, 1);

            Casillero casilleroIzquierdo = casilleroActual.ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(Entidad.OESTE, tablero);

            Assert.AreEqual(1, casilleroIzquierdo.Fila);
            Assert.AreEqual(0, casilleroIzquierdo.Columna);
        }
        public void PruebaObtenerLaCasillaPosicionadaAbajo()
        {
            Tablero tablero = new Tablero();
            Casillero casilleroActual = tablero.ObtenerCasillero(1, 1);

            Casillero casilleroAbajo = casilleroActual.ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(Entidad.SUR, tablero);

            Assert.AreEqual(2, casilleroAbajo.Fila);
            Assert.AreEqual(1, casilleroAbajo.Columna);
        }
        public void CuandoSeMueveBombitaALaDerechaCambiaSuPosicionEnElTablero()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);

            bombita.MoverDerecha();

            Assert.AreEqual(1, bombita.Posicion.Columna);
            Assert.AreEqual(0, bombita.Posicion.Fila);
        }
        public void CuandoSeMueveCecilioALaDerechaCambiaSuPosicionEnElTablero()
        {
            Tablero tablero = new Tablero();
            Cecilio cecilio = new Cecilio();
            tablero.AgregarEntidadEnCasillero(cecilio, 0, 0);

            cecilio.MoverDerecha();

            Assert.AreEqual(1, cecilio.Posicion.Columna);
            Assert.AreEqual(0, cecilio.Posicion.Fila);
        }
示例#11
0
        public void CuandoSeMueveLopezRALaDerechaCambiaSuPosicionEnElTablero()
        {
            Tablero tablero = new Tablero();
            LopezR lopez = new LopezR();
            tablero.AgregarEntidadEnCasillero(lopez, 0, 0);

            lopez.MoverDerecha();

            Assert.AreEqual(1, lopez.Posicion.Columna);
            Assert.AreEqual(0, lopez.Posicion.Fila);
        }
        public void PruebaQueSeGuardeCorrectamenteLaPosicionDeBombita()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 5, 6);

            Casillero casillero = tablero.PosicionBombita;

            Assert.AreEqual(5, casillero.Fila);
            Assert.AreEqual(6, casillero.Columna);
        }
示例#13
0
        public void PruebaLaCreacionDeUnaSalidaEnUnaPosicionDeterminadaEnUnTablero()
        {
            Tablero tablero = new Tablero();
            Salida salida = new Salida();
            tablero.AgregarEntidadEnCasillero(salida, 5, 5);

            Assert.IsNotNull(salida);
            Assert.IsFalse(salida.FueDestruido());
            Assert.AreEqual(5, salida.Posicion.Fila);
            Assert.AreEqual(5, salida.Posicion.Columna);
        }
        public void PruebaQueSeGuardeCorrectamenteLaPosicionDeBombitaCuandoSeMueve()
        {
            Tablero tablero = new Tablero();
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 0, 0);

            bombita.MoverAbajo();
            Casillero casillero = tablero.PosicionBombita;

            Assert.AreEqual(1, casillero.Fila);
            Assert.AreEqual(0, casillero.Columna);
        }
示例#15
0
        public void PruebaQueUnaMolotovCuandoSeActivaYNoPasaTiempoNoEsteDestruida()
        {
            Tablero tablero = new Tablero();
            Molotov bomba = new Molotov();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(0);

            Assert.IsFalse(bomba.FueDestruido());
        }
示例#16
0
        public void PruebaQueUnaMolotovCuandoSeActivaSiSeQuiereVolverAExplotarLanceUnaExcepcion()
        {
            Tablero tablero = new Tablero();
            Molotov bomba = new Molotov();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(5);

            Assert.Throws<EntidadYaDestruidaException>(() => bomba.ActivarBomba());
        }
示例#17
0
        public void PruebaQueUnaMolotovCuandoSeActivaLuegoDeQuePaseUnTiempo1EsteDestruida()
        {
            Tablero tablero = new Tablero();
            Molotov bomba = new Molotov();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(1);

            Assert.IsTrue(bomba.FueDestruido());
        }
示例#18
0
        public void PruebaQueCuandoBombitaLoAgarrePaseDeNivel()
        {
            Tablero tablero = new Tablero();
            Salida salida = new Salida();
            tablero.AgregarEntidadEnCasillero(salida, 5, 5);
            Bombita bombita = new Bombita();
            tablero.AgregarEntidadEnCasillero(bombita, 6, 5);

            bombita.MoverArriba();

            Assert.AreEqual(2, tablero.NivelActual);
        }
示例#19
0
        public void PruebaQueUnaMolotovNoLoDestruya()
        {
            Tablero tablero = new Tablero();
            Salida salida = new Salida();
            tablero.AgregarEntidadEnCasillero(salida, 5, 5);
            Molotov bomba = new Molotov();
            tablero.AgregarEntidadEnCasillero(bomba, 5, 6);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(5);

            Assert.IsFalse(salida.FueDestruido());
        }
示例#20
0
        public void PruebaQueDaniarloNoLoDestruya()
        {
            Tablero tablero = new Tablero();
            Salida salida = new Salida();
            tablero.AgregarEntidadEnCasillero(salida, 5, 5);

            salida.DaniarConMolotov(new Molotov());
            Assert.IsFalse(salida.FueDestruido());

            salida.DaniarConProyectil(new Proyectil());
            Assert.IsFalse(salida.FueDestruido());

            salida.DaniarConToleTole(new ToleTole());
            Assert.IsFalse(salida.FueDestruido());
        }
示例#21
0
        public void PruebaQueUnaToleToleCuandoSeActivaLuegoDeQuePaseUnTiempo5EsteDestruida()
        {
            Tablero tablero = new Tablero();
            ToleTole bomba = new ToleTole();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(2);

            Assert.IsFalse(bomba.FueDestruido());

            bomba.CuandoPaseElTiempo(3);

            Assert.IsTrue(bomba.FueDestruido());
        }
示例#22
0
 // retorna la casilla adyacente en la direccion pasada
 public virtual Casillero ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(int[] direccion, Tablero tablero)
 {
     return (tablero.ObtenerCasillero(this.fila + direccion[0], this.columna + direccion[1]));
 }
示例#23
0
        public void IntentarMoverseAUnaPosicionInvalidaDejaALopezREnElLugarQueEstaba()
        {
            Tablero tablero = new Tablero();
            LopezR lopez = new LopezR();
            tablero.AgregarEntidadEnCasillero(lopez, 0, 0);

            lopez.MoverArriba();

            Assert.AreEqual(0, lopez.Posicion.Columna);
            Assert.AreEqual(0, lopez.Posicion.Fila);
        }
        public void IntentarMoverseAUnaPosicionInvalidaDejaACecilioEnElLugarQueEstaba()
        {
            Tablero tablero = new Tablero();
            Cecilio cecilio = new Cecilio();
            tablero.AgregarEntidadEnCasillero(cecilio, 0, 0);

            cecilio.MoverArriba();

            Assert.AreEqual(0, cecilio.Posicion.Columna);
            Assert.AreEqual(0, cecilio.Posicion.Fila);
        }
        public void QueCecilioLanceUnaBombaYSeDanieASiMismo()
        {
            Tablero tablero = new Tablero();
            Cecilio cecilio = new Cecilio();
            tablero.AgregarEntidadEnCasillero(cecilio, 0, 0);

            cecilio.LanzarBomba();
            cecilio.MoverAbajo();

            Bomba bomba = cecilio.Bomba;

            bomba.CuandoPaseElTiempo(5);

            Assert.IsTrue(cecilio.FueDestruido());
        }
示例#26
0
        public void PruebaQueUnProyectilCuandoSeActivaLuegoDeQuePaseUnTiempo0EsteDestruida()
        {
            Tablero tablero = new Tablero();
            Proyectil bomba = new Proyectil();
            tablero.AgregarEntidadEnCasillero(bomba, 0, 0);

            bomba.ActivarBomba();

            bomba.CuandoPaseElTiempo(0);

            Assert.IsTrue(bomba.FueDestruido());
        }
示例#27
0
        public void PruebaQueUnProyectilSoloPuedaMoverse4Casilleros()
        {
            Tablero tablero = new Tablero();
            Proyectil proyectil = new Proyectil();
            tablero.AgregarEntidadEnCasillero(proyectil, 0, 0);

            proyectil.MoverAbajo();
            proyectil.MoverAbajo();
            proyectil.MoverAbajo();
            proyectil.MoverAbajo();

            proyectil.CuandoPaseElTiempo(0);

            Assert.IsTrue(proyectil.FueDestruido());
        }
示例#28
0
 // retorna la instancia de tablero
 public static Tablero GetInstancia()
 {
     if (INSTANCIA == null)
         INSTANCIA = new Tablero();
     return (INSTANCIA);
 }
        public void QueUnBloqueDeCementoSeaDestruidoYDejeUnArticulo()
        {
            Tablero tablero = new Tablero();
            BloqueDeCemento bloque = new BloqueDeCemento();
            tablero.AgregarEntidadEnCasillero(bloque, 0, 0);
            Timer timer = new Timer();
            bloque.Articulo = timer;

            Assert.IsNull(timer.Posicion);

            bloque.DaniarConToleTole(new ToleTole());//Lo destruyo

            Assert.AreEqual(tablero.ObtenerCasillero(0, 0).Entidad, timer);
            Assert.AreEqual(0, timer.Posicion.Fila);
            Assert.AreEqual(0, timer.Posicion.Columna);
        }
示例#30
0
        public void PruebaQueUnProyectilPuedaMoverseAUnCasilleroVacio()
        {
            Tablero tablero = new Tablero();
            Proyectil proyectil = new Proyectil();
            tablero.AgregarEntidadEnCasillero(proyectil, 0, 0);

            Assert.Throws<CasilleroFueraDeRangoException>(() => proyectil.PuedeMoverseA(proyectil.Posicion.ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(Entidad.OESTE, tablero)));
            Assert.IsTrue(proyectil.PuedeMoverseA(proyectil.Posicion.ObtenerCasilleroAdyacenteEnLaDireccionYElTablero(Entidad.ESTE, tablero)));
        }