Перевірка заповненого судоку
Перевірте заповнене судоку дев’ять на дев’ять без розв’язання порожніх клітинок.
def sudoku_complete(board):
if type(board) is not list or len(board) != 9:
raise ValueError("nine rows")
if any(type(row) is not list or len(row) != 9 or
any(type(v) is not int or not 1 <= v <= 9 for v in row) for row in board):
raise ValueError("nine integer digits per row")
target = set(range(1,10))
units = board + [list(col) for col in zip(*board)]
units += [[board[y+dy][x+dx] for dy in range(3) for dx in range(3)]
for y in (0,3,6) for x in (0,3,6)]
return all(set(unit) == target for unit in units)| Перевірте перед застосуванням | Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами. |
|---|---|
| Моделі | Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані. |
| Проєкт | Перевірте рядки, стовпці та блоки три на три, відхиляючи хибну форму чи нецілі входи й повертаючи хибність при повторенні цифр. |
def sudoku_complete(board):
if type(board) is not list or len(board) != 9:
raise ValueError("nine rows")
if any(type(row) is not list or len(row) != 9 or
any(type(v) is not int or not 1 <= v <= 9 for v in row) for row in board):
raise ValueError("nine integer digits per row")
target = set(range(1,10))
units = board + [list(col) for col in zip(*board)]
units += [[board[y+dy][x+dx] for dy in range(3) for dx in range(3)]
for y in (0,3,6) for x in (0,3,6)]
return all(set(unit) == target for unit in units)Відрізняйте заповнені дані від правильного результату
GridCoven — робоче середовище програмування з ШІ у Windows для точних запитань про код валідації. Почніть із розрізнення, потрібного застосунку, а потім додайте до обговорення відповідний код і приклади. Підключена модель може допомогти обговорити пропозицію, поки ви вирішуєте, які прийнятні й відхилені стани входять до контракту продукту.
Заповнене поле судоку дає конкретне завдання перевірки: кожна клітинка може містити значення, а поле все одно порушуватиме правило рядка, стовпця чи блока. Попросіть перевіряти заповнене поле без розв’язування порожніх клітинок. Зазначте, чим дані неправильної форми відрізняються від поля правильної форми, але з порушеннями правил, адже код виклику може обробляти ці результати по-різному.
Використовуйте незалежні тестові приклади для перевірки патча. Один може порушувати правило стовпця, проходячи перевірки рядків; інший — виявляти пропущену перевірку блока. Запустіть ці випадки наявними інструментами проєкту й перевірте, чи вхідні дані залишилися незмінними. Мета — зробити кожну потрібну умову спостережуваною, а не прийняти валідатор лише тому, що він розпізнає один відомий розв’язок.
GridCoven підтримує підключення до сумісних з OpenAI або Anthropic кінцевих точок з обліковими даними за потреби. Якщо ваша кінцева точка пропонує нефільтровану модель ШІ, вона все одно підпорядковується своїм фактичним можливостям та умовам сервісу. Модель і сервер визначають контекст та інструменти; ані назва, ані впевнене пояснення не доводять повноти валідації.
Визначення завдання перевірки заповненого поля
Як відрізнити дані неправильної форми від поля з порушеннями правил?
Спочатку зазначте потрібну форму й типи значень, а потім опишіть порушення правил, можливі у полі правильної форми. Визначте, як код виклику має отримувати кожен результат. Це дає змогу перевірити обробку помилок окремо від булевого рішення про коректність.
Чому тесту з правильним розв’язком недостатньо?
Він показує лише прийняття одного правильного прикладу. Додайте випадки, що ізолюють порушення рядка, стовпця та блока, щоб виявити пропущені умови. Незалежно перевірте очікувані результати, перш ніж звіряти з ними запропоновану реалізацію в тестах.
Чи можна попросити середовище заповнити порожні клітинки?
Це буде інше завдання програмування з іншим контрактом. Тут приклад перевіряє заповнені дані. Явно визначте обробку порожніх клітинок, щоб запропонований валідатор непомітно не став розв’язувачем і не сприймав неповне поле як готовий розв’язок.
Чи має валідація змінювати передане поле?
Зазначте це у вимозі. Для цього прикладу перевірки збережіть початкові дані й перевірте їх після валідації. Зміна даних може вплинути на подальшу поведінку інтерфейсу навіть за правильного результату валідації, тому додайте код споживача, якщо цей ризик важливий.
GridCoven · Оновлено 2026-10-25