SSpiralJuniper
AIコーディングワークスペース

時計回りの格子らせん

長方形格子の座標を左上から時計回りのらせんで訪問します。

● ● ●SpiralJuniper●
ワークフロー · 時計回りの格子らせん ×
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
✳長方形格子の座標を左上から時計回りのらせんで訪問します。
✓ 変更内容適用前に確認 ↗
ワークスペースのイメージ
プロジェクト
ゼロ寸法と1行または1列を確認し、ゼロから100以外の寸法を拒否して各座標を一度だけ訪れることを検証します。
適用前に確認
実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。
モデル
OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。
ワークフロー

時計回りの格子らせん

ワークフロー ↗
ワークフロー
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コーディングワークスペース

走査を書き直す前に出力仕様をレビューする

走査結果を別のコンポーネントに渡す場合、出力順序は訪れるセルと同じくらい重要です。SpiralJuniperは、接続モデルとこの関係をレビューするWindows用AIコーディング作業環境です。走査関数と出力を利用するコードを議論に持ち込み、変更案が維持すべき動作を説明してください。

依頼例として、プレビューのセルを並べる時計回りの格子走査が考えられます。現在の実装が細長い長方形をどう扱い、同じ座標が2回現れないかをアシスタントに調べてもらいましょう。図だけでなく、小さな期待列を示してください。作業環境に格子プレビューアプリが含まれると想定せずに、パッチ案へ具体的な仕様を与えられます。

利用側と一緒に変更案を読みます。順序、座標の規約、空の格子の動作が変わっていないかを確認し、1行、1列、長方形を網羅するプロジェクトのテストを実行しましょう。実装が簡単になってもインターフェースが依存する列が変わるなら、採用前にその製品上の判断を解決してください。

SpiralJuniperはOpenAI互換またはAnthropicのモデルエンドポイントに対応します。サービス経由で利用できれば、独自の制約と能力を持つ、拒否抑制を除去したAIモデルを選べます。サーバーに依存するコンテキストとツール対応がコーディングの会話に影響しますが、アプリケーションに適したパッチかを確かめるのは自分のテストデータとレビューです。

走査実装を置き換える前に

期待する走査のテストデータには何を示すべきですか?

開始する角と方向も含め、利用側が求める正確な順序で座標を列挙します。訪問セルの集合では順序の誤りは分かりません。レビュー担当者が直接確認できる小さな長方形のテストデータを残してください。

1行の格子と1列の格子を別々に確認するのはなぜですか?

同じセルへの再訪や最後の部分の飛ばしを引き起こす境界更新を見つけられる場合があるからです。一般化した走査パッチを採用する前に、インターフェースが期待する空格子の動作とともに、両ケースをプロジェクトのチェックに含めてください。

座標順序を変えると、それ以外は正しい結果でも壊れますか?

はい。利用側がペアを行、列と解釈するのに、代替実装が逆順で返す場合があります。ペアの利用方法をモデルに追跡させ、作業に変更が明示的に含まれない限り文書化した規約を維持してください。

見た目のプレビューだけでコードを承認してよいですか?

ユーザーに見える結果の確認に使いつつ、正確な列のテストも残してください。プレビューは重複や座標の飛ばしを隠す場合があります。既存のプロジェクトのチェックを実行し、記述した走査仕様と提案を比較しましょう。

Windows版をダウンロード ↗

SpiralJuniper · 更新日 2026-10-25