Fluxos de trabalho · Espirais de grade no sentido horário ×
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
✳Visite todas as coordenadas de uma grade retangular em espiral horária desde o canto superior esquerdo.
✓ AlteraçõesRevise antes de aplicar ↗
Ilustração do ambiente
Projeto
Teste dimensões zero e linhas ou colunas únicas, rejeitando dimensões fora de zero a 100 e verificando uma visita por coordenada.
Revise antes de aplicar
Compare o comportamento real com o resultado esperado. Se uma verificação falhar, investigue a causa antes de fazer outras alterações.
Modelos
Configure um endpoint compatível com OpenAI ou Anthropic com a URL base e uma chave API, quando necessária. Teste a conexão. O servidor local precisa estar em execução; ferramentas remotas podem transmitir dados separadamente.
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
Ambiente de programação com IA
Revise o contrato de saída antes de reescrever o percurso
Quando um percurso alimenta outro componente, a ordem de saída importa tanto quanto as células visitadas. SpiralJuniper é um ambiente de programação com IA para Windows para revisar essa relação com um modelo conectado. Leve à discussão a função de percurso e o código que consome sua saída e descreva o comportamento que a alteração proposta deve preservar.
Uma solicitação de exemplo pode tratar de um percurso de grade no sentido horário usado para ordenar células em uma prévia. Peça ao assistente que inspecione como a implementação atual trata retângulos estreitos e se alguma coordenada aparece duas vezes. Forneça uma pequena sequência esperada, e não apenas uma imagem. Isso dá à possível alteração um contrato concreto sem presumir que o ambiente inclua uma aplicação de prévia de grades.
Leia as alterações propostas junto com o consumidor. Confira se a ordem, a convenção de coordenadas ou o comportamento de grade vazia mudaram e execute testes do projeto cobrindo uma única linha, uma única coluna e um retângulo. Se a implementação ficar mais simples, mas mudar a sequência da qual a interface depende, resolva essa decisão de produto antes de aceitá-la.
SpiralJuniper suporta endpoints de modelos compatíveis com OpenAI ou da Anthropic. Escolha um modelo de IA abliterado se disponível no serviço, com suas próprias restrições e capacidades. O contexto e o suporte a ferramentas dependentes do servidor moldam a conversa de programação; seus casos de teste e sua revisão estabelecem se a alteração deve entrar na aplicação.
Antes de substituir uma implementação de percurso
O que um caso de teste de percurso esperado deve mostrar?
Liste as coordenadas na ordem exata exigida pelo consumidor, incluindo o canto inicial e a direção. Um conjunto de células visitadas não revela erros de ordem. Mantenha um pequeno caso retangular que um revisor possa inspecionar diretamente.
Por que conferir separadamente grades de uma linha e de uma coluna?
Elas podem revelar atualizações de limites que revisitam as mesmas células ou pulam o segmento final. Inclua ambos os casos nas verificações do projeto, junto com o comportamento de grade vazia esperado pela interface, antes de aceitar uma alteração generalizada de percurso.
Mudar a ordem das coordenadas pode quebrar um resultado que seria correto?
Sim. Um consumidor pode interpretar os pares como linha e depois coluna, enquanto a substituição retorna o inverso. Peça ao modelo que rastreie o consumo dos pares e preserve a convenção documentada, salvo quando a tarefa incluir explicitamente sua mudança.
Uma prévia visual deve bastar para aprovar o código?
Use-a para inspecionar o resultado apresentado ao usuário, mas mantenha também testes de sequência exata. Uma prévia pode ocultar coordenadas duplicadas ou ignoradas. Execute as verificações existentes do projeto e compare a proposta com o contrato escrito de percurso.