public IEnumerable <FigureOnSquare> SortFigures() // перебираем фигуры { foreach (Squares square in Squares.SortSquares()) // перебираем все клетки { if (GetFigureOn(square).GetColor() == ChangeColor) // если на клетке находитсья фигура цвета который ходит { yield return(new FigureOnSquare(GetFigureOn(square), square)); // мы возвращаем её } } }
private Squares FindEnemyKing() { Figures enemyking = ChangeColor == Colors.black ? Figures.WKing : Figures.BKing; // определяем цвет вражеского короля foreach (Squares square in Squares.SortSquares()) // перебираем все клетки { if (GetFigureOn(square) == enemyking) // проверяем искомая фигура равна ли вражескому королю { return(square); } } return(Squares.zero); }
void FindAllMovements() // метод для поиска всех ходов { AllMovements = new List <FiguresMovements>(); // создаем пустой список foreach (FigureOnSquare figs in board.SortFigures()) // перебираем все фигуры на клетках доски того цвета который делает ход { foreach (Squares to in Squares.SortSquares()) // перебираем все клетки куда можно пойти { FiguresMovements figm = new FiguresMovements(figs, to); if (movement.MovementIsPos(figm)) // проверяем может ли быть выполнен конкретный ход { if (!board.IsCheckAftertM(figm)) { AllMovements.Add(figm); } } } } }