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

通常ルールのニムの手

0~10億個の最大128山から、通常ルールのニムで勝てる減らし方を選びます。

● ● ●NimClover●
ワークフロー · 通常ルールのニムの手 ×
def nim_move(piles):
    if type(piles) not in (list, tuple) or len(piles) > 128 or any(type(v) is not int or not 0 <= v <= 10**9 for v in piles):
        raise ValueError("nim.piles")
    balance = 0
    for pile in piles:
        balance ^= pile
    if balance == 0:
        return None
    for index, pile in enumerate(piles):
        reduced = pile ^ balance
        if reduced < pile:
            return index, reduced
✳0~10億個の最大128山から、通常ルールのニムで勝てる減らし方を選びます。
✓ 変更内容適用前に確認 ↗
ワークスペースのイメージ
  1. プロジェクト

    全山ゼロと負け局面を試し、xorがゼロなら手を返さず、負数や真偽値の山サイズを拒否します。

  2. 適用前に確認

    実際の動作を期待する結果と比較します。検証に失敗した場合は、次の変更を加える前に原因を調べてください。

  3. モデル

    OpenAI互換またはAnthropicのエンドポイントを、ベースURLと必要なAPIキーで設定し、接続をテストします。ローカルのモデルサーバーは起動が必要です。リモートツールは別途データを送信する場合があります。

ワークフロー

通常ルールのニムの手

ワークフロー ↗
ワークフロー
def nim_move(piles):
    if type(piles) not in (list, tuple) or len(piles) > 128 or any(type(v) is not int or not 0 <= v <= 10**9 for v in piles):
        raise ValueError("nim.piles")
    balance = 0
    for pile in piles:
        balance ^= pile
    if balance == 0:
        return None
    for index, pile in enumerate(piles):
        reduced = pile ^ balance
        if reduced < pile:
            return index, reduced
AIコーディングワークスペース

ルール変更を利用先のアプリケーションまで反映する

NimCloverは、明示的なルールと判断を持つソフトウェアを開発するWindows向けAIコーディング環境です。プロジェクトフォルダーを選び、実装または修正するルールを説明してください。接続したアシスタントが関連ソースを調べて提案を検討し、会話では受け付ける入力と観測できる結果をレビューできます。

nim.pyの例は、通常の勝敗ルールで手を選ぶ作業の基礎になります。手をどう表現するか、補助関数が選択なしを返すとどうするか、有効なルールが関数の前提と一致するかを尋ねてください。それらの問いを自分のプロジェクトの調査に使います。小さな例を、ゲームエンジンが付属するという主張ではなくソフトウェア統合の作業へつなげられます。

制限のないAIモデルを選ぶには、対応するOpenAI互換またはAnthropicのエンドポイントで利用可能なモデルに接続します。必要な認証情報を設定し、実際の機能を確認してください。修正案をレビューしたら、手が返る経路と選択なしの経路の両方を呼び出し側までテストし、状態変更が戻り値の表現と一致するか検証します。目指すのは、画面へ正しく届かない孤立したアルゴリズムではなく、検証に裏付けられた一貫したアプリケーション機能です。

ルールに基づく判断を統合するための質問

手が選ばれない場合、合法手がないという意味ですか?

必ずしもそうではありません。補助関数の仕様とゲームの現在の状態に従って戻り値を解釈してください。選択なしをメッセージや操作終了に結び付ける前に、戦略と合法性を呼び出し側がどう区別するか確認します。

ルールについて何を指定すべきですか?

勝利条件と、有効な判断に影響する変則ルールを示してください。例は通常の勝敗ルールを前提とします。最後の手に関するルールが異なるなら、画面の名称だけを変えて同じ補助関数を使うのではなく、別の検討と検証が必要です。

返された手はどうテストしますか?

指定された要素が存在し、新しい値が許容され、呼び出し側が意図どおり適用するか確認してください。適用後のアプリケーション状態も含めます。補助関数が有効なペアを返しても、画面が正しい要素を更新するとは限りません。

この手順でゲーム全体へ拡張できますか?

範囲を定めた追加作業で機能を開発できます。描画、入力処理、状態遷移を別々に定義し、統合をテストしてください。コーディング環境と戦略例だけで、それらの機能が実装済みとは言えません。

Windows版をダウンロード ↗

NimClover · 更新日 2026-10-25