def spiral(rows, columns):
if any(type(v) is not int or not 0 <= v <= 100
for v in (rows, columns)):
raise ValueError("dimension.range")
top, bottom, left, right = 0, rows - 1, 0, columns - 1
result = []
while top <= bottom and left <= right:
result.extend((top, c) for c in range(left, right + 1))
top += 1
result.extend((r, right) for r in range(top, bottom + 1))
right -= 1
if top <= bottom:
result.extend((bottom, c) for c in range(right, left - 1, -1))
bottom -= 1
if left <= right:
result.extend((r, left) for r in range(bottom, top - 1, -1))
left += 1
return result
✳Bezoek alle coördinaten van een rechthoekig raster in een spiraal met de klok mee vanaf linksboven.
✓ WijzigingenControleer vóór het toepassen ↗
Illustratie van de werkruimte
Project
Test nulafmetingen en enkele rijen of kolommen en weiger afmetingen buiten nul tot 100; elke coördinaat moet eenmaal voorkomen.
Controleer vóór het toepassen
Vergelijk het werkelijke gedrag met het verwachte resultaat. Onderzoek een mislukte controle voordat je verdergaat met wijzigingen.
Modellen
Stel 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.
def spiral(rows, columns):
if any(type(v) is not int or not 0 <= v <= 100
for v in (rows, columns)):
raise ValueError("dimension.range")
top, bottom, left, right = 0, rows - 1, 0, columns - 1
result = []
while top <= bottom and left <= right:
result.extend((top, c) for c in range(left, right + 1))
top += 1
result.extend((r, right) for r in range(top, bottom + 1))
right -= 1
if top <= bottom:
result.extend((bottom, c) for c in range(right, left - 1, -1))
bottom -= 1
if left <= right:
result.extend((r, left) for r in range(bottom, top - 1, -1))
left += 1
return result
AI-werkruimte voor code
Beoordeel het uitvoercontract voordat u de doorloop herschrijft
Wanneer een doorloop een andere component voedt, is de uitvoervolgorde even belangrijk als de bezochte cellen. SpiralJuniper is een AI-programmeeromgeving voor Windows om die relatie met een aangesloten model te beoordelen. Betrek de doorloopfunctie en de code die de uitvoer gebruikt bij het gesprek en beschrijf vervolgens welk gedrag de wijziging moet behouden.
Een voorbeeldverzoek kan gaan over een roosterdoorloop met de klok mee die cellen in een voorbeeldweergave ordent. Vraag de assistent te inspecteren hoe de huidige implementatie smalle rechthoeken behandelt en of coördinaten dubbel voorkomen. Geef een kleine verwachte reeks in plaats van alleen een afbeelding. Zo krijgt een mogelijke patch een concreet contract zonder aan te nemen dat de omgeving een toepassing voor roostervoorbeelden bevat.
Lees de voorgestelde wijzigingen samen met de afnemer. Controleer of volgorde, coördinatenconventie of gedrag bij een leeg rooster veranderd zijn en voer projecttests uit voor één rij, één kolom en een rechthoek. Als de implementatie eenvoudiger wordt maar de reeks verandert waarop de interface vertrouwt, los die productbeslissing dan op voordat u de wijziging accepteert.
SpiralJuniper ondersteunt OpenAI-compatibele of Anthropic-modelendpoints. Kies een abliterated AI-model als uw dienst dat aanbiedt, met de eigen beperkingen en mogelijkheden. Serverafhankelijke context en toolondersteuning bepalen het programmeergesprek; uw testgevallen en beoordeling bepalen of de patch in de toepassing thuishoort.
Voordat u een doorloopimplementatie vervangt
Wat moet een testgeval voor een verwachte doorloop tonen?
Vermeld de coördinaten in de exacte volgorde die de afnemer vereist, inclusief beginhoek en richting. Een verzameling bezochte cellen toont geen volgordefouten. Bewaar een klein rechthoekig testgeval dat een beoordelaar direct kan inspecteren.
Waarom roosters met één rij en één kolom apart controleren?
Ze kunnen grensupdates blootleggen die dezelfde cellen opnieuw bezoeken of het laatste segment overslaan. Neem beide gevallen op in uw projectcontroles, samen met het verwachte gedrag bij een leeg rooster, voordat u een algemene doorlooppatch accepteert.
Kan gewijzigde coördinatenvolgorde een verder correct resultaat breken?
Ja. Een afnemer kan paren interpreteren als rij gevolgd door kolom terwijl een vervanging het omgekeerde retourneert. Vraag het model te volgen hoe paren worden gebruikt en de gedocumenteerde conventie te behouden, tenzij de taak expliciet een wijziging daarvan omvat.
Is een visuele voorbeeldweergave voldoende om de code goed te keuren?
Gebruik die om het gebruikersresultaat te inspecteren, maar behoud ook exacte reekstests. Een voorbeeldweergave kan dubbele of overgeslagen coördinaten verbergen. Voer bestaande projectcontroles uit en vergelijk het voorstel met het schriftelijke doorloopcontract.