Example #1
0
 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));
     }
 }
Example #2
0
 public ChessPiece(Enums.BlackOrWhite teamSide, int arrayLocation)
 {
     //this.IsMovableSpace = false;
     this.IsSelected = false;
     this.Location   = new Location(arrayLocation);
     this.Side       = teamSide;
 }
Example #3
0
 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));
     }
 }
Example #4
0
        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);
        }
Example #5
0
 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;
 }
Example #6
0
 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);
 }
Example #7
0
 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);
         }
     }
 }
Example #8
0
 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);
 }
Example #9
0
 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);
 }
Example #10
0
 public King(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation)
 {
 }
Example #11
0
 public Tangela(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide)
 {
 }
Example #12
0
 public Exeggutor(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide)
 {
 }
Example #13
0
 public Ninetails(Enums.BlackOrWhite teamSide) : base(teamSide)
 {
 }
Example #14
0
 public Magikarp(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide)
 {
 }
Example #15
0
 public Victreebell(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide)
 {
 }
Example #16
0
 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);
 }
Example #17
0
 public Nidoqueen(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation)
 {
 }
Example #18
0
 public Nidoqueen(Enums.BlackOrWhite teamSide) : base(teamSide)
 {
 }
Example #19
0
 public Victreebell(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation)
 {
 }
Example #20
0
 public ChessPiece(Enums.BlackOrWhite teamSide)
 {
     //this.IsMovableSpace = false;
     this.IsSelected = false;
     this.Side       = teamSide;
 }
Example #21
0
 public Magikarp(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation)
 {
 }
Example #22
0
 public Vileplume(Enums.BlackOrWhite teamSide) : base(teamSide)
 {
 }
Example #23
0
 public Ninetails(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation)
 {
 }
Example #24
0
 public Vileplume(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation)
 {
 }
Example #25
0
 public Exeggutor(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation)
 {
 }
Example #26
0
 public Oddish(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide)
 {
 }
Example #27
0
        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);
        }
Example #28
0
 public Golduck(Enums.BlackOrWhite teamSide, Enums.BoardColumns pieceSide) : base(teamSide, pieceSide)
 {
 }
Example #29
0
 public Tangela(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation)
 {
 }
Example #30
0
 public Golduck(Enums.BlackOrWhite teamSide, int arrayLocation) : base(teamSide, arrayLocation)
 {
 }