Open15

Claude Code(Opus4)とCodex cli(gpt-5)の読解力テスト

kurehajimekurehajime

やること

このボードゲームのリポジトリを読み込ませて、ゲームについていくつか質問する。
その答えを比較して『作者のお気持ち』にどれだけ近いかで勝敗を判定する。
一応ルールテキストもコード内に含まれているのでルールの一部は日本語読解だけで読み解くことができるが、ルールの一番の肝となる駒の動きなどはコードを読まないと理解できない。(人間は画像をみて理解できるようになってる)


https://colamone.com/

kurehajimekurehajime

まず両者にリポジトリについて説明させる。
結果は省略。あくまで最初にコード全体を読み込んでもらうための質問。

kurehajimekurehajime

問題① 3はどの方向に進める?

このゲームは駒ごとに動ける方向が決まっている。
3は↖↑↗と↙↓↘の6方向に進むことができる。

ルール解説のテキストには「各コマは、丸が付いている方向に進めます」としか書いておらず、ルール説明と駒画像を合わせて読み解くか、もしくはコードを理解して読み解く必要がある。
駒の動きは下記の配列で定義され、点数×(先攻 ? 1 : -1) + 8のインデックスにアクセスすることで進む方向を取得できる。
こんなに理解が難しい作りになっているのは処理の高速化のため。

    static readonly PIECES = [
        [0, 0, 0,
            0, 0, 0,
            0, 1, 0],
        [0, 1, 0,
            0, 0, 0,
            0, 1, 0],
        [0, 1, 0,
            0, 0, 0,
            1, 0, 1],
        [1, 0, 1,
            0, 0, 0,
            1, 0, 1],
        [1, 0, 1,
            0, 0, 0,
            1, 1, 1],
        [1, 1, 1,
            0, 0, 0,
            1, 1, 1],
        [1, 0, 1,
            1, 0, 1,
            1, 1, 1],
        [1, 1, 1,
            1, 0, 1,
            1, 1, 1],
        [0, 0, 0,
            0, 0, 0,
            0, 0, 0],
        [1, 1, 1,
            1, 0, 1,
            1, 1, 1],
        [1, 1, 1,
            1, 0, 1,
            1, 0, 1],
        [1, 1, 1,
            0, 0, 0,
            1, 1, 1],
        [1, 1, 1,
            0, 0, 0,
            1, 0, 1],
        [1, 0, 1,
            0, 0, 0,
            1, 0, 1],
        [1, 0, 1,
            0, 0, 0,
            0, 1, 0],
        [0, 1, 0,
            0, 0, 0,
            0, 1, 0],
        [0, 1, 0,
            0, 0, 0,
            0, 0, 0]
    ]
kurehajimekurehajime

codex(gpt-5)の回答

正解。

- 基本: 1マス移動のみ
- 進行方向: 前3方向(左上・上・右上)+後3方向(左下・下・右下)
- 不可: 左右への水平移動(同じ段の左/右)はできない
- 注意: 自駒マスや相手ゴール列の駒は取れない/ゴール列に達した自駒は動かせない
kurehajimekurehajime

claude code(opus4)の回答

不正解。
配列の3+8=11のインデックスの箇所をみるというところまでは合ってるが、1つずれている。

⏺ PIECESの配列を見ると、駒番号3(配列インデックス3+8=11)の移動方向は:

  [1, 0, 1,
   0, 0, 0,
   1, 0, 1]

  これは3x3のグリッドで、中央が駒の位置、1がある場所が移動可能な方向を表し
  ます。

  駒番号3は4方向に進めます:
  - 左上(↖)
  - 右上(↗)
  - 左下(↙)
  - 右下(↘)

  斜め4方向に1マスずつ移動できる駒です。
kurehajimekurehajime

codex(gpt-5)の勝ち

codex(gpt-5)は正しくコードを読解できたが、claude code(opus4)の方は読解できなかった。

kurehajimekurehajime

問題② このゲームのゲーム性について解説して

大まかなルールはルールテキストに書かれているが、駒の動きはコードを読まないと分からない。
そして駒の能力の『一長一短』がこのゲームのゲーム性の肝となる。

1点駒は動ける方向が多いが点数が低い。

8点駒は動ける方向が1方向しかないが点数が高い。

チェスや将棋は「価値の高い駒と価値の低い駒のあいだに明確な優劣がある。いかに有利な交換をするかが勝敗の鍵」というゲーム性だが、このゲームの戦略性はそれではなく、Magic the Gatheringのような「大型クリーチャーは強いかわりにデメリットがある。明確な優劣のないトレードオフの関係のなか状況に応じて必要なものを取捨選択する」というゲーム性になっている。

kurehajimekurehajime

codex(gpt-5)の回答

o3のような圧縮構文がちょっと鼻につくが、このゲームのゲーム性を理解している。

  • 1手の重み: 全駒「1マス移動」かつ「近傍9マスの可動マスク」が数字ごとに異な
    る。大きい数字ほど強いとは限らず、機動力と価値がトレードオフ。
  • 価値と機動力の両立: 高得点駒は重い(動きが限定的)傾向があり護送が必要。小
    さい駒は機動力で道を開けたり撹乱したりできる。

ここを抑えているのはとても良い。満点の回答。

**コア概念**
- **目的**: 反対側ゴール列に自駒を到達させ、到達駒の数字合計を先に8点以上にする
。
- **1手の重み**: 全駒「1マス移動」かつ「近傍9マスの可動マスク」が数字ごとに異な
る。大きい数字ほど強いとは限らず、機動力と価値がトレードオフ。
- **確定点**: ゴール列に到達した駒は動かせず安全(取られない)。到達=恒久的な得
点化。

**ルール由来の駆け引き**
- **レース vs 交戦**: 点を急ぐ“レース”と、相手の到達・経路を妨害する“交戦”が同時
進行。どこで戦い、どこで抜けるかの見極めが重要。
- **価値と機動力の両立**: 高得点駒は重い(動きが限定的)傾向があり護送が必要。小
さい駒は機動力で道を開けたり撹乱したりできる。
- **ブロックと押し上げ**: 1手での到達は困難。連続して“段差”を作る押し上げや、要
所の“封鎖/穴開け”で到達確率を高める。
- **取捨選択**: 取りに行く=相手の将来点を消すが、自軍の形が崩れることも。盤面の
“通路価値”を見て取る/取らないを判断。
- **交換の非対称性**: 取り合いは即点に繋がらないため、“駒損/得”より“点の通り道”
の価値が上回る場面が多い。

**局面の性質**
- **ローカル戦術**: 長距離移動がなく、近接の駆け引きが中心。1マスの押し引きが通
路を大きく変える。
- **テンポ管理**: 1手で複数の脅威(到達/取り/ブロック)を両立させる“手の価値”が
勝敗に直結。無駄手は即レース負けに。
- **エンドゲーム**: 可動手が減るほど1手の重みが増す。点数計算と“三fold(同一局面
3回)”の引き分けを視野に、無理攻め/千日手回避の判断が鍵。

**勝敗と引き分け**
- **勝利条件**: 自軍のゴール列(青=上段/赤=下段)に到達した自駒の合計が8点以上。
- **手詰まり**: どちらも指せなければ、到達点の高い側が勝ち。同点は後手有利(ルー
ル上の裁定)。
- **三fold**: 同一局面が3回出現で引き分け。無限ループ防止の設計。

**駒の個性(要点)**
- **可動マスク**: 各数字に固有の9近傍マスク。前後左右斜めのどれが動けるかが数字
で異なる。
- **非単調性**: 数字が大きい=万能ではない。8のように“点は大きいが動きにくい”駒
もあり、護送/布石が要る。
- **到達の重み**: 1点×8回より、3+5や8の単発狙いなど構成は多様。盤の形や先後で最
適解が変わる。

**実戦的な定石的考え方**
- **通路設計**: 早期に“筋”を開け、相手の要所(中央縦・斜筋)を塞ぐ。
- **護送/囮**: 高得点を護送しつつ、別筋に撹乱(到達/取りの二択)を作って受けを割
らせる。
- **逆サイド突き**: 片側で圧をかけつつ、反対側で得点化。相手守備の厚薄を見極める
。
- **終盤読み**: 点数レースの算段(あと何手で8点に届くか)と、千日手/手詰まりの分
岐を両にらみ。

**ゲーム性の魅力**
- **短手数&濃密**: 1マス移動ながら、通路価値/点価値/テンポが絡み合い“濃い判断”
を連続で要求。
- **非ゼロ和の手感**: “取る=即点”でないため、駒の交換や形の価値がチェス/将棋と
違う角度で立ち上がる。
- **多様な勝ち筋**: 少点の積み上げも、一撃高点も、ミックスも成立。局面応じてプラ
ンが入れ替わる。

AIや各数字の具体的な可動マスクの違い、開幕配置ごとのプラン例も解説できます。どの
あたりを深掘りしますか?(例: 先手推奨オープニング、8点到達の代表パターン、駒別
の役割など)
kurehajimekurehajime

claude code(opus4)の回答

ルールを誤解している。

  • 駒は数字によって移動方向が異なる(1は前のみ、8は全方向など)

1点駒は8方向に動け、8点駒は1方向にしか動けない。
そのトレードオフがこのゲームの肝なのに、そこを勘違いしているのでそれについて述べられていない。

⏺ Colamoneのゲーム性について解説します。

  基本ルール

  - 6×8のボードで2人対戦
  - 各プレイヤーは1〜8の数字が書かれた8個の駒を持つ
  - 駒は数字によって移動方向が異なる(1は前のみ、8は全方向など)
  - 相手の駒を取ることができる(ただし相手陣地でゴールした駒は取れない)

  勝利条件

  1. 相手陣地に8点分の駒を入れる(メイン勝利条件)
  2. 千日手(同じ盤面が3回出現)で得点勝負
  3. 手詰まりになったら得点勝負

  戦略的要素

  1. 駒の特性を活かした戦術

  - 小さい数字(1,2):移動力は弱いが、前進特化で突破役
  - 中間の数字(3,4,5):バランス型、斜めや横移動で柔軟な動き
  - 大きい数字(6,7,8):全方向移動可能、守備と攻撃の要

  2. リスクとリターンのジレンマ

  - 大きい数字の駒を前に出すと得点は稼げるが、取られるリスクも高い
  - 小さい駒は取られても痛手は少ないが、得点効率が悪い
  - ゴールした駒は取られないが、動けなくなる

  3. 終盤の駆け引き

  - 8点到達を目指すか、相手の大駒を狙うか
  - 千日手を避けるか、意図的に狙うか
  - 「実質的勝利」判定(相手が逆転不可能な状況)の読み合い

  チェスとの違い

  - 数字による得点システム:単純な駒数でなく、駒の価値で勝敗が決まる
  - 非対称な移動能力:前進と後退で移動可能方向が異なる
  - ゴールの概念:相手陣地到達で安全地帯を作れる
  - シンプルな駒数:8個vs16個で、より集中した戦略性

  このゲームはシンプルなルールながら深い戦略性を持ち、攻撃と防御のバランス
  、リスク管理、終盤の読み合いなど、多層的な思考が求められる頭脳ゲームです
  。
kurehajimekurehajime

codex(gpt-5)の勝ち

claude codeは駒の動きを誤解しているのでゲーム性を正しく捉えられていない。

kurehajimekurehajime

問題③特殊ルールの意図の解説

質問文はこれ。

「どちらかのプレーヤーの動かせるコマが無くなった時はその時点で点数の高いプレーヤーの勝利です。」
このルールがある意図を解説して

このゲームは相手の駒を全部とっても勝ちにはならない。取った時点で確定している点数が多いほうが勝ちになる。
「相手の駒を全部取ったのに判定負け」というのは理不尽に感じるかもしれないが、これは将棋やチェスにありがちな「一度劣勢になったら逆転のチャンスがない」という事態を回避し、最後の1ターンまで勝敗がわからないようにするために設けたルール。

kurehajimekurehajime

codex(gpt-5)の回答

  • 確実な終局性: 指せる駒が尽きた時点で勝敗を点で裁くことで、膠着や無限停滞を
    避け、ゲームを必ず終わらせる。

これはルールの意図の一部なので部分点をあげてもいい。
しかし「最後の1ターンまで勝敗がわからないように」という意図が読めてないし、回答の後半の戦術論も的を射ていない。

**ルールの意図**
- **確実な終局性**: 指せる駒が尽きた時点で勝敗を点で裁くことで、膠着や無限停滞を
避け、ゲームを必ず終わらせる。
- **“得点レース”の推進**: 取る=即点ではないゲーム性で、到達点(ゴール確定点)を
先に作ることの価値を高める。
- **ブロック戦術の健全化**: ただ塞いで相手を動けなくするだけでは負け得るため、「
先行してからロックする」構図を促す。
- **劣勢側の動機付け**: 負けている側は“1手でも可動手を残す”インセンティブが生ま
れ、無策な硬直を避ける。
- **テンポと通路の重視**: 1マス移動のゲームで“通路を開ける/塞ぐ”が本質。点での裁
定が、この局面価値を明確にする。
- **先後バランスの補正**: 同点裁定(READMEでは同点は赤勝ち)を組み合わせ、先手有
利を緩和しつつ、攻守の手番価値を整える。
- **三foldとの役割分担**: 三fold(同一局面3回)はループ防止、可動手喪失時の点裁
定は膠着収束。両輪でゲームテンポを守る。

**戦略的含意**
- **リード→ロック**: 先に8点へ近づけたら“通路封鎖”で終局に持ち込むのが強い勝ち筋
。
- **ビハインド→可動確保**: 劣勢なら少なくとも1手を維持し続け、ロック負けを回避し
つつ到達筋をこじ開ける。
- **価値/機動のトレードオフ**: 高点駒の護送と、軽い駒での道作り・撹乱の両立が勝
敗に直結。

**実装補足**
- 可動手なし判定は `src/static/game/Rule.ts` の `isNoneNode`、点計算は `GameStat
e.calcScore()` で行い、そこで勝者を決める設計。
- READMEには「同点は赤勝ち」とある一方、現行実装は同点時に引き分け扱いの分岐も見
られます(引き分け表示や三fold判定)。仕様の意図どおりにするなら、この同点裁定の
扱いを統一する余地があります。

必要なら、READMEどおりの同点裁定に合わせた修正案(該当条件分岐の調整)も提案でき
ます。
kurehajimekurehajime

claude code(opus4)の回答

満点の回答。
ゲームの停滞防止、逆転の可能性、終盤の緊張感と押さえて欲しいポイントが全部押さえられている。

⏺ このルール(手詰まり時の得点判定)の意図を解説します。

  1. ゲームの停滞防止

  手詰まりで引き分けにしてしまうと、意図的に膠着状態を作る消極的なプレイが
  増えてしまいます。得点判定により、必ず勝敗が決まるため、積極的にゲームを
  進める動機付けになります。

  2. 戦略的な深み

  // src/static/game/Rule.ts:119-127
  // 手詰まりは判定
  if (Rule.isNoneNode(wkMap)) {
      if (sum1 > (-1 * sum2)) {
          return 1
      } else if (sum1 < (-1 * sum2)) {
          return -1
      } else {
          return 0
      }
  }

  このルールにより以下の戦略的要素が生まれます:

  攻撃と防御の両立が必要

  - 単に相手の動きを封じるだけでは不十分
  - 封じた時点で自分の得点が上回っている必要がある
  - 相手の大駒を取りながら、自分の駒もゴールさせるバランスが重要

  3. 逆転の可能性

  劣勢側が以下の戦術を取れます:
  - 相手の小駒を残して大駒を全て取る
  - 自分は動けなくなっても、相手より1点でも多ければ勝利
  - 「美しい負け方より、泥臭い勝ち方」という選択肢

  4. 終盤の緊張感

  // 実質的判定勝利(src/static/game/Rule.ts:129-145)
  if (sum1 > (-1 * (live2 + sum2))) {
      return 1  // 相手の残り駒を全て入れても逆転不可能
  }

  このルールと「実質的勝利判定」により:
  - 残り駒の価値を常に計算する必要がある
  - 最後の1手まで油断できない展開
  - 詰将棋のような読み合いが発生

  5. ゲームデザインの妙

  このルールはColamoneを単なる陣取りゲームから、リソース管理と読み合いのゲ
  ームに昇華させています。チェスのステイルメイトとは異なり、物理的に動けな
  くなることが必ずしも敗北ではなく、それまでの積み上げ(得点)が評価される
  、より戦略的なゲーム性を実現しています。
kurehajimekurehajime

claude code(opus4)の勝ち

この問題は「作者のお気持ち」を問う側面が強かったので難しいかなと思ったが、claude code(opus4)が満点の回答をした。

kurehajimekurehajime

まとめ

codex(gpt-5)のほうが正しく読解してくれる場面が多かったが、最後の難問ではclaude code(opus4)がとても良い回答をしてくれた。
claude code(opus4)の前半の2連敗はコードを誤読して駒の動きを誤解したのが後ろに響いた側面が強い。

不完全とはいえルールテキストがリポジトリ内に存在したため、日本語読解とコード読解、そして分析能力が求められるテストになってしまい、何の能力をテストしているのか分かりにくい面もあった。
これは問題が悪かったかもしれないが、現実の開発もドキュメントとコードの両方を読み解いて裏の意図を推測する必要があるので、まぁそんなもんかもしれない。