Exemplo n.º 1
0
        public MovimientoFicha NuevoMovimiento(Game juego, Posicion desdeDonde, int indice)
        {
            MovimientoFicha movimeinto      = new MovimientoFicha();
            Celda           dondePonerFicha = this.DispararFicha(juego, desdeDonde, indice);

            if (dondePonerFicha != null)
            {
                IList <Celda> celdasARomper = juego.Board.NuevoMovimiento(dondePonerFicha.RowIndex, dondePonerFicha.ColIndex, new Ficha(juego.Board.FichasDisparo[desdeDonde][indice].Color));
                if (celdasARomper != null)
                {
                    movimeinto.CeldasRotas   = celdasARomper;
                    movimeinto.PuntosGanados = celdasARomper.Count() * 10;

                    //
                    juego.Score += movimeinto.PuntosGanados;

                    //para romper las celdas
                    foreach (var celda in celdasARomper)
                    {
                        juego.Board.Celdas[celda.RowIndex, celda.ColIndex].Ficha = null;
                    }
                }
                //sustituir la ficha
                juego.Board.FichasDisparo[desdeDonde][indice].Color = Ficha.GetRandomColorFicha();
            }

            movimeinto.Juego = juego;
            return(movimeinto);
        }
Exemplo n.º 2
0
    public void actualizarCuadricula(MovimientoFicha fichaTetris)
    {
        for (int y = 0; y < alto; y++)
        {
            for (int x = 0; x < ancho; x++)
            {
                if (cuadricula[x, y] != null)
                {
                    if (cuadricula[x, y].parent == fichaTetris.transform)
                    {
                        cuadricula[x, y] = null;
                    }
                }
            }
        }

        foreach (Transform ficha in fichaTetris.transform)
        {
            Vector2 posicion = redondear(ficha.position);

            if (posicion.y < alto)
            {
                cuadricula[(int)posicion.x, (int)posicion.y] = ficha;
            }
        }
    }
Exemplo n.º 3
0
        public MovimientoFicha NuevoMovimiento(Game game, Posicion desdeDonde, int indice)
        {
            MovimientoFicha movimiento = new MovimientoFicha();

            Celda dondePonerFicha = this.DisparaFicha(game, desdeDonde, indice);

            if (dondePonerFicha != null)
            {
                IList <Celda> celdasARomper = game.Board.NuevoMovimiento(dondePonerFicha.RowIndex, dondePonerFicha.ColIndex, new FichaRGB(game.Board.FichaDisparo[desdeDonde][indice].Color));
                if (celdasARomper != null)
                {
                    movimiento.CeldaRotas    = celdasARomper;
                    movimiento.PuntosGanados = celdasARomper.Count * 10;
                    game.Score += movimiento.PuntosGanados;

                    foreach (var celda in celdasARomper)
                    {
                        game.Board.Celdas[celda.RowIndex, celda.ColIndex].Ficha = null;
                    }
                }
                ColorFicha colorFicha = FichaRGB.GetRandomColorFicha(game.CurrentLevel.LevelNumber + 2);

                while (game.Board.FichaDisparo[desdeDonde][indice].Color == colorFicha)
                {
                    colorFicha = FichaRGB.GetRandomColorFicha(game.CurrentLevel.LevelNumber + 2);
                }
                game.Board.FichaDisparo[desdeDonde][indice].Color = colorFicha;
            }

            movimiento.Juego = game;

            return(movimiento);
        }
Exemplo n.º 4
0
        public ActionResult Disparar(Posicion desdeDonde, int indice)
        {
            Game juegoActual = Session["juegoActual"] as Game;

            MovimientoFicha movimiento = _juegoServices.NuevoMovimiento(juegoActual, desdeDonde, indice);

            if (movimiento.Juego.JuegoFinalizado)
            {
                juegoActual.State = GameState.Finalizado;
                return(RedirectToAction("/LevelFinished"));
            }

            Session["juegoActual"] = movimiento.Juego;
            return(Redirect("/Juego"));
        }
Exemplo n.º 5
0
        public ActionResult Disparar(Posicion desdeDonde, int indice)
        {
            Game            juegoActual = Session["juegoActual"] as Game;
            MovimientoFicha movimiento  = _juegoServices.NuevoMovimiento(juegoActual, desdeDonde, indice);

            Session["juegoActual"] = movimiento.Juego;

            if (movimiento.Juego.NivelFinalizado)
            {
                return(RedirectToAction("LevelFinished"));
            }


            //return View("Juego", juegoResultado);
            // probar cambiando esto y poniendo lo de la vista porque es por algo de la url
            return(Redirect("/Juego"));
        }
Exemplo n.º 6
0
    public bool sobreCuadricula(MovimientoFicha fichaMovimiento)
    {
        for (int x = 0; x < ancho; x++)
        {
            foreach (Transform cuadrado in fichaMovimiento.transform)
            {
                Vector2 posicion = redondear(cuadrado.position);

                if (posicion.y > alto - 1)
                {
                    return(true);
                }
            }
        }

        return(false);
    }