Заблоковані діагональні промені на дошці
Проведіть чотири діагональні промені з однієї з 64 клітинок через беззнакову 64-бітну маску зайнятості.
def diagonal_rays(square, occupied):
if type(square) is not int or not 0 <= square < 64 or type(occupied) is not int or not 0 <= occupied < 2**64:
raise ValueError("rays.input")
row, column = divmod(square, 8)
result = 0
for dr, dc in ((1, 1), (1, -1), (-1, 1), (-1, -1)):
r, c = row+dr, column+dc
while 0 <= r < 8 and 0 <= c < 8:
bit = 1 << (8*r+c)
result |= bit
if occupied & bit:
break
r, c = r+dr, c+dc
return result
| Перевірте перед застосуванням | Порівняйте фактичну поведінку з очікуваним результатом. Якщо перевірка не проходить, з’ясуйте причину перед наступними змінами. |
|---|---|
| Моделі | Налаштуйте OpenAI-сумісний або Anthropic endpoint із базовою URL-адресою та API-ключем, якщо він потрібен. Перевірте з’єднання. Локальний сервер моделі має працювати; віддалені інструменти можуть окремо передавати дані. |
| Проєкт | Перевірте кути й близькі перешкоди, включіть першу перешкоду та відхиліть хибні цілі числа без повної перевірки законності ходів. |
def diagonal_rays(square, occupied):
if type(square) is not int or not 0 <= square < 64 or type(occupied) is not int or not 0 <= occupied < 2**64:
raise ValueError("rays.input")
row, column = divmod(square, 8)
result = 0
for dr, dc in ((1, 1), (1, -1), (-1, 1), (-1, -1)):
r, c = row+dr, column+dc
while 0 <= r < 8 and 0 <= c < 8:
bit = 1 << (8*r+c)
result |= bit
if occupied & bit:
break
r, c = r+dr, c+dc
return result
Простежте геометричну зміну через індекси та блокувальники
DiagonalIbis надає робоче середовище програмування з ШІ для Windows для невеликих змін коду з видимими припущеннями. Запит щодо геометрії дошки слід починати з домовленості нумерації клітинок і значення зайнятих позицій. Розмістіть ці деталі поруч із кодом проєкту й попросіть підключену модель дослідити поточне обчислення до пропозиції зміни.
Наприклад, завдання діагональних променів може простежувати чотири напрямки від клітинки до першої зайнятої позиції, включаючи цей блокувальник у результат. Укажіть діапазон беззнакової маски зайнятості й додайте до обговорення кути та безпосередні блокувальники. Це описує геометричну процедуру для супроводу, а не повну систему допустимості ходів чи гру, надану середовищем.
Перевірте запропонований результат на прикладах, очікувані клітинки яких можна визначити незалежно. Переконайтеся, що промені зупиняються на краю дошки й не переходять між рядками, а потім дослідіть обробку недопустимих цілих значень. Запустіть ці випадки у власному середовищі проєкту. Якщо споживач вищого рівня трактує маску як допустимі ходи, перевірте цю додаткову логіку окремо від обчислення променів.
DiagonalIbis підключається до підтримуваних кінцевих точок, сумісних з OpenAI, або Anthropic з обліковими даними за потреби. Модель ШІ без фільтрів можна вибрати, якщо її пропонує кінцева точка. Її фактичні обмеження, інструменти й контекст залежать від моделі та сервера; домовленість індексування та перевірки приймання залишаються вимогами під вашим контролем.
Перед прийняттям зміни геометрії дошки
Які деталі індексування належать до завдання?
Укажіть відображення клітинок в індекси й напрям зростання рядків і стовпців. Додайте кутовий приклад з очікуваними позиціями. Тоді підключена модель матиме явну домовленість, а ви зможете перевірити запропоновану маску без вгадування орієнтації.
Чи має перший блокувальник бути в результаті?
У цьому прикладі так: промінь включає цю клітинку й не йде далі. Явно вкажіть правило та протестуйте безпосередній блокувальник. Споживач вищого рівня може інакше тлумачити зайнятість, тому перевірте цю логіку окремо, не змінюючи контракт променя неявно.
Як виявити перехід через край?
Використайте кутові й крайові приклади, де діагоналі короткі або відсутні в певних напрямках. Порівняйте точні повернені клітинки з незалежними очікуваннями. Візуально правдоподібна маска із центральної клітинки може не виявити помилки індексування біля краю дошки.
Чи встановлює правильна маска променів допустимі ходи?
Ні. Допустимість ходів може залежати від додаткового стану й правил поза цією геометричною операцією. Зберігайте вузький контракт процедури, за потреби досліджуйте споживачів і використовуйте окремі перевірки поведінки вищого рівня, перш ніж вважати результат набором допустимих ходів.
DiagonalIbis · Оновлено 2026-10-25