public void TestElProyectilComienzaAMoverseHastaQueEnSuProximaPosicionSeEncuentraConBombitaYExplotaDestruyendolo()
        {
            Proyectil proyectil = new Proyectil();
            tablero.AgregarEntidad(proyectil, 1, 1);

            Bombita bombita = Bombita.GetInstancia();
            tablero.AgregarEntidad(bombita, 1, 4);

            proyectil.Mover();
            Assert.AreEqual(proyectil.Posicion().X, 1);
            Assert.AreEqual(proyectil.Posicion().Y, 2);
            proyectil.Explotar();
            // el proyectil todavia no explota porque no encontro en su proxima posicion a otra entidad
            Assert.IsFalse(proyectil.FueDestruido());
            Assert.IsFalse(bombita.FueDestruido());

            proyectil.Mover();
            Assert.AreEqual(proyectil.Posicion().X, 1);
            Assert.AreEqual(proyectil.Posicion().Y, 3);
            proyectil.Explotar();
            // el proyectil explota porque en su proxima posicion esta bombita
            Assert.IsTrue(proyectil.FueDestruido());
            Assert.IsTrue(bombita.FueDestruido());

            // limpia el tablero
            tablero.Actualizar();
        }
        public void TestCreaUnProyectil()
        {
            Bomba proyectil = new Proyectil();

            // asserts
            Assert.IsFalse(proyectil.EsArticulo());
            Assert.IsTrue(proyectil.EsBomba());
            Assert.IsFalse(proyectil.EsBombita());
            Assert.IsFalse(proyectil.EsEnemigo());
            Assert.IsFalse(proyectil.EsObstaculo());
            Assert.IsFalse(proyectil.EsPersonaje());
            Assert.IsFalse(proyectil.FueDestruido());
            Assert.IsFalse(proyectil.PuedeSuperponerse());
        }
        public void TestElProyectilExplotaPorqueSuProximaPosicionEstaFueraDeRango()
        {
            Proyectil proyectil = new Proyectil();
            tablero.AgregarEntidad(proyectil, 0, 0);

            // esto se hace para que el proyectil apunte hacia arriba
            int[] arriba = { -1, 0 };
            proyectil.Direccionar(arriba);

            // el proyectil explota porque se estrella contra la pared del tablero
            // (su proxima casilla esta fuera del tablero)
            proyectil.Explotar();
            // asserts
            Assert.IsTrue(proyectil.FueDestruido());

            // limpia el tablero
            tablero.Actualizar();
        }