Ejemplo n.º 1
0
        private ChessPiecesEntity GetQueen()
        {
            var directionTypeList = new List <DirectionTypeEntity>
            {
                new DirectionTypeEntity {
                    Direction = DirectionsEnum.Horizontal.ToString()
                },
                new DirectionTypeEntity {
                    Direction = DirectionsEnum.Vertical.ToString()
                },
                new DirectionTypeEntity {
                    Direction = DirectionsEnum.Diagonal.ToString()
                }
            };

            var chessPiece = new ChessPiecesEntity
            {
                PieceName         = ChessPieceNamesEnum.Queen.ToString(),
                MaxMoves          = 7,
                DirectionTypeList = directionTypeList
            };

            List <GridCoordinateEntity> gridCoordinateInstructionList = GetGridCoordinateInstructionList(chessPiece);

            chessPiece.GridCoordinateInstructionList = gridCoordinateInstructionList;

            return(chessPiece);
        }
        public void CanSetPieceName()
        {
            var chessPieceEntity = new ChessPiecesEntity();

            chessPieceEntity.PieceName = "King";
            chessPieceEntity.MaxMoves  = 99;
            var chessPieceName     = chessPieceEntity.PieceName;
            var chessPieceMaxMoves = chessPieceEntity.MaxMoves;

            Assert.Equal("King", chessPieceName);
            Assert.Equal(99, chessPieceMaxMoves);
        }
Ejemplo n.º 3
0
        private ChessPiecesEntity GetChessPieceEntityByName(string chessPiece)
        {
            var chessPieceEntity = new ChessPiecesEntity();

            foreach (var item in _board.ChessPieceList.Where(item => chessPiece == item.PieceName))
            {
                chessPieceEntity = item;
                break;
            }

            return(chessPieceEntity);
        }
Ejemplo n.º 4
0
        private List <GridCoordinateEntity> GetCoordinateInstructionListForVertical(ChessPiecesEntity chessPiece,
                                                                                    List <GridCoordinateEntity> coordinateList)
        {
            //For Vertical
            var x = 0;
            var y = -(chessPiece.MaxMoves);

            for (var i = -(chessPiece.MaxMoves); i <= chessPiece.MaxMoves; i++)
            {
                if (!(x == 0 && y == 0))
                {
                    coordinateList.Add(new GridCoordinateEntity {
                        XCoordinate = x, YCoordinate = y
                    });
                }

                y++;
            }

            return(coordinateList);
        }
Ejemplo n.º 5
0
        private ChessPiecesEntity GetBishop()
        {
            var directionTypeList = new List <DirectionTypeEntity>
            {
                new DirectionTypeEntity {
                    Direction = DirectionsEnum.Diagonal.ToString()
                }
            };

            var chessPiece = new ChessPiecesEntity
            {
                PieceName                     = ChessPieceNamesEnum.Bishop.ToString(),
                MaxMoves                      = 7,
                DirectionTypeList             = directionTypeList,
                GridCoordinateInstructionList = null
            };

            List <GridCoordinateEntity> gridCoordinateInstructionList = GetGridCoordinateInstructionList(chessPiece);

            chessPiece.GridCoordinateInstructionList = gridCoordinateInstructionList;
            return(chessPiece);
        }
Ejemplo n.º 6
0
        private List <GridCoordinateEntity> GetGridCoordinateInstructionList(ChessPiecesEntity chessPiece)
        {
            List <GridCoordinateEntity> coordinateList = new List <GridCoordinateEntity>();

            foreach (var directionType in chessPiece.DirectionTypeList)
            {
                if (directionType.Direction == DirectionsEnum.Horizontal.ToString())
                {
                    coordinateList = GetCoordinateInstructionListForHorizontal(chessPiece, coordinateList);
                }

                if (directionType.Direction == DirectionsEnum.Vertical.ToString())
                {
                    coordinateList = GetCoordinateInstructionListForVertical(chessPiece, coordinateList);
                }

                if (directionType.Direction == DirectionsEnum.Diagonal.ToString())
                {
                    coordinateList = GetCoordinateInstructionListForDiagonal(chessPiece, coordinateList);
                }
            }

            return(coordinateList);
        }
Ejemplo n.º 7
0
        private IEnumerable <GridCoordinateEntity> GetGridCoordinatesFromInstructions(ChessPiecesEntity chessPiecesEntity,
                                                                                      GridCoordinateEntity startGridCoordinate)
        {
            var gridCoordinateEntityList = new List <GridCoordinateEntity>();

            foreach (var gridCoordinateEntity in chessPiecesEntity.GridCoordinateInstructionList)
            {
                var validGridCoordinateEntity = new GridCoordinateEntity
                {
                    XCoordinate = gridCoordinateEntity.XCoordinate + startGridCoordinate.XCoordinate,
                    YCoordinate = gridCoordinateEntity.YCoordinate + startGridCoordinate.YCoordinate
                };

                if (IsValid(validGridCoordinateEntity))
                {
                    gridCoordinateEntityList.Add(validGridCoordinateEntity);
                }
            }

            return(gridCoordinateEntityList);
        }