public static void SetLowerRight(Board board, Location location, Enums.BlackOrWhite initialPieceSide) { if ((int)location.XCoord < 7 && (int)location.YCoord < 7 && !board.IsLocationOfTeamType(location.ArraySpotInt + 9, initialPieceSide)) { board.MoveableSpaces.Add(new Location(location.ArraySpotInt + 9)); } }
public ChessPiece(Enums.BlackOrWhite teamSide, int arrayLocation) { //this.IsMovableSpace = false; this.IsSelected = false; this.Location = new Location(arrayLocation); this.Side = teamSide; }
public static void SetUp(Board board, Location location, Enums.BlackOrWhite initialPieceSide) { if ((int)location.XCoord > 0 && !board.IsLocationOfTeamType(location.ArraySpotInt - 8, initialPieceSide)) { board.MoveableSpaces.Add(new Location(location.ArraySpotInt - 8)); } }
public bool IsCheckmate(Enums.BlackOrWhite kingSide) { bool isCheckmate = true; List <IPiece> allyPieces = new List <IPiece>(this.GameBoard.BoardPieceCollection.Where(x => x.Side == kingSide)); foreach (IPiece allyPiece in allyPieces) { Location startLocation = allyPiece.Location; foreach (Location location in allyPiece.GetMovableSpaces(this.GameBoard)) { // Move king and see if he's still in check IPiece takenPiece = this.GameBoard.BoardPieceCollection.FirstOrDefault(x => x.Location.ArraySpotInt == location.ArraySpotInt); if (takenPiece != null) { this.GameBoard.BoardPieceCollection.Remove(takenPiece); } allyPiece.Location = location; isCheckmate = EnsureKingSafety(kingSide); allyPiece.Location = startLocation; if (takenPiece != null) { this.GameBoard.BoardPieceCollection.Add(takenPiece); } if (!isCheckmate) { return(isCheckmate); } } } return(isCheckmate); }
public Team(Enums.BlackOrWhite teamColor, Enums.TeamType pokeType) { this.Side = teamColor; this.PokemonType = pokeType; this.Pieces = SetPieces(teamColor, pokeType); this.CanCastleLeft = true; this.CanCastleRight = true; }
public static IEnumerable <Location> GetUp(Board board, Location location, Enums.BlackOrWhite initialPieceSide, List <Location> returnList) { if ((int)location.XCoord > 0 && !board.IsLocationOfTeamType(location.ArraySpotInt - 8, initialPieceSide)) { returnList.Add(new Location(location.ArraySpotInt - 8)); } return(returnList); }
public static void RecursiveSetLowerLeft(Board board, Location location, Enums.BlackOrWhite initialPieceSide) { if ((int)location.XCoord < 7 && (int)location.YCoord > 0 && !board.IsLocationOfTeamType(location.ArraySpotInt + 7, initialPieceSide)) { board.MoveableSpaces.Add(new Location(location.ArraySpotInt + 7)); if (board.IsLocationEmpty(location.ArraySpotInt + 7)) { RecursiveSetLowerLeft(board, new Location(location.ArraySpotInt + 7), initialPieceSide); } } }
public bool EnsureKingSafety(Enums.BlackOrWhite side) { // Enumerate through enemy pieces to see if they threaten the king foreach (IPiece enemyPiece in this.GameBoard.BoardPieceCollection.Where(x => x.Side != side)) { IEnumerable <Location> movableLocations = enemyPiece.GetMovableSpaces(this.GameBoard); foreach (Location location in movableLocations) { IPiece foundPiece = this.GameBoard.BoardPieceCollection.FirstOrDefault(x => x.Location.ArraySpotInt == location.ArraySpotInt); if (foundPiece != null && foundPiece.ChessPieceType == Enums.Pieces.King && foundPiece.Side == side) { return(true); } } } return(false); }
public King(Enums.BlackOrWhite teamSide) : base(teamSide) { this.Location = (this.Side == Enums.BlackOrWhite.White) ? new Location(Enums.BoardRows.Eight, Enums.BoardColumns.E) : new Location(Enums.BoardRows.One, Enums.BoardColumns.E); }
public King(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation) { }
public Tangela(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide) { }
public Exeggutor(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide) { }
public Ninetails(Enums.BlackOrWhite teamSide) : base(teamSide) { }
public Magikarp(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide) { }
public Victreebell(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide) { }
public Bishop(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide) { this.Location = (this.Side == Enums.BlackOrWhite.White) ? new Location(Enums.BoardRows.Eight, pieceSide) : new Location(Enums.BoardRows.One, pieceSide); }
public Nidoqueen(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation) { }
public Nidoqueen(Enums.BlackOrWhite teamSide) : base(teamSide) { }
public Victreebell(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation) { }
public ChessPiece(Enums.BlackOrWhite teamSide) { //this.IsMovableSpace = false; this.IsSelected = false; this.Side = teamSide; }
public Magikarp(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation) { }
public Vileplume(Enums.BlackOrWhite teamSide) : base(teamSide) { }
public Ninetails(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation) { }
public Vileplume(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation) { }
public Exeggutor(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation) { }
public Oddish(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide) { }
private List <IPiece> SetPieces(Enums.BlackOrWhite teamColor, Enums.TeamType pokeType) { List <IPiece> returnList = new List <IPiece>(); switch (pokeType) { case Enums.TeamType.Fire: for (int x = 0; x < 8; x++) { returnList.Add(new Vulpix(teamColor, (Enums.BoardColumns)x)); } returnList.Add(new Arcanine(teamColor, Enums.BoardColumns.A)); returnList.Add(new Rapidash(teamColor, Enums.BoardColumns.B)); returnList.Add(new Magmar(teamColor, Enums.BoardColumns.C)); returnList.Add(new Ninetails(teamColor)); returnList.Add(new Charizard(teamColor)); returnList.Add(new Magmar(teamColor, Enums.BoardColumns.F)); returnList.Add(new Rapidash(teamColor, Enums.BoardColumns.G)); returnList.Add(new Arcanine(teamColor, Enums.BoardColumns.H)); break; case Enums.TeamType.Water: for (int x = 0; x < 8; x++) { returnList.Add(new Magikarp(teamColor, (Enums.BoardColumns)x)); } returnList.Add(new Poliwrath(teamColor, Enums.BoardColumns.A)); returnList.Add(new Seadra(teamColor, Enums.BoardColumns.B)); returnList.Add(new Golduck(teamColor, Enums.BoardColumns.C)); returnList.Add(new Lapras(teamColor)); returnList.Add(new Blastoise(teamColor)); returnList.Add(new Golduck(teamColor, Enums.BoardColumns.F)); returnList.Add(new Seadra(teamColor, Enums.BoardColumns.G)); returnList.Add(new Poliwrath(teamColor, Enums.BoardColumns.H)); break; case Enums.TeamType.Grass: for (int x = 0; x < 8; x++) { returnList.Add(new Oddish(teamColor, (Enums.BoardColumns)x)); } returnList.Add(new Victreebell(teamColor, Enums.BoardColumns.A)); returnList.Add(new Tangela(teamColor, Enums.BoardColumns.B)); returnList.Add(new Exeggutor(teamColor, Enums.BoardColumns.C)); returnList.Add(new Vileplume(teamColor)); returnList.Add(new Venusaur(teamColor)); returnList.Add(new Exeggutor(teamColor, Enums.BoardColumns.F)); returnList.Add(new Tangela(teamColor, Enums.BoardColumns.G)); returnList.Add(new Victreebell(teamColor, Enums.BoardColumns.H)); break; case Enums.TeamType.Poison: for (int x = 0; x < 8; x++) { returnList.Add(new Grimer(teamColor, (Enums.BoardColumns)x)); } returnList.Add(new Gengar(teamColor, Enums.BoardColumns.A)); returnList.Add(new Weezing(teamColor, Enums.BoardColumns.B)); returnList.Add(new Arbok(teamColor, Enums.BoardColumns.C)); returnList.Add(new Nidoqueen(teamColor)); returnList.Add(new Nidoking(teamColor)); returnList.Add(new Arbok(teamColor, Enums.BoardColumns.F)); returnList.Add(new Weezing(teamColor, Enums.BoardColumns.G)); returnList.Add(new Gengar(teamColor, Enums.BoardColumns.H)); break; default: break; } return(returnList); }
public Golduck(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide) { }
public Tangela(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation) { }
public Golduck(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation) { }