示例#1
0
 /// <summary>
 ///
 /// перебора всех фигур текущего игрока на игровой доске
 ///
 /// </summary>
 ///
 /// <returns>
 ///
 /// возвращает все фигуры текущего игрока
 ///
 /// </returns>
 public IEnumerable <FigureOnSquare> YieldFiguresOnSquare()
 {
     foreach (Square square in Square.YieldBoardSquare())
     {
         if (GetFigureAt(square).GetColor() == MoveColor)
         {
             yield return(new FigureOnSquare(GetFigureAt(square), square));
         }
     }
 }
示例#2
0
        /// <summary>
        ///
        /// метод поиска вражеского короля на игровой доске
        ///
        /// </summary>
        private Square FindBadKing()
        {
            Figure badKing = MoveColor == Color.white
                    ? Figure.blackKing
                    : Figure.whiteKing;

            foreach (Square square in Square.YieldBoardSquare())
            {
                if (GetFigureAt(square) == badKing)
                {
                    return(square);
                }
            }

            return(Square.None);
        }
示例#3
0
文件: Chess.cs 项目: 0gIH04KA/MyChess
        /// <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());
                            }
                        }
                    }
                }
            }
        }