예제 #1
0
        public void CreoJuegoEnModoFacil()
        {
            Jugador jugador = new Jugador("Juan", Vehiculo.Auto());

            Juego juego = new JuegoFacil(jugador);

            Assert.IsTrue(juego.Modo == "Facil");

            Assert.IsTrue(juego.LimiteDeMovimientos == 80);

            Assert.IsTrue(juego.MovimientosSobrantes() == 80);

            Assert.IsTrue(juego.NombreDelVehiculo() == "Auto");

            Assert.IsTrue(juego.Puntos() == 80);

            Assert.IsTrue(juego.Jugador == jugador);

            Assert.IsTrue(juego.Mapa is Mapa);

            Assert.IsTrue(juego.GetLlegadaX() == 8);

            Assert.IsTrue(juego.GetLlegadaY() == 10);

            Assert.IsFalse(juego.JuegoTermino());

            Assert.IsFalse(juego.JugadorGano());
        }
예제 #2
0
        public void CreoJugador()
        {
            Jugador jugador = new Jugador("Juan", Vehiculo.Auto());

            Assert.IsTrue(jugador.Nombre == "Juan");

            Assert.IsTrue(jugador.Vehiculo is Vehiculo);
        }
        public void AutoCambiaACuatroPorCuatro()
        {
            Vehiculo vehiculo       = Vehiculo.Auto();
            Sorpresa cambioVehiculo = new SorpresaCambioVehiculo();

            Assert.IsTrue(vehiculo.Tipo is Auto);
            cambioVehiculo.Accionar(vehiculo);
            Assert.IsTrue(vehiculo.Tipo is CuatroPorCuatro);
        }
예제 #4
0
        private void MenuVehiculo(Screen mainScreen)
        {
            ChoiceControl motoChoice            = new ChoiceControl();
            ChoiceControl autoChoice            = new ChoiceControl();
            ChoiceControl cuatroPorCuatroChoice = new ChoiceControl();

            motoChoice.Bounds = new UniRectangle(
                graphics.PreferredBackBufferWidth / 2 - 60, 275, 120.0f, 16.0f);
            motoChoice.Text     = "Moto";
            motoChoice.Selected = true;
            mainScreen.Desktop.Children.Add(motoChoice);
            //
            // autoChoice
            //
            autoChoice.Bounds = new UniRectangle(
                graphics.PreferredBackBufferWidth / 2 - 60, 295, 120.0f, 16.0f);
            autoChoice.Text = "Auto";
            mainScreen.Desktop.Children.Add(autoChoice);
            //
            // cuatroPorCuatroChoice
            //
            cuatroPorCuatroChoice.Bounds = new UniRectangle(
                graphics.PreferredBackBufferWidth / 2 - 60, 315, 120.0f, 16.0f);
            cuatroPorCuatroChoice.Text = "4x4";
            mainScreen.Desktop.Children.Add(cuatroPorCuatroChoice);

            ButtonControl jugarButton = new ButtonControl();

            jugarButton.Bounds = new UniRectangle(
                graphics.PreferredBackBufferWidth / 2 - 60, 350, 120.0f, 50.0f);
            jugarButton.Text = "Aceptar";
            mainScreen.Desktop.Children.Add(jugarButton);

            jugarButton.Pressed += delegate(object sender, EventArgs arguments)
            {
                if (motoChoice.Selected)
                {
                    vehiculo = Vehiculo.Moto();
                }
                else
                if (autoChoice.Selected)
                {
                    vehiculo = Vehiculo.Auto();
                }
                else
                if (cuatroPorCuatroChoice.Selected)
                {
                    vehiculo = Vehiculo.CuatroPorCuatro();
                }

                jugador = new Jugador(nombre, vehiculo);
                mainScreen.Desktop.Children.Clear();
                menuVehiculo   = false;
                menuDificultad = true;
            };
        }
예제 #5
0
        public void PenalizarAutoNoLoDejaPasar()
        {
            Vehiculo  auto    = Vehiculo.Auto();
            Obstaculo piquete = new Piquete();

            piquete.Penalizar(auto);

            Assert.IsTrue(auto.Movimientos == 1);
            Assert.IsFalse(piquete.PermiteMover(auto));
        }
예제 #6
0
        public void PenalizarAutoAgrega3MovimientosYPermiteMover()
        {
            Vehiculo  auto = Vehiculo.Auto();
            Obstaculo pozo = new Pozo();

            pozo.Penalizar(auto);

            Assert.IsTrue(auto.Movimientos == 3);
            Assert.IsTrue(pozo.PermiteMover(auto));
        }
예제 #7
0
        public void SiJuegoTerminaPerdiendo()
        {
            Jugador jugador = new Jugador("Juan", Vehiculo.Auto());

            Juego juego = new JuegoModerado(jugador);

            juego.Jugador.Vehiculo.AgregarMovimientos(60);

            Assert.IsTrue(juego.JuegoTermino());
        }
예제 #8
0
        public void AccionarReduceEl20PorCientoDeLosMovimientosDeAuto()
        {
            Vehiculo vehiculo = Vehiculo.Auto();
            Sorpresa sorpresa = new SorpresaFavorable();

            vehiculo.AgregarMovimientos(5);

            sorpresa.Accionar(vehiculo);

            Assert.IsTrue(vehiculo.Movimientos == 4);
        }
예제 #9
0
        public void SiJuegoTerminaGanando()
        {
            Jugador jugador = new Jugador("Juan", Vehiculo.Auto());

            Juego juego = new JuegoModerado(jugador);

            juego.Jugador.Vehiculo.Esquina.SetLlegada();

            Assert.IsTrue(juego.JuegoTermino());

            Assert.IsTrue(juego.JugadorGano());
        }
예제 #10
0
        public void SiPenalizaAutoDespuesDeIntentarVariasVecesYPermiteMover()
        {
            Vehiculo auto = Vehiculo.Auto();

            Obstaculo controlPolicial = new ControlPolicial();

            while (auto.Movimientos == 0)
            {
                controlPolicial.Penalizar(auto);
            }

            Assert.IsTrue(auto.Movimientos == 3);

            Assert.IsTrue(controlPolicial.PermiteMover(auto));
        }
예제 #11
0
        public void MoverVehiculoAutoDeUnaEsquinaAOtraConSorpresaCambioVehiculo()
        {
            Esquina  esquina      = new Esquina();
            Esquina  esquinaOeste = new Esquina();
            Vehiculo vehiculo     = Vehiculo.Auto();

            vehiculo.Esquina = esquina;
            Sorpresa sorpresa    = new SorpresaCambioVehiculo();
            Cuadra   cuadraOeste = new Cuadra(sorpresa, null);

            esquina.SetEsquina(Orientacion.Oeste, esquinaOeste);
            esquina.SetCuadra(Orientacion.Oeste, cuadraOeste);

            Assert.True(vehiculo.Tipo is Auto);
            vehiculo.MoverVehiculo(Orientacion.Oeste);

            Assert.True(vehiculo.Tipo is CuatroPorCuatro);
        }
예제 #12
0
        public void MoverVehiculoAutoDeUnaEsquinaAOtraConPozo()
        {
            Esquina  esquina      = new Esquina();
            Esquina  esquinaOeste = new Esquina();
            Vehiculo vehiculo     = Vehiculo.Auto();

            vehiculo.Esquina = esquina;
            Pozo   pozo        = new Pozo();
            Cuadra cuadraOeste = new Cuadra(null, pozo);

            esquina.SetEsquina(Orientacion.Oeste, esquinaOeste);
            esquina.SetCuadra(Orientacion.Oeste, cuadraOeste);

            Assert.True(vehiculo.Movimientos == 0);
            vehiculo.MoverVehiculo(Orientacion.Oeste);

            Assert.True(vehiculo.Movimientos == 4);
        }
예제 #13
0
        public void CreoJugadorConNombreInvalido()
        {
            Assert.Throws <NombreInvalidoException>(() => new Jugador("", Vehiculo.Auto()));

            Assert.Throws <NombreInvalidoException>(() => new Jugador("    ", Vehiculo.Auto()));
        }