Ejemplo n.º 1
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());
                            }
                        }
                    }
                }
            }
        }