SpiralJuniper объединяет код обхода сетки и ИИ-диалог о проекте. Проверьте предложенные обновления границ и убедитесь, что узкие сетки обходятся без пропусков и повторов.
Конкретная отправная точка · Обход сетки по часовой спирали ×
def spiral(rows, columns):
if any(type(v) is not int or not 0 <= v <= 100
for v in (rows, columns)):
raise ValueError("dimension.range")
top, bottom, left, right = 0, rows - 1, 0, columns - 1
result = []
while top <= bottom and left <= right:
result.extend((top, c) for c in range(left, right + 1))
top += 1
result.extend((r, right) for r in range(top, bottom + 1))
right -= 1
if top <= bottom:
result.extend((bottom, c) for c in range(right, left - 1, -1))
bottom -= 1
if left <= right:
result.extend((r, left) for r in range(bottom, top - 1, -1))
left += 1
return result
✳Обойдите координаты прямоугольной сетки по часовой спирали из верхнего левого угла.
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
Проект
Проверьте нулевые размеры, единственную строку и столбец, отклоняя размеры вне диапазона от нуля до 100 и проверяя однократное посещение каждой координаты.
Проверьте перед применением
Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.
def spiral(rows, columns):
if any(type(v) is not int or not 0 <= v <= 100
for v in (rows, columns)):
raise ValueError("dimension.range")
top, bottom, left, right = 0, rows - 1, 0, columns - 1
result = []
while top <= bottom and left <= right:
result.extend((top, c) for c in range(left, right + 1))
top += 1
result.extend((r, right) for r in range(top, bottom + 1))
right -= 1
if top <= bottom:
result.extend((bottom, c) for c in range(right, left - 1, -1))
bottom -= 1
if left <= right:
result.extend((r, left) for r in range(bottom, top - 1, -1))
left += 1
return result
Рабочая среда с ИИ для кода
Проверьте контракт вывода перед переписыванием обхода
Когда обход передаёт данные другому компоненту, порядок вывода важен не меньше посещённых ячеек. SpiralJuniper — среда программирования с ИИ для Windows для проверки этой связи с подключённой моделью. Включите в обсуждение функцию обхода и потребляющий её вывод код, затем опишите поведение, которое нужно сохранить.
Например, запрос может касаться обхода сетки по часовой стрелке для упорядочивания ячеек в предпросмотре. Попросите помощника изучить обработку узких прямоугольников и повторное появление координат. Предоставьте небольшую ожидаемую последовательность, а не только картинку. Это задаёт правке конкретный контракт, не предполагая наличия в среде приложения предпросмотра сетки.
Читайте изменения вместе с кодом потребителя. Проверьте, меняются ли порядок, соглашение о координатах или поведение пустой сетки, и выполните тесты для одной строки, одного столбца и прямоугольника. Если упрощение реализации меняет последовательность, на которую опирается интерфейс, решите этот вопрос о продукте до принятия правки.
SpiralJuniper поддерживает OpenAI-совместимые конечные точки моделей или Anthropic. Выберите модель ИИ с устранёнными механизмами отказа, если сервис её предлагает, с её собственными ограничениями и возможностями. Зависящие от сервера контекст и инструменты определяют обсуждение кода; ваши тестовые данные и проверка устанавливают, подходит ли правка приложению.
Перед заменой реализации обхода
Что должен показывать тест ожидаемого обхода?
Перечислите координаты в точном порядке, требуемом потребителем, включая начальный угол и направление. Множество посещённых ячеек не выявляет ошибок порядка. Сохраните небольшой прямоугольный пример, доступный непосредственной проверке.
Зачем отдельно проверять сетки из одной строки и одного столбца?
Они могут выявить обновления границ, повторно посещающие ячейки или пропускающие последний участок. Добавьте оба случая в проверки проекта вместе с ожидаемой обработкой пустой сетки до принятия обобщённой правки обхода.
Может ли изменение порядка координат испортить в остальном правильный результат?
Да. Потребитель может трактовать пары как строку и столбец, а замена возвращать обратный порядок. Попросите модель проследить использование пар и сохранить документированное соглашение, если задача явно не включает его изменение.
Достаточно ли визуального предпросмотра для одобрения кода?
Проверяйте им пользовательский результат, но сохраняйте и тесты точных последовательностей. Предпросмотр может скрывать повторы или пропущенные координаты. Выполните существующие проверки проекта и сравните предложение с записанным контрактом обхода.