//Ход игры для игроков public void Manage(IBoardElementController figure) { switch (figure.ElementName) { case "pawn": //Снимаем подсветку с выбранных boardManager.ResetSelected(); //Запоминаем и подсвечиваем выбранную фигуру playerManager.Select(figure); //Вычисляем координаты куда согласно правилам может сходить фигура List <(int, int)> cells = figure.Rule.GetPositions(figure.X, figure.Y, playerManager.AllFiguresKeys, boardManager.Board.Size); //Подсвечиваем найденные координаты boardManager.Select(cells); break; //Клетки обычно некликабельны. Если клетка кликабельна - значит выбрана фигура и клетка доступна для перемещения на нее case "cell": //Двигаем фигуру playerManager.MoveFigureTo(figure.GetCoordinates()); //Снимаем подсветку с ранее выбранных клеток boardManager.ResetSelected(); //Проверям условие победы CheckWin(); break; } }