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 IList <FichaDisparo> GetFichaDisparo(Game juegoActual, Posicion desdeDonde) { IList <FichaDisparo> fichasLaterales = new List <FichaDisparo>(); for (int indice = 0; indice < juegoActual.Board.Size; indice++) { FichaDisparo ficha = new FichaDisparo(FichaRGB.GetRandomColorFicha(juegoActual.CurrentLevel.LevelNumber + 2), desdeDonde, indice); fichasLaterales.Add(ficha); } return(fichasLaterales); }
public void TestWhen_GeneratingPiecesNoRepeted() { ColorFicha newColor = FichaRGB.GetRandomColorFicha(3); for (int vez = 1; vez <= 8; vez++) { ColorFicha newColorDiferent = FichaRGB.GetRandomColorFicha(3); if (newColor != newColorDiferent) { Assert.AreNotEqual(newColor, newColorDiferent); } } }
public void TestWhen_GeneratingPieceColor() { ColorFicha newColor = FichaRGB.GetRandomColorFicha(); for (int vez = 1; vez <= 100; vez++) { ColorFicha otroColor = FichaRGB.GetRandomColorFicha(); if (otroColor != newColor) { return; } } Assert.Fail("No se generaron dos color distintos en 100 pasadas"); }