Используя django-rest-interface

Вы должны принять во внимание состояние доски для этого. Я думаю, что общий способ сделать это - проверить, пуста ли каждая ячейка на пути.

    public enum PieceColor { Black, White }
    public interface IBoard
    {
        bool IsEmpty(int x, int y);
        PieceColor GetPieceColor(int x, int y);
    }

    IBoard board;

    bool BishopCanMove(PieceColor bishopColor, int fromX, int fromY, int toX, int toY)
    {
        int pathLength = Mathf.Abs(toX - fromX);
        if (pathLength != Mathf.Abs(toY - fromY)) return false; // Not diagonal
        // Also validate if the coordinates are in the 0-7 range

        // Check all cells before the target
        for (int i = 1; i < pathLength; i++)
        {
            int x = fromX + i;
            int y = fromY + i;

            if(board.IsEmpty(x, y)) continue; // No obstacles here: keep going
            else return false; // Obstacle found before reaching target: the move is invalid
        }

        // Check target cell
        if (board.IsEmpty(toX, toY)) return true; // No piece: move is valid

        // There's a piece here: the move is valid only if we can capture
        return board.GetPieceColor(toX, toY) == bishopColor;
    }

Интерфейс IBoard здесь только для того, чтобы показать точку. У вас должно быть состояние правления, которое каким-то образом раскрывает эту информацию.

20
задан Sam Corder 17 October 2008 в 16:53
поделиться

3 ответа

Я бы посмотрел на использование приложения django-поршень http://bitbucket.org/jespern/django-piston/wiki/Home , если безопасность является вашей главной заботой.

В прошлом я использовал django-rest-interface, его надежный и хотя простой может быть довольно мощным, однако django-поршень кажется более гибким в будущем.

12
ответ дан 30 November 2019 в 01:11
поделиться

Ну, от вида вещей существует authentication параметр к Collection. (см. этот пример: authentication.py)

118-секундный, (даже если у Django еще нет его) должно, вероятно, быть промежуточное программное обеспечение, которое делает проверку формы CSRF/XSRF. (О, там кажется быть одним .) Необходимо также смочь использовать login_required и permission_required декораторы в urls.py.

3
ответ дан 30 November 2019 в 01:11
поделиться

Даже с Параметром аутентификации, Вы не имеете мелкомодульного контроля над тем, что могут сделать люди. Текущая реализация интерфейса Django-REST не отслеживает информацию о пользователе, таким образом, Вы не имеете эту информацию в наличии для того, чтобы сделать мелкомодульные проверки авторизации.

Видят Выпуск № 32 .

Однако, относительно легко расширить его для добавления некоторых опций. Я использую много подклассов для добавления опций.

Обновление запроса с данными для входа, однако, хитро в Django. Вместо того, чтобы делать это, я оставляю информацию в Наборе.

Прямо сейчас, я оценил бы, что между патчами и подклассами, что я записал, является почти столь же большим как прокрутка моих собственных функций представления RESTful.

Django-REST, однако, корректно и аккуратно обрабатывает Дайджест-аутентификацию HTTP. Я не надеюсь заменить их некоторым декоратором для моих функций представления Django.

[Возможно, мы должны открыть исходный проект штамповочного пресса и разработать чистую замену?]

3
ответ дан 30 November 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: