NNimClover
Сценарии

Сценарии работы с кодом · Ходы Ним по обычным правилам

03
Вокруг ваших задач

Конкретная отправная точка

Выберите выигрышное уменьшение для обычного Ним из не более 128 куч размером от нуля до миллиарда объектов. Проверьте нулевые и проигрышные позиции, возвращая отсутствие хода при нулевом xor и отклоняя отрицательные или логические размеры.

01

Откройте контекст

Выберите папку проекта и обозначьте нужные файлы или поведение.

02

Опишите изменение

Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.

03

Изучите работу

Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.

04

Проверьте результат

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

Ходы Ним по обычным правилам

Конкретная отправная точка
def nim_move(piles):
    if type(piles) not in (list, tuple) or len(piles) > 128 or any(type(v) is not int or not 0 <= v <= 10**9 for v in piles):
        raise ValueError("nim.piles")
    balance = 0
    for pile in piles:
        balance ^= pile
    if balance == 0:
        return None
    for index, pile in enumerate(piles):
        reduced = pile ^ balance
        if reduced < pile:
            return index, reduced

Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.

Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗