DDiagonalIbis
AI-werkruimte voor code

Geblokkeerde diagonale bordstralen

Volg vier diagonalen vanaf één van 64 bordvelden met een ongetekend 64-bits bezettingsmasker.

● ● ●DiagonalIbis●
Werkprocessen · Geblokkeerde diagonale bordstralen ×
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
✳Geblokkeerde diagonale bordstralen
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Controleer vóór het toepassenVergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
ModellenStel een OpenAI-compatibel of Anthropic-endpoint in met de basis-URL en zo nodig een API-sleutel. Test de verbinding. Een lokale modelserver moet actief zijn; externe hulpmiddelen kunnen apart gegevens versturen.
ProjectTest hoeken en nabije blokkers, neem de eerste blokker mee en weiger ongeldige gehele getallen zonder volledige zetlegaliteit te claimen.
Werkprocessen

Geblokkeerde diagonale bordstralen

Werkprocessen ↗
Werkprocessen
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
AI-werkruimte voor code

Volg een geometriewijziging door indexering en blokkades heen

DiagonalIbis biedt een AI-programmeerwerkruimte voor Windows om kleine bronwijzigingen te maken met zichtbare aannames. Een verzoek over bordgeometrie moet beginnen met de conventie voor veldnummering en de betekenis van bezette posities. Zet die details naast de projectcode en vraag het verbonden model de huidige berekening te onderzoeken voordat het een wijziging voorstelt.

Een taak over diagonale stralen kan bijvoorbeeld vier richtingen vanaf een veld volgen tot de eerste bezette positie en die blokkade in het resultaat opnemen. Vermeld het bereik van het bezettingsmasker zonder teken en neem hoeken en directe blokkades mee in de bespreking. Dit beschrijft een geometrische routine die je wilt onderhouden, geen volledig systeem voor geldige zetten of een spel dat de werkruimte meelevert.

Beoordeel de voorgestelde uitvoer met testgevallen waarvan je de verwachte velden onafhankelijk kunt identificeren. Controleer dat stralen aan de bordrand stoppen en niet tussen rijen omlopen en onderzoek daarna de afhandeling van ongeldige gehele getallen. Voer deze gevallen uit in je eigen projectomgeving. Als een afnemer op hoger niveau het masker als geldige zetten interpreteert, beoordeel die aanvullende logica dan los van de straalberekening.

DiagonalIbis verbindt met ondersteunde OpenAI-compatibele of Anthropic-eindpunten, met inloggegevens waar vereist. Een ongefilterd AI-model kan worden geselecteerd als je eindpunt dat aanbiedt. De werkelijke beperkingen, tools en context hangen af van het model en de server; de indexeringsconventie en acceptatiecontroles blijven eisen die jij beheert.

Voordat je een wijziging aan bordgeometrie accepteert

Welke indexeringsdetails horen in de taak?

Vermeld hoe velden aan indices worden gekoppeld en hoe rijen en kolommen oplopen. Neem een hoekvoorbeeld met verwachte bestemmingen op. Het verbonden model heeft dan een expliciete conventie om te volgen en je kunt het voorgestelde masker beoordelen zonder de oriëntatie te raden.

Moet de eerste blokkade in de uitvoer verschijnen?

Voor dit voorbeeld wel: de straal omvat dat veld en stopt daarna. Maak de regel expliciet en test een directe blokkade. Een afnemer op hoger niveau kan bezetting anders interpreteren, dus beoordeel die logica afzonderlijk in plaats van het straalcontract impliciet te wijzigen.

Hoe herken ik onterecht omlopen aan de rand?

Gebruik hoek- en randtestgevallen waarvan de diagonalen in bepaalde richtingen kort zijn of ontbreken. Vergelijk de exacte geretourneerde velden met onafhankelijke verwachtingen. Een visueel aannemelijk masker vanaf een centraal veld kan een indexeringsfout nabij de bordgrens missen.

Bewijst een correct straalmasker dat zetten geldig zijn?

Nee. De geldigheid van zetten kan afhangen van aanvullende toestand en regels buiten deze geometrische bewerking. Houd het contract van de gevraagde routine beperkt, onderzoek waar nodig de afnemers en gebruik afzonderlijke projectcontroles voor gedrag op hoger niveau voordat je het resultaat als een verzameling geldige zetten behandelt.

Download voor Windows ↗

DiagonalIbis · Bijgewerkt 2026-10-25