예제 #1
0
    //Ход игры для игроков
    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;
        }
    }