Заблокированные диагональные лучи на доске
DiagonalIbis — AI-клиент для Windows для разбора лучей на игровой доске. В диалоге о проекте с совместимой моделью проверьте нумерацию клеток и остановку у препятствия, сохраняя различие между геометрией и полными правилами ходов.
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
| Проверьте перед применением | Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями. |
|---|---|
| Подключение | Базовый URL, учётные данные и доступный сервер. |
| Проект | Проверьте углы и ближние преграды, включая первую занятую клетку, отклоняйте неверные целые числа без обещания полной проверки ходов. |
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