SSpiralJuniper
Робоче середовище з ШІ для коду

Обхід сітки за годинниковою спіраллю

Обійдіть координати прямокутної сітки за годинниковою спіраллю з верхнього лівого кута.

● ● ●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 та вимагаючи одного відвідування кожної координати.
Перевірте перед застосуванням
Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами.
Моделі
Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані.
Сценарії

Обхід сітки за годинниковою спіраллю

Сценарії ↗
Сценарії
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. Виберіть аблітеровану модель ШІ, якщо ваш сервіс її пропонує, з її власними обмеженнями й можливостями. Залежні від сервера контекст і підтримка інструментів визначають умови розмови про код; ваші тести й перевірка визначають, чи доречне виправлення в застосунку.

Перед заміною реалізації обходу

Що має показувати тестовий приклад очікуваного обходу?

Перелічіть координати в точному порядку, потрібному споживачу, включно з початковим кутом і напрямком. Множина відвіданих клітинок не виявляє помилок порядку. Збережіть невеликий прямокутний приклад для безпосередньої перевірки рецензентом.

Навіщо окремо перевіряти сітки з одним рядком і одним стовпцем?

Вони можуть виявити оновлення меж, що повторно відвідують клітинки або пропускають останній відрізок. Додайте обидва випадки до перевірок проєкту разом з очікуваною інтерфейсом поведінкою порожньої сітки перед прийняттям узагальненого виправлення обходу.

Чи може зміна порядку координат зіпсувати інакше правильний результат?

Так. Споживач може тлумачити пару як рядок і стовпець, а заміна повертатиме їх навпаки. Попросіть модель простежити використання пар і зберегти задокументовану домовленість, якщо завдання явно не передбачає її зміни.

Чи достатньо візуального перегляду для схвалення коду?

Використовуйте його для перевірки видимого користувачу результату, але зберігайте й тести точних послідовностей. Перегляд може приховати повтори чи пропущені координати. Виконайте наявні перевірки проєкту та порівняйте пропозицію з письмовим контрактом обходу.

Завантажити для Windows ↗

SpiralJuniper · Оновлено 2026-10-25