CPUの3段階は何が違うのか:同じ局面で3回指させる
遊びを見つける執筆にClaudeを使用しています。

「潮目のオセロ」のひとり対局には3段階の相手がいます。確認できているのは「3段階ある」ことまでで、何がどう違うのかは作品を開いて確かめるしかありません。そこでこの記事では、「同じ局面で3段階に指させ、返ってきた手を並べる」手順を設計します。 場面を一つ考えてみます。自分の手を何手か打ち終えた盤面で、弱い段階、中間の段階、強い段階のCPUに白番を任せます。3つの手が同じなら、その局面では段階の差が出ていません。違う手が返ってきたら、その手がどんな種類の手なのかが手がかりになります。「強い」という印象を、座標と枚数の記録に置き換えるのが狙いです。 ここに書くのは測り方だけです。段階ごとの傾向は書きません。結果は、読者の手元の記録から出てきます。
「同じ局面」を作る難しさ
最初に壁があります。ひとり対局では、相手側の手を自分で打てません。自分が同じ手を打っても、CPUの応手が段階によって違えば、盤面はそこから別の道に分かれます。
また、潮目のオセロに局面を保存する機能は確認されていません。保存があるのは余白の庭、WAVE / WAVE、かたちのあいだの3作品で、他の作品の記録は画面を開いている間だけです。そのため局面は、自分の手順を紙やメモに書いて残すことで再現します。
「同じ局面」を作る方法は次の3つです。
- 初手の応手を比べる。 自分の初手を固定し、白の応手を段階ごとに記録します。必ず同じ局面から始まります。
- 分岐するまでを同一とみなす。 自分の手順を固定して各段階で打ち、CPUの応手が一致している間は同じ局面です。最初に手が割れた地点が、そのまま記録になります。
- 「一手戻す」で同じ局面に戻る。 一手戻したあとに同じ手を打ち直せば、同じ局面でCPUにもう一度指させられます。同じ段階でも手が揺れるかどうかが分かります。
「一手戻す」は、ひとり対局でだけ使えます。戻す範囲が自分の一手だけか、CPUの手も含むかは細部が確認できていません。この部分は作品を開いて確かめてください。また、対局の途中で段階を切り替えられるかどうかも、同じく作品を開いて確かめます。切り替えられるなら、同じ盤面のまま3段階を比べるのがいちばん簡単です。
準備:記録シートと座標の決め方
用意するものは、紙かメモ、鉛筆、そして画面の拡大表示です。盤面が見やすいと、座標の数え間違いが減ります。矢印キーとEnterでも操作できるので、マウスが使いにくい環境でも同じ記録がとれます。
座標は、列を左から a〜h、行を上から1〜8とします。左上が a1、右下が h8です。画面の向きが違っていても、この基準は記録の側で固定してください。標準の初期配置は、d4とe5が白、d5とe4が黒です。この配置と、自分が黒か白かは、作品を開いて確認します。
記録シートの列は次のとおりです。
- 局面ID(P1、P2…)
- 自分の手順(例:d3、c3…)
- 段階(1〜3。弱い順かどうかは作品で確認)
- 試行の番号(同じ局面を何回目に指させたか)
- CPUの手(座標)
- 返った石の数
- 手の種類(角/X/C/辺/内側)
手の種類は、次のように決めておきます。
- 角、該当するマス:a1, h1, a8, h8
- X、該当するマス:b2, g2, b7, g7(角の斜め隣)
- C、該当するマス:角の隣の辺上のマス(b1, a2 など8マス)
- 辺、該当するマス:上記以外の外周のマス
- 内側、該当するマス:それ以外
手順:局面を固定して3段階に指させる
ステップ1:初手の応手で形をつかむ
標準配置で黒が先手なら、黒が d3 を打つと d4 の石が返ります。そのときの白の合法手は c3、e3、c5 の3つです。候補が3つしかないので、段階の差が出にくい局面でしょう。ただし、一手目で何が見えるかを確認する練習には向いています。
- 段階を一つ選び、新しい対局を始めます。
- 初手 d3 を打ち、CPUの手を記録します。
- 一手戻せるなら戻し、d3 を打ち直して、もう一度CPUの手を記録します。
- 3段階それぞれで同じ操作をします。
ステップ2:中盤の局面を固定する
本命は中盤です。候補手が多く、角や辺が絡む局面なら、手の選び方の癖が出やすくなります。
- 一つの段階で、自分の手を記録しながら10手前後まで進めます。
- 自分の手順を書き写し、他の段階で同じ順に打ちます。
- CPUの応手が変わった時点で、「分岐」と書いて記録します。
- 分岐前までは同じ局面なので、その局面ごとにIDを振ります。
ここでは、ヒントを使わない約束にしてください。ヒントは理由付きで手を示してくれますが、自分の手の選び方まで変えてしまい、記録を汚します。自分が打つ手は、対局を始める前に紙に書いておくのが確実です。
ステップ3:角が取れる局面を探す
角を取るかどうかは、強さの違いが出そうな基準です。ただ、この局面は自分で作る必要があります。次の条件を目安にしてください。
- a1が空いていること。
- a1から斜めに、黒の石が1つ以上連続していること。
- その連続の先に、白の石があること。
この条件のとき、白は a1 に打てます。逆に言えば、白に角を打たせたい局面は、この並びを作れた局面です。b2に自分の石を置く手は、この並びを作りやすい代わりに、角を与えるリスクを自分で背負うことになります。実戦で自然に出た局面を拾うほうが、記録としてはきれいです。
集計の単位と読み方
集計は、「局面ごと」と「段階ごと」の2つの単位で行います。
- 局面ごと:3段階の手が一致したか。
- 段階ごと:手の種類の内訳と、返した石の平均。
各段階につき10局面を3回ずつ指させると、全部で90回になります。ここで最頻の手を使うので、揺れも見えてきます。次のコードは、記録を貼ると集計してくれます。
<textarea id="t" rows="8" cols="36" placeholder="局面ID,段階,手 1行に1回分"></textarea>
<button onclick="run()">集計</button>
<pre id="o"></pre>
<script>
function mode(a){const c={};a.forEach(x=>c[x]=(c[x]||0)+1);
return Object.keys(c).sort((x,y)=>c[y]-c[x])[0];}
function run(){
const rows=document.getElementById('t').value.trim().split('\n')
.map(l=>l.split(',').map(s=>s.trim())).filter(r=>r.length===3);
const by={};
rows.forEach(([p,s,m])=>{by[p]=by[p]||{};(by[p][s]=by[p][s]||[]).push(m);});
let out='',agree=0,total=0;
for(const p in by){
const lv=Object.keys(by[p]).sort();
const modes=lv.map(s=>mode(by[p][s]));
const wob=lv.map(s=>s+'段階:'+new Set(by[p][s]).size+'種/'+by[p][s].length+'回').join(' ');
const same=new Set(modes).size===1;
total++; if(same) agree++;
out+=p+' 最頻手 '+modes.join('/')+(same?'(一致)':'(相違)')+' 揺れ '+wob+'\n';
}
out+='一致した局面: '+agree+'/'+total;
document.getElementById('o').textContent=out;
}
</script>記録の書式は「局面ID,段階,手」を1行に1回分です。たとえば、局面P1で段階1がc3を返したなら、「P1,1,c3」と書きます。
数字が出たら、次のように読みます。
- 一致率が高い、読み方の目安:その局面群では段階の差が出ていません。局面の選び方を変えてみます
- 同じ段階の揺れが大きい、読み方の目安:手に乱数が入っている可能性があります。繰り返しの回数を増やします
- 角が取れる局面で取る段階と取らない段階がある、読み方の目安:角の価値の扱いが段階で違うと考えられます
- 返した枚数が多い手ばかり選ぶ段階がある、読み方の目安:目先の枚数に寄った選び方かもしれません
- X打ちの手が特定の段階に偏る、読み方の目安:角を与える手への警戒が段階で違うかもしれません
表の右側は仮説です。最終的に結論とするには、別の局面でも同じ傾向が出るかを確かめてください。
起こりやすい誤り
- 局面が実は違う。 自分が打った順は同じでも、途中でCPUの応手が違えば盤面は別です。石の数と配置を毎回見比べてください。
- 座標の数え違い。 行や列を逆に数えると、手の種類の分類が全部ずれます。最初に基準を決め、毎回同じ向きで数えます。
- 段階の取り違え。 新しい対局を始めるたびに、段階の選択を記録に書き留めてください。
- 標本が少ない。 3局面だけで「この段階は角を取らない」と言い切るのは早すぎます。10局面を目安に、同じ傾向が繰り返されるかを見ます。
- 一手の好みと勝敗を混同する。 角を取る回数と勝てる確率は別の話です。この分析で分かるのは、手の選び方の傾向までです。
- 自分の手の癖が混ざる。 毎回同じ序盤だけを使うと、特定の形の傾向しか見えません。局面の種類を意識して散らします。
次の行動
まず作品を開き、段階の名前、対局中の切り替えの可否、「一手戻す」の範囲の3点を確かめてください。そのうえで、初手 d3 の応手を3段階で記録するところから始めます。慣れたら、中盤の局面を10個作り、上のコードで集計します。


