Example #1
0
        public List <string> GetValidCaptures()
        {
            var figuresOnSquares = Board.GetFigureOnSquares();
            var squares          = Square.GetBoardSquares();
            var validMoves       = new List <string>();

            var opponentCollor = MoveColor == Color.black ? Color.white : Color.black;

            foreach (var figuresOnSquare in figuresOnSquares)
            {
                foreach (var to in squares)
                {
                    foreach (Figure promotion in figuresOnSquare.Figure.YieldPromotions(to))
                    {
                        FigureMoving fm = new FigureMoving(figuresOnSquare, to, promotion);

                        if (IsValidMove(fm) &&
                            Board.GetFigureAt(to).GetFigureColor() == opponentCollor)
                        {
                            validMoves.Add(fm.ToString());
                        }
                    }
                }
            }

            return(validMoves);
        }
Example #2
0
 public IEnumerable <string> YieldValidMoves()
 {
     foreach (FigureOnSquare fs in board.YieldMyFigureOnSquares())
     {
         foreach (Square to in Square.YieldBoardSquares())
         {
             foreach (Figure promotion in fs.figure.YieldPromotions(to))
             {
                 FigureMoving fm = new FigureMoving(fs, to, promotion);
                 if (moves.CanMove(fm))
                 {
                     if (!board.IsCheckAfter(fm))
                     {
                         yield return(fm.ToString());
                     }
                 }
             }
         }
     }
 }
Example #3
0
        /// <summary>
        ///
        /// перебор всех фигур текущего игрока которые могут совершить ход на игровой доске
        ///
        /// </summary>
        ///
        /// <returns>
        ///
        /// возвращает все фигуры которые могут совершть ход
        ///
        /// </returns>
        public IEnumerable <string> YieldValidMoves()
        {
            foreach (FigureOnSquare figureOnSquare in _board.YieldFiguresOnSquare())
            {
                foreach (Square to in Square.YieldBoardSquare())
                {
                    foreach (Figure promotion in figureOnSquare.FigurE.YeldPromotions(to))
                    {
                        FigureMoving figureMoving = new FigureMoving(figureOnSquare, to, promotion);

                        if (_moves.CanMove(figureMoving))
                        {
                            if (!_board.IsCheckAfter(figureMoving))
                            {
                                yield return(figureMoving.ToString());
                            }
                        }
                    }
                }
            }
        }
Example #4
0
        public IEnumerable <string> YieldValidMoves()
        {
            var figuresOnSquares = Board.GetFigureOnSquares();
            var squares          = Square.GetBoardSquares();

            foreach (var figuresOnSquare in figuresOnSquares)
            {
                foreach (var to in squares)
                {
                    foreach (Figure promotion in figuresOnSquare.Figure.YieldPromotions(to))
                    {
                        FigureMoving fm = new FigureMoving(figuresOnSquare, to, promotion);

                        if (IsValidMove(fm))
                        {
                            yield return(fm.ToString());
                        }
                    }
                }
            }
        }
Example #5
0
        public List <string> GetValidMoves()
        {
            var figuresOnSquares = Board.GetFigureOnSquares();
            var squares          = Square.GetBoardSquares();
            var validMoves       = new List <string>();

            foreach (var figuresOnSquare in figuresOnSquares)
            {
                foreach (var to in squares)
                {
                    foreach (Figure promotion in figuresOnSquare.Figure.YieldPromotions(to))
                    {
                        FigureMoving fm = new FigureMoving(figuresOnSquare, to, promotion);

                        if (IsValidMove(fm))
                        {
                            validMoves.Add(fm.ToString());
                        }
                    }
                }
            }

            return(validMoves);
        }