private Pieza CrearPieza(TipoPieza tipo, ColorFicha color) { var newPiece = PieceFactory.MakePiece(tipo, color, _piezaContador++); _piezas.Add(newPiece); return(newPiece); }
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 bool CheckCheck(ColorFicha color) { var king = GetKing(color); var enPeligro = CasillasEnPeligro(king); var isKingChecked = enPeligro.Contains(king); return(isKingChecked); }
public static Pieza MakePiece(TipoPieza tipo, ColorFicha color, int idPieza) { switch (tipo) { case TipoPieza.Peon: return(new Peon { Color = color, Id = idPieza, Tipo = (int)tipo }); case TipoPieza.Torre: return(new Torre { Color = color, Id = idPieza, Tipo = (int)tipo }); case TipoPieza.Caballero: return(new Caballero { Color = color, Id = idPieza, Tipo = (int)tipo }); case TipoPieza.Alfil: return(new Alfil { Color = color, Id = idPieza, Tipo = (int)tipo }); case TipoPieza.Reina: return(new Reina { Color = color, Id = idPieza, Tipo = (int)tipo }); case TipoPieza.Rey: return(new Rey { Color = color, Id = idPieza, Tipo = (int)tipo }); default: throw new ArgumentOutOfRangeException(); } }
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 static Pieza MakePiece(TipoPieza tipo, ColorFicha color, int idPieza) { switch (tipo) { case TipoPieza.Peon: return new Peon { Color = color, Id = idPieza, Tipo = (int)tipo }; case TipoPieza.Torre: return new Torre { Color = color, Id = idPieza, Tipo = (int) tipo }; case TipoPieza.Caballero: return new Caballero { Color = color, Id = idPieza, Tipo = (int)tipo }; case TipoPieza.Alfil: return new Alfil { Color = color, Id = idPieza, Tipo = (int)tipo }; case TipoPieza.Reina: return new Reina { Color = color, Id = idPieza, Tipo = (int)tipo }; case TipoPieza.Rey: return new Rey { Color = color, Id = idPieza, Tipo = (int)tipo }; default: throw new ArgumentOutOfRangeException(); } }
public void TestWhen_GeneratingPieceColor() { ColorFicha newColor = Ficha.GetRandomColorFicha(); for (int vez = 1; vez <= 100; vez++) { ColorFicha otroColor = Ficha.GetRandomColorFicha(); if (otroColor != newColor) { return; } } Assert.Fail("No se generaron dos color distintos en 100 pasadas"); }
public Output CheckCheckMate(ColorFicha color) { var casillasOfColor = _casillas.Where(casilla => casilla.PiezaContenida != null && casilla.PiezaContenida.Color == color); foreach (var casilla in casillasOfColor) { var posiblesMovimientos = MovementPosibilitiesList(casilla); foreach (var posiblesMovimiento in posiblesMovimientos) { if (MovePiece(casilla, posiblesMovimiento, true) != Output.SelfCheck) { return(Output.Success); } } } return(CheckCheck(color) ? Output.CheckMate : Output.StaleMate); }
public FichaDisparo(ColorFicha color, Posicion desdeDonde, int indice) : base(color) { DesdeDonde = desdeDonde; Indice = indice; }
private Casilla GetKing(ColorFicha color) { return _casillas.FirstOrDefault(casilla => casilla.PiezaContenida != null && (casilla.PiezaContenida.Tipo == (int) TipoPieza.Rey && casilla.PiezaContenida.Color == color)); }
public bool CheckCheck(ColorFicha color) { var king = GetKing(color); var enPeligro = CasillasEnPeligro(king); var isKingChecked = enPeligro.Contains(king); return isKingChecked; }
public Output CheckCheckMate(ColorFicha color) { var casillasOfColor = _casillas.Where(casilla => casilla.PiezaContenida != null && casilla.PiezaContenida.Color == color); foreach (var casilla in casillasOfColor) { var posiblesMovimientos = MovementPosibilitiesList(casilla); foreach (var posiblesMovimiento in posiblesMovimientos) { if(MovePiece(casilla, posiblesMovimiento,true) != Output.SelfCheck) return Output.Success; } } return CheckCheck(color) ? Output.CheckMate : Output.StaleMate; }
private Pieza CrearPieza(TipoPieza tipo,ColorFicha color) { var newPiece = PieceFactory.MakePiece(tipo, color, _piezaContador++); _piezas.Add(newPiece); return newPiece; }
private Casilla GetKing(ColorFicha color) { return(_casillas.FirstOrDefault(casilla => casilla.PiezaContenida != null && (casilla.PiezaContenida.Tipo == (int)TipoPieza.Rey && casilla.PiezaContenida.Color == color))); }
public FichaRGB(ColorFicha color) : this() { this.Color = color; }
public Ficha(ColorFicha color) { this.Color = color; }