예제 #1
0
        public void PruebaLaCreacionDeUnTimer()
        {
            Timer articulo = new Timer();

            Assert.IsNotNull(articulo);
            Assert.IsFalse(articulo.FueDestruido());
        }
        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);
        }
예제 #3
0
        public void PruebaQueDaniarUnTimerConUnProyectilLoDestruya()
        {
            Timer articulo = new Timer();

            articulo.DaniarConProyectil(new Proyectil());

            Assert.IsTrue(articulo.FueDestruido());
        }
예제 #4
0
        public void PruebaQueDaniarUnTimerConUnaToleToleLoDestruya()
        {
            Timer articulo = new Timer();

            articulo.DaniarConToleTole(new ToleTole());

            Assert.IsTrue(articulo.FueDestruido());
        }
예제 #5
0
        public void PruebaQueDaniarUnTimerConUnaMolotovLoDestruya()
        {
            Timer articulo = new Timer();

            articulo.DaniarConMolotov(new Molotov());

            Assert.IsTrue(articulo.FueDestruido());
        }
예제 #6
0
        public void CuandoSeTrateDeDaniarUnTimerYaDestruidoLanceUnaExcepcion()
        {
            Timer articulo = new Timer();

            articulo.DaniarConMolotov(new Molotov());

            Assert.Throws<EntidadYaDestruidaException>(() => articulo.DaniarConMolotov(new Molotov()));
        }
예제 #7
0
        public void PruebaLaCreacionDeUnTimerEnUnaPosicionDeterminada()
        {
            Timer articulo = new Timer(new Casillero(4,6));

            Assert.IsNotNull(articulo);
            Assert.IsFalse(articulo.FueDestruido());
            Assert.AreEqual(4, articulo.Posicion.Fila);
            Assert.AreEqual(6, articulo.Posicion.Columna);
        }
예제 #8
0
        public void CuandoUnBombitaUtiliceUnTimerSusBombasTenganUnRetardoQuincePorcientoMenor()
        {
            Timer articulo = new Timer();
            Bombita bombita = new Bombita();
            double porcentajeInicial = bombita.PorcentajeDeRetardo;

            articulo.UtilizarArticuloEn(bombita);
            double porcentajeFinal = bombita.PorcentajeDeRetardo;

            Assert.AreEqual(porcentajeFinal, porcentajeInicial*0.85  );
        }
        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);
        }
예제 #10
0
        // Sortea el tipo de articulo a colocar en el casillero y lo agrega si corresponde.
        private void SortearArticuloEnCasillero(int i, int j)
        {
            if (random.Next(1, PROBABILIDAD_ARTICULO) == 1)
            {
                Obstaculo bloque = (Obstaculo)ObtenerCasillero(i, j).Entidad;
                switch (random.Next(1, 4))
                {
                    case 1:
                        Timer timer = new Timer();
                        bloque.Articulo = timer;
                        listaTimer.Add(timer);
                        timer.Posicion = ObtenerCasillero(i,j);
                        return;

                    case 2:
                        Habano habano = new Habano();
                        bloque.Articulo = habano;
                        listaHabano.Add(habano);
                        habano.Posicion = ObtenerCasillero(i, j);
                        return;

                    case 3:
                        BombaToleTole bombaToleTole = new BombaToleTole();
                        bloque.Articulo = bombaToleTole;
                        listaBombaToleTole.Add(bombaToleTole);
                        bombaToleTole.Posicion = ObtenerCasillero(i, j);
                        return;
                }

                //if(articulo != null)
                    //AgregarArticuloEnCasillero(articulo, i, j);
            }
        }
예제 #11
0
        public void PruebaQueCasilleroEstaVacioDevuelvaFalseCuandoTieneUnTimerAdentroCuandoSeLoPasoEnUnSetter()
        {
            Casillero casillero = new Casillero(5, 6);
            Timer timer = new Timer();
            casillero.Entidad = timer;

            Assert.IsFalse(casillero.EstaVacio());
            Assert.AreEqual(5, timer.Posicion.Fila);
            Assert.AreEqual(6, timer.Posicion.Columna);
        }
예제 #12
0
        public void PruebaQueCasilleroEstaVacioDevuelvaFalseCuandoTieneUnTimerAdentroCuandoLePasoLaPosicionDesdeTimer()
        {
            Casillero casillero = new Casillero(5, 4);
            Timer timer = new Timer(casillero);

            Assert.IsFalse(casillero.EstaVacio());
            Assert.AreEqual(5, timer.Posicion.Fila);
            Assert.AreEqual(4, timer.Posicion.Columna);
        }
        public void CreaUnTableroConBombitaYUnTimerYMueveABombitaHastaAgarrarlo()
        {
            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, 2);

            bombita.MoverDerecha();
            bombita.MoverDerecha();
            //Con un articulo, bombita debe agarrarlo y avanzar a su posicion. El articulo no debe estar mas en el tablero
            Assert.IsNull(articulo.Posicion);
            Assert.AreEqual(0, bombita.Posicion.Fila);
            Assert.AreEqual(2, bombita.Posicion.Columna);
            Assert.AreEqual(0.85, bombita.PorcentajeDeRetardo);
        }
예제 #14
0
        public void QueBombitaAgarreUnTimerYQueModifiqueElRetardoConQueVaALanzarSusBombas()
        {
            Bombita bombita = new Bombita();
            Timer articulo = new Timer();
            double porcentajeInicial = bombita.PorcentajeDeRetardo;

            bombita.AgarrarArticulo(articulo);

            Assert.Greater(bombita.Bomba.Destruccion, porcentajeInicial);
        }
예제 #15
0
        public void PruebaQueElEfectoDelTimerLeDureHastaQueMuera()
        {
            Timer articulo = new Timer();
            Bombita bombita = new Bombita();
            Assert.AreEqual(1,bombita.PorcentajeDeRetardo);

            bombita.AgarrarArticulo(articulo);
            Assert.AreEqual(0.85, bombita.PorcentajeDeRetardo);

            bombita.DaniarConToleTole(new ToleTole());

            Assert.AreEqual(1, bombita.PorcentajeDeRetardo);
        }