オセロで角に置けないルールにすると、中央だけの戦いになるのか
遊びを見つける執筆にClaudeを使用しています。

オセロで「角を取ったら有利」と言われるのは、角の石が二度と返らない安定石になるからです。では、四つの角にどちらも置けないというルールを足すと、この常識はどうなるでしょうか。角を取られる心配がなくなるのだから、盤の中央で石を増やし合うだけの戦いになる、と考えたくなります。ただ、論理だけをたどると、そう単純ではなさそうです。 角に誰も置けないとき、角の隣のマスに置いた石はどうなるかを考えてみます。盤の端の列にある石は、その列に沿った方向でしか挟まれません。a2に石を置いた場合、列に沿って挟むにはa1とa3の両方に相手の石が必要です。a1には誰も置けないので、a2の石は返りません。標準ルールでは「角を相手に与える悪手」と避けられる角の隣が、このルールでは「返らない石の起点」に変わります。 この記事は、その入れ替わりが実際の対局で要所として現れるかどうかを、自分の手で確かめるための設計書です。結果は書いていません。準備、ルールの決め方、記録の取り方、結果の読み方を順に示します。
先に決めるルールと準備
角禁止ルールは、曖昧なまま始めると途中で揉めます。対局の前に次の四点を紙に書いておいてください。
- 角(a1、h1、a8、h8)には置けません。
- 合法手が角だけの場合は、その手番をパスとします。
- 両者が置けなくなった時点で終局とし、石の多い側の勝ちとします。角が空のまま終わるので、64マスは埋まりません。
- 開始配置と先手(黒)は通常のオセロと同じです。
呼び名も揃えます。角の隣の8マス(a2、b1、g1、h2、a7、b8、g8、h7)を「C」、角の斜め隣の4マス(b2、g2、b7、g7)を「X」とします。マスは列をa〜h、行を1〜8で呼びます。
準備するものは次のとおりです。
- 紙の盤か実物のオセロ盤、記録用紙、筆記具
- 実力が近い対局相手(同じ相手と、標準ルールと角禁止ルールの両方を行います)
- 対局数は、各ルール10局を目安にします。先手後手は一局ごとに交替し、標準・角禁止・標準・角禁止と交互に進めます。同じルールを続けて行うと、慣れの影響がルールの差に混ざります。
「潮目のオセロ」を使う場合は、次の点に注意してください。
- 友達との対局は招待リンクで行えます。ただし、角に置けないルールは作品に入っていません。角のマスは通常どおり置けてしまうので、約束を守るのは遊ぶ側です。誤クリックにも気をつけてください。
- ひとり対局のヒントと一手戻すは、標準ルールを前提にしています。角禁止ルールの対局では使わないか、参考程度にとどめてください。ひとり対局のコンピュータ相手が角禁止ルールを知らない点も、比較を難しくします。この実験の相手は人間をおすすめします。
- 返る石のプレビューは、石がどこまで返るかの確認に便利です。
- オンライン対局で棋譜を見返せるかどうかは、作品を開いて確かめてください。見られない場合は、一手ごとに紙へ書き写します。
記録の取り方と集計
記録の単位は「一局につき一行」です。着手を打った順に、a1の形式で空白区切りに書きます。パスは書かず、黒と白の区別も要りません。奇数番目が黒、偶数番目が白になりますが、パスが入るとずれます。パスがあった局は、その位置に「(パス)」と書き加え、欄外に回数をメモしておいてください。
局ごとに次の項目も残します。
- 最終石数、記録のしかた:黒と白それぞれ
- パスの回数、記録のしかた:局全体で何回か
- C 8マスで最初に打たれた手、記録のしかた:何手目か、どちらの色か
- 迷った手、記録のしかた:手番の番号と一言のメモ
着手の「回数」を数えても、あまり手がかりになりません。終盤には多くのマスが埋まるので、どのマスも回数は似てきます。差が出るのは「何手目に打たれたか」です。早く打たれるマスは、打ちやすい、または打ちたいマスです。遅いマスは、避けられているマスです。そこで、各マスが平均して何手目に打たれたかを表にする小さなツールを用意します。次のコードをHTMLファイルとして保存し、ブラウザで開いてください。外部通信は使いません。
<textarea id="in" rows="6" cols="44" placeholder="1局を1行、着手をスペース区切りで(a1の形式)"></textarea>
<button id="go">集計</button>
<pre id="out"></pre>
<script>
document.getElementById('go').onclick = () => {
const sum = Array.from({length: 8}, () => Array(8).fill(0));
const num = Array.from({length: 8}, () => Array(8).fill(0));
for (const line of document.getElementById('in').value.split('\n')) {
line.trim().toLowerCase().split(/\s+/).filter(m => /^[a-h][1-8]$/.test(m))
.forEach((m, i) => {
const r = m[1] - 1, c = m.charCodeAt(0) - 97;
sum[r][c] += i + 1; num[r][c]++;
});
}
let s = ' ' + [...'abcdefgh'].map(c => c.padStart(3) + ' ').join('') + '\n';
sum.forEach((row, r) => {
s += (r + 1) + ' ' + row.map((v, c) =>
(num[r][c] ? String(Math.round(v / num[r][c])) : '.').padStart(3) + ' ').join('') + '\n';
});
document.getElementById('out').textContent = s;
};
</script>標準ルールの10局と角禁止ルールの10局を別々に貼り、2枚の表を作ります。このツールはパスを数えません。表の数字は「パスを除いた着手の順番」の平均になる点を覚えておいてください。空欄を意味する「.」は、そのマスが一度も打たれなかったことを表します。角禁止ルールでは、四つの角が「.」になるのが正常です。
結果の読み方
見る場所は三つあります。
① C 8マスの平均着手番号を比べる
標準ルールでは、Cは相手に角を取られる原因になるので、遅くなる傾向が予想されます。角禁止ルールで、Cの平均着手番号が標準より小さくなっていれば、避ける理由が消えて、取りに行く手に変わったと読めます。変わらなければ、石の返りやすさなど、別の事情でCが避けられていることになります。その場合は、避けた手番のメモを見直してください。
② Cを最初に打った側の勝敗を数える
C 8マスのどれかを局の中で最初に打った色を記録し、その側が勝った局を数えます。
勝敗の偶然性には注意が必要です。実力が互角で、Cの先取りが勝敗と無関係だとします。それでも10局のうち7局以上で同じ側が勝つ確率は、コイン投げの計算で約17%、8局以上でも約5.5%あります。10局で7〜8局という結果だけでは、偶然の範囲かもしれません。差がはっきり出ないときは、局数を20局以上に増やしてください。逆に、5局前後に落ち着くなら「Cの先取りは勝敗を決める要因ではない」という答えも出ます。それも結果の一つです。
③ 「中央だけの戦い」かどうかを見る
次の二つを局ごとに確かめます。
- 序盤の10手のうち、外周(a列・h列・1行目・8行目)に打たれた手が何手あるか
- 最初にCが打たれた手番の平均が、標準ルールより早いか遅いか
序盤の外周の手が標準より少なく、Cの着手も遅いなら、中央中心の展開になっていると読めます。外周が多く、Cが早いなら、辺の端を巡る戦いになっています。また、パスの回数が標準より増えていれば、角という逃げ場がないぶん、相手に合法手を与えない戦いが強まっていると読めます。
起こりやすい誤り
- 角で挟もうとする:角に石がないので、角を終点にして石を返すことはできません。盤上で石を返す前に、挟む線の両端が置ける石かどうかを確かめます。
- 角しか合法手がない場面を見落とす:その手番はパスです。置けない手を打つと、棋譜がずれます。
- 棋譜の書き漏れ:着手番号がずれると平均がずれます。抜けた局は、集計から外すか、わかる範囲で復元してください。
- 同じ相手で学習が進む:後半の局ほど角禁止ルールに慣れ、標準ルールとの差に学習の差が混ざります。ルールを交互に行う理由はここにあります。
- 先手後手の偏り:毎局先手を交替し、黒と白のどちらかだけで結論を出さないようにします。
- 局数が少ないまま断言する:C 8マスは局あたり何手目に打たれるかのばらつきが大きいので、数局では傾向が出ません。差の大きいマスだけを候補とし、確定は追加の対局で確かめます。
次の行動
まずは、ルールの四点を紙に書き、相手と合意してください。次に、標準ルール2局と角禁止ルール2局を交互に行い、棋譜を1行ずつ記録します。4局の記録を上のツールに貼り、C 8マスの平均着手番号を眺めるところまで進めば、続きを10局に広げるかどうかを自分で決められます。

