public static Casilla FabricarCasillaConBloqueLadrillos(Punto pos)
 {
     Casilla unaCasilla = new Casilla(pos);
     unaCasilla.Estado = BloqueComun.CrearBloqueLadrillos();
     if (unaCasilla.Estado == null)
         throw new EstadoNuloException();
     return unaCasilla;
 }
 public static Casilla FabricarPasillo(Punto pos)
 {
     Casilla unaCasilla = new Casilla(pos);
     unaCasilla.Estado = new Pasillo();
     if (unaCasilla.Estado == null)
         throw new EstadoNuloException();
     return unaCasilla;
 }
예제 #3
0
 public void TestSetup()
 {
     this.unaFabricaDeCasillas = new FabricaDeCasillas();
     this.posicionOrigen = new Punto(2, 3);
     this.origen = FabricaDeCasillas.FabricarPasillo(posicionOrigen);
     this.posicionDestino = new Punto(3, 3);
     this.destino = FabricaDeCasillas.FabricarPasillo(posicionDestino);
     this.unPersonaje = new Bombita(posicionOrigen);
 }
예제 #4
0
 private void AgregarCasilleros(List<Punto> Lista, int expansion, Punto punto, int direccion)
 {
     int i = 1;
       Punto unPuntoAux = punto.PosicionHaciaUnaDireccion(direccion);
       Casilla.Casilla unaCasillaAnteriorAux = new Casilla.Casilla(unPuntoAux);
       unaCasillaAnteriorAux = FabricaDeCasillas.FabricarPasillo(unPuntoAux);
       while (this.PosicionDentroRango(unPuntoAux) && i <= expansion && unaCasillaAnteriorAux.Estado.GetType() == typeof(Pasillo))
       {
       unaCasillaAnteriorAux = Juego.Juego.Instancia().Ambiente.ObtenerCasilla(unPuntoAux);
       Lista.Add(unPuntoAux);
       i++;
       unPuntoAux = unPuntoAux.PosicionHaciaUnaDireccion(direccion);
       }
 }
예제 #5
0
 public void AgregarUnaCasillaConPosicionFueraDeRangoLanzaPuntoFueraDeRangoEnMapaException()
 {
     pos = new Punto(ANCHOMAPA + 1, ALTOMAPA - 1);
     Casilla otraCasilla = new Casilla(pos);
     try
     {
         otroMapa.AgregarCasilla(otraCasilla);
         Assert.Fail();
     }
     catch (PuntoFueraDeRangoEnMapaException)
     {
         Assert.Pass("Exception correcta fue lanzada.");
     }
     catch (System.Exception)
     {
         Assert.Fail();
     }
 }
        public void PuedoAgregarSalidaEnUnBloqueLadrilloPuesEstaPermitido()
        {
            Punto unaPosicion = new Punto(0, 0);
            Casilla unaCasilla = new Casilla(unaPosicion);
            Tablero otroMapa = Juego.Instancia().Ambiente;

            Punto pUnaSalida = new Punto (1,1);

            Casilla unaCasillaDeSalida = unMapa.ObtenerCasilla(pUnaSalida);

            // agrego articulo
            Salida salida = new Salida();
            unaCasillaDeSalida.agregarSalida(salida);

            Assert.IsInstanceOf(typeof(Salida), unaCasillaDeSalida.ArticuloContenido);
        }
예제 #7
0
 public void TestSetup()
 {
     pos = new Punto(3, 4);
     c = FabricaDeCasillas.FabricarPasillo(pos);
     unBombita = new Bombita(pos);
 }
 public void FabricarPasilloDevuelveCasillaEnEstadoPasillo()
 {
     unaCasilla = FabricaDeCasillas.FabricarPasillo(unPunto);
     Assert.IsInstanceOf(typeof (Pasillo) , unaCasilla.Estado);
 }
 public void FabricarCasillaConBloqueDeCemento()
 {
     unaCasilla = FabricaDeCasillas.FabricarCasillaConBloqueCemento(unPunto);
     Assert.IsInstanceOf(typeof(BloqueComun), unaCasilla.Estado);
     Assert.AreEqual(unaCasilla.Estado.UnidadesDeResistencia, RESISTENCIACEMENTO);
 }
예제 #10
0
        public void PosicionDeLaDerechaEsUnObstaculoBombitaNoPuedeMoverseHaciaLaDerecha()
        {
            //ver mapa en el FixtureSetup
            this.pos = new Punto(2, 1);
            movil = new Bombita(this.pos);

            this.unaCasilla = unMapa.ObtenerCasilla(this.pos);
            this.unaCasilla.Transitar(movil);
            movil.Movimiento.Direccion = Tablero.DERECHA;
            Assert.IsFalse(unMapa.PermitidoAvanzar(movil));
            //Assert.IsFalse(unMapa.PermitidoMoverHaciaDerechaA(movil));
        }
예제 #11
0
 public void AgregarCasillaLanzaCasillaYaIngresadaExceptionSiYaFueAgregadaAnteriorMente()
 {
     this.pos = new Punto(0, 0);
     this.unaCasilla = FabricaDeCasillas.FabricarPasillo(this.pos);
     try
     {
         this.unMapa.AgregarCasilla(unaCasilla);
         Assert.Fail();
     }
     catch (CasillaYaIngresadaException)
     {
         Assert.Pass("Exception correcta fue lanzada.");
     }
     catch (System.Exception)
     {
         Assert.Fail();
     }
 }
예제 #12
0
 public void PosicionDeArribaTienePasilloBombitaPuedeMoverseHaciaArriba()
 {
     //ver mapa en el FixtureSetup
     this.pos = new Punto(0, 0);
     movil = new Bombita(this.pos);
     this.unaCasilla = unMapa.ObtenerCasilla(this.pos);
     this.unaCasilla.Transitar(movil);
     movil.Movimiento.Direccion = Tablero.ARRIBA;
     Assert.IsTrue(unMapa.PermitidoAvanzar(movil));
 }
예제 #13
0
        public void PosicionDeArribaNoExisteBombitaNoPuedeMoverseHaciaArriba()
        {
            this.pos = new Punto(3, 4);
            movil = new Bombita(this.pos);

            this.unaCasilla = unMapa.ObtenerCasilla(this.pos);
            this.unaCasilla.Transitar(movil);
            movil.Movimiento.Direccion = Tablero.ARRIBA;
            Assert.IsFalse(unMapa.PermitidoAvanzar(movil));
            //Assert.IsFalse(unMapa.PermitidoMoverHaciaArribaA(movil));
        }
예제 #14
0
 public void PosicionDeAbajoTienePasilloBombitaPuedeMoverseHaciaAbajo()
 {
     //ver mapa en el FixtureSetup
     this.pos = new Punto(2, 3);
     movil = new Bombita(this.pos);
     this.unaCasilla = unMapa.ObtenerCasilla(this.pos);
     this.unaCasilla.Transitar(movil);
     //Assert.IsTrue(unMapa.PermitidoMoverHaciaAbajoA(movil));
     movil.Movimiento.Direccion = Tablero.ABAJO;
     Assert.IsTrue(unMapa.PermitidoAvanzar(movil));
 }
예제 #15
0
        public void PosicionDeAbajoEsUnObstaculoUnoDeLosLopezReggaeAladoPuedeMoverseHaciaAbajo()
        {
            //ver mapa en el FixtureSetup
            this.pos = new Punto(1, 2);
            movil = new LosLopezReggaeAlado(this.pos);

            this.unaCasilla = unMapa.ObtenerCasilla(this.pos);
            this.unaCasilla.Transitar(movil);
            movil.Movimiento.Direccion = Tablero.ABAJO;
            Assert.IsTrue(unMapa.PermitidoAvanzar(movil));
            //Assert.IsTrue(unMapa.PermitidoMoverHaciaAbajoA(movil));
        }
예제 #16
0
 public void AgregarUnaCasillaConPosicionNulaLanzaPosicionNulaException()
 {
     pos = null;
     Casilla otraCasilla = new Casilla(pos);
     try
     {
         otroMapa.AgregarCasilla(otraCasilla);
         Assert.Fail();
     }
     catch (PosicionNulaException)
     {
         Assert.Pass("Exception correcta fue lanzada.");
     }
     catch (System.Exception)
     {
         Assert.Fail();
     }
 }
 public void FabricarCasillaConBloqueDeAceroDevuelveCasillaEnEstadoBloqueAcero()
 {
     unaCasilla = FabricaDeCasillas.FabricarCasillaConBloqueAcero(unPunto);
     Assert.IsInstanceOf(typeof(BloqueAcero), unaCasilla.Estado);
 }
예제 #18
0
 public void PosicionDeLaDerechaTienePasilloBombitaPuedeMoverseHaciaLaDerecha()
 {
     //ver mapa en el FixtureSetup
     this.pos = new Punto(0, 0);
     movil = new Bombita(this.pos);
     this.unaCasilla = unMapa.ObtenerCasilla(this.pos);
     this.unaCasilla.Transitar(movil);
     //Assert.IsTrue(unMapa.PermitidoMoverHaciaArribaA(movil)); TODO: eliminar codigo comentado
     movil.Movimiento.Direccion = Tablero.DERECHA;
     Assert.IsTrue(unMapa.PermitidoAvanzar(movil));
 }
 public void FabricarCasillaConBloqueDeLadrillosDevuelveCasillaEnEstadoBloqueLadrillos()
 {
     unaCasilla = FabricaDeCasillas.FabricarCasillaConBloqueLadrillos(unPunto);
     Assert.IsInstanceOf(typeof(BloqueComun), unaCasilla.Estado);
     Assert.AreEqual(unaCasilla.Estado.UnidadesDeResistencia, RESISTENCIALADRILLO);
 }
예제 #20
0
        public void PosicionDeLaIzquierdaEsUnObstaculoUnoDeLosLopezReggaeAladoPuedeMoverseHaciaLaIzquierda()
        {
            //ver mapa en el FixtureSetup
            this.pos = new Punto(2, 3);
            movil = new LosLopezReggaeAlado(this.pos);

            this.unaCasilla = unMapa.ObtenerCasilla(this.pos);
            this.unaCasilla.Transitar(movil);
            movil.Movimiento.Direccion = Tablero.IZQUIERDA;
            Assert.IsTrue(unMapa.PermitidoAvanzar(movil));
            //Assert.IsTrue(unMapa.PermitidoMoverHaciaIzquierdaA(movil));
        }
 public void TestSetUp()
 {
     unPunto = new Punto (2,3);
     unaCasilla = new Casilla(unPunto);
 }
예제 #22
0
        public void PosicionDeLaIzquierdaNoExisteBombitaNoPuedeMoverseHaciaLaIzquierda()
        {
            this.pos = new Punto(0, 4);
            movil = new Bombita(this.pos);

            this.unaCasilla = unMapa.ObtenerCasilla(this.pos);
            this.unaCasilla.Transitar(movil);
            movil.Movimiento.Direccion = Tablero.IZQUIERDA;
            Assert.IsFalse(unMapa.PermitidoAvanzar(movil));
            //Assert.IsFalse(unMapa.PermitidoMoverHaciaIzquierdaA(movil));
        }
예제 #23
0
        private void AgregarCasillero(Casilla unCasillero)
        {
            Obstaculo unObstaculo = unCasillero.Estado;

            if (unObstaculo != null)
            {
                // use reflexion
                if (unObstaculo.Nombre == Nombres.bAcero)
                {
                    Vector2 unVector = TransformarPuntoEnVector2(unCasillero.Posicion);
                    BloqueAceroVista unBloqueDeAcero = new BloqueAceroVista(unVector, unCasillero.Posicion, unObstaculo);
                    AgregarDibujable(unBloqueDeAcero);
                }

                if (unObstaculo.Nombre == Nombres.bCemento)
                {
                    Vector2 unVector = TransformarPuntoEnVector2(unCasillero.Posicion);
                    BloqueCementoVista unBloqueCementoView = new BloqueCementoVista(unVector, unCasillero.Posicion, unObstaculo);
                    AgregarDibujable(unBloqueCementoView);
                }

                if (unObstaculo.Nombre == Nombres.bLadrillo)
                {
                    Vector2 unVector = TransformarPuntoEnVector2(unCasillero.Posicion);
                    BloqueLadrilloVista unBloqueLadrilloView = new BloqueLadrilloVista(unVector, unCasillero.Posicion, unObstaculo);
                    AgregarDibujable(unBloqueLadrilloView);
                }
            }
        }
예제 #24
0
 public void PosicionDeLaIzquierdaTienePasilloBombitaPuedeMoverseHaciaLaIzquierda()
 {
     //ver mapa en el FixtureSetup
     this.pos = new Punto(3, 0);
     movil = new Bombita(this.pos);
     this.unaCasilla = unMapa.ObtenerCasilla(this.pos);
     this.unaCasilla.Transitar(movil);
        // Assert.IsTrue(unMapa.PermitidoMoverHaciaIzquierdaA(movil));
     movil.Movimiento.Direccion = Tablero.IZQUIERDA;
     Assert.IsTrue(unMapa.PermitidoAvanzar(movil));
 }
예제 #25
0
 public void TestSetup()
 {
     unaPosicion = new Punto(2, 3);
     this.unaCasillaVacia = FabricaDeCasillas.FabricarPasillo(unaPosicion);
 }
예제 #26
0
        public void TestSetup()
        {
            //creo un mapa 5x5 con esta distribucion (P = Pasillo, * = Obstaculo):
            //      P P P P P
            //      P * P * P
            //      P P P P P
            //      P * P * P
            //      P P P P P

            Punto unaPosicion;
            Casilla unaCasilla;
            this.unMapa = new Tablero(ANCHOMAPA, ANCHOMAPA);
            this.otroMapa = new Tablero(ANCHOMAPA, ANCHOMAPA);
            int i, j;
            for (i = 0; i < ANCHOMAPA; i++)
                for (j = 0; j < ANCHOMAPA; j++)
                {
                    unaPosicion = new Punto(i, j);
                    if ((i & 1) == 1 && (j & 1) == 1)
                    {
                        //ambos son numeros impares
                        unaCasilla = FabricaDeCasillas.FabricarCasillaConBloqueLadrillos(unaPosicion);//.FabricarCasillaConBloqueAcero(unaPosicion);
                    }
                    else
                    {
                        //uno de los dos es par
                        unaCasilla = FabricaDeCasillas.FabricarPasillo(unaPosicion);
                    }
                    this.unMapa.AgregarCasilla(unaCasilla);
                }
        }
예제 #27
0
 public void AgregarCasilla(Casilla.Casilla unaCasilla)
 {
     if (unaCasilla == null )
     {
         throw new NoExisteCasillaException();
     }
     if (unaCasilla.Posicion == null)
     {
         throw new PosicionNulaException();
     }
     if (!PosicionDentroRango(unaCasilla.Posicion))
     {
         throw new PuntoFueraDeRangoEnMapaException();
     }
     try
     {
         this.tablero.Add(unaCasilla.Posicion, unaCasilla);
     }
     catch (System.ArgumentException)
     {
         throw new CasillaYaIngresadaException();
     }
 }
예제 #28
0
 public void AgregarCasillaNoAgregadaAnteriorMenteNoLanzaNingunaExcepcion()
 {
     this.pos = new Punto(4, 4);
     this.unaCasilla = FabricaDeCasillas.FabricarPasillo(this.pos);
     try
     {
         this.otroMapa.AgregarCasilla(unaCasilla);
     }
     catch (System.Exception)
     {
         Assert.Fail();
     }
 }