Blockierte diagonale Brettstrahlen
Verfolge vier diagonale Strahlen von einem der 64 Brettfelder durch eine vorzeichenlose 64-Bit-Belegungsmaske.
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
| Vor dem Anwenden prüfen | Vergleichen Sie das tatsächliche Verhalten mit dem erwarteten Ergebnis. Klären Sie fehlgeschlagene Prüfungen vor weiteren Änderungen. |
|---|---|
| Modelle | Richten Sie einen OpenAI-kompatiblen oder Anthropic-Endpunkt mit Basis-URL und gegebenenfalls API-Schlüssel ein. Testen Sie die Verbindung. Ein lokaler Modellserver muss laufen; entfernte Werkzeuge können Daten separat übertragen. |
| Projekt | Teste Ecken und direkte Blockaden, zähle die erste Blockade mit und lehne ungültige Ganzzahlen ohne vollständige Zugprüfung ab. |
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
Verfolgen Sie Geometrieänderungen durch Indizierung und Blockierer
DiagonalIbis bietet einen KI-Programmierarbeitsbereich für Windows für kleine Quellcodeänderungen mit sichtbaren Annahmen. Eine Anfrage zur Brettgeometrie sollte mit der Feldnummerierung und der Bedeutung belegter Positionen beginnen. Stellen Sie diese Angaben neben den Projektcode und lassen Sie das verbundene Modell die aktuelle Berechnung prüfen, bevor es eine Änderung vorschlägt.
Eine Aufgabe zu Diagonalstrahlen kann beispielsweise vier Richtungen von einem Feld bis zur ersten belegten Position verfolgen und diesen Blockierer im Ergebnis einschließen. Geben Sie den vorzeichenlosen Wertebereich der Belegungsmaske an und berücksichtigen Sie Ecken und unmittelbare Blockierer im Gespräch. Das beschreibt eine zu wartende Geometrieroutine, kein vollständiges System zur Prüfung legaler Züge oder ein im Arbeitsbereich enthaltenes Spiel.
Prüfen Sie die vorgeschlagene Ausgabe mit Testfällen, deren erwartete Felder Sie unabhängig bestimmen können. Kontrollieren Sie, dass Strahlen am Brettrand stoppen und nicht zwischen Zeilen umlaufen, und prüfen Sie dann die Behandlung ungültiger Ganzzahlen. Führen Sie diese Fälle in Ihrer Projektumgebung aus. Interpretiert ein übergeordneter Empfänger die Maske als legale Züge, prüfen Sie diese zusätzliche Logik getrennt von der Strahlberechnung.
DiagonalIbis verbindet sich mit unterstützten OpenAI-kompatiblen oder Anthropic-Endpunkten, bei Bedarf mit Zugangsdaten. Ein ungefiltertes KI-Modell kann ausgewählt werden, wenn Ihr Endpunkt es anbietet. Tatsächliche Einschränkungen, Werkzeuge und Kontext hängen von Modell und Server ab; Indizierungskonvention und Akzeptanzprüfungen bleiben Anforderungen unter Ihrer Kontrolle.
Vor Annahme einer Brettgeometrieänderung
Welche Indizierungsdetails gehören in die Aufgabe?
Geben Sie an, wie Felder auf Indizes abgebildet werden und wie Zeilen und Spalten fortschreiten. Fügen Sie ein Eckbeispiel mit erwarteten Zielfeldern hinzu. So hat das verbundene Modell eine ausdrückliche Konvention und Sie können die Maske prüfen, ohne ihre Orientierung zu erraten.
Soll der erste Blockierer in der Ausgabe erscheinen?
In diesem Beispiel ja: Der Strahl enthält dieses Feld und endet dahinter. Machen Sie die Regel ausdrücklich und testen Sie einen unmittelbaren Blockierer. Ein übergeordneter Empfänger kann Belegung anders interpretieren; prüfen Sie diese Logik separat, statt den Strahlvertrag implizit zu ändern.
Wie erkenne ich ein Umlaufen am Rand?
Verwenden Sie Eck- und Randtestfälle, deren Diagonalen in bestimmten Richtungen kurz sind oder fehlen. Vergleichen Sie die exakten zurückgegebenen Felder mit unabhängigen Erwartungen. Eine visuell plausible Maske eines zentralen Feldes zeigt einen Indizierungsfehler nahe dem Brettrand möglicherweise nicht.
Belegt eine korrekte Strahlmaske legale Züge?
Nein. Zuglegalität kann von zusätzlichem Zustand und Regeln jenseits dieser Geometrieoperation abhängen. Halten Sie den Vertrag der Routine eng, prüfen Sie bei Bedarf ihre Empfänger und verwenden Sie separate Projektprüfungen für übergeordnetes Verhalten, bevor Sie das Ergebnis als Menge legaler Züge behandeln.
DiagonalIbis · Aktualisiert 2026-10-25