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); }
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; } } }
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); }
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")); }
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")); }
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); }