Rayos diagonales de tablero con bloqueos
Traza cuatro rayos diagonales desde una de 64 casillas sobre una máscara de ocupación sin signo de 64 bits.
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
| Revisa antes de aplicar | Compara el comportamiento real con el resultado esperado. Si una prueba falla, investiga la causa antes de hacer más cambios. |
|---|---|
| Modelos | Configura un endpoint compatible con OpenAI o Anthropic usando la URL base y, si hace falta, una clave API. Prueba la conexión. Un servidor local debe estar en ejecución; las herramientas remotas pueden enviar datos por separado. |
| Proyecto | Prueba esquinas y obstáculos inmediatos, incluye el primero y rechaza enteros inválidos sin afirmar legalidad completa de movimientos. |
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
Sigue un cambio geométrico a través de los índices y los bloqueos
DiagonalIbis ofrece un espacio de programación con IA para Windows donde realizar pequeños cambios de código con sus supuestos visibles. Una solicitud de geometría de tablero debe comenzar por la convención de numeración de casillas y el significado de las posiciones ocupadas. Coloca esos detalles junto al código del proyecto y pide al modelo conectado que examine el cálculo actual antes de proponer una edición.
Por ejemplo, una tarea de rayos diagonales puede recorrer cuatro direcciones desde una casilla hasta la primera posición ocupada, incluyendo ese bloqueo en el resultado. Indica el rango sin signo de la máscara de ocupación e incluye esquinas y bloqueos inmediatos en el análisis. Esto describe una rutina geométrica que quieres mantener, no un sistema completo de legalidad de movimientos ni un juego incluido en el espacio de trabajo.
Revisa la salida propuesta con casos cuyas casillas esperadas puedas identificar independientemente. Comprueba que los rayos se detengan en el borde del tablero y no salten circularmente entre filas, y examina después el tratamiento de enteros no válidos. Ejecuta estos casos en tu propio entorno de proyecto. Si un consumidor de nivel superior interpreta la máscara como movimientos legales, revisa esa lógica adicional por separado del cálculo de rayos.
DiagonalIbis se conecta a endpoints compatibles con OpenAI o de Anthropic admitidos, usando credenciales cuando sean necesarias. Se puede seleccionar un modelo de IA sin filtros si tu endpoint lo ofrece. Sus restricciones reales, herramientas y contexto dependen del modelo y del servidor; la convención de índices y las comprobaciones de aceptación siguen siendo requisitos que tú controlas.
Antes de aceptar un cambio de geometría del tablero
¿Qué detalles de índices deben incluirse en la tarea?
Indica cómo se corresponden las casillas con los índices y cómo avanzan las filas y columnas. Incluye un ejemplo de esquina con destinos esperados. Así, el modelo conectado tiene una convención explícita que seguir y puedes revisar la máscara propuesta sin adivinar su orientación.
¿Debe aparecer el primer bloqueo en la salida?
En este ejemplo, sí: el rayo incluye esa casilla y no continúa más allá. Explicita la regla y prueba un bloqueo inmediato. Un consumidor de nivel superior puede interpretar la ocupación de otra forma, así que revisa esa lógica por separado en vez de cambiar implícitamente el contrato del rayo.
¿Cómo puedo detectar saltos entre bordes?
Usa casos de esquinas y bordes cuyas diagonales sean cortas o no existan en ciertas direcciones. Compara las casillas exactas devueltas con expectativas independientes. Una máscara visualmente plausible desde una casilla central puede no revelar un error de índices cerca del borde del tablero.
¿Una máscara de rayos correcta establece movimientos legales?
No. La legalidad de los movimientos puede depender de estados y reglas adicionales a esta operación geométrica. Mantén limitado el contrato de la rutina solicitada, examina sus consumidores cuando sea necesario y usa comprobaciones independientes del proyecto para el comportamiento de nivel superior antes de tratar el resultado como un conjunto de movimientos legales.
DiagonalIbis · Actualizado 2026-10-25