最善手を見つける「七五三ゲーム必勝法」
七五三ゲームの必勝法を使い、最善手を探すツールを作りました。
七五三ゲーム必勝法
七五三ゲームに勝つためには、負け必須状態にして、相手に渡すことです。
つまり、現在の状態が負け必須状態なのかどうか、負け必須状態にするにはどうすればよいか、ということが分かれば、よいわけです。
実は負け必須状態は計算により判定することができます。
(1)各段の本数がすべて0または1の場合
各段の合計が奇数ならば負け必須状態。
(2)(1)以外の場合
各段の本数を2進数に変換する。
各桁同士を合計する。
各桁の合計がすべて偶数ならば負け必須状態。
例を挙げます。
(1)については
1
1-1-1
が該当します。
(2)については「2-5-7」について考えます。
各段を2進数に変換します。
2→010
5→101
7→111
各桁を合計します。
0+1+1=2
1+0+1=2
0+1+1=2
各桁が偶数になりました。これは負け必須状態です。
もし自分の番が負け必須状態になったどうしようもありません。相手が必勝法を知らないことを祈ってどこか1本だけ抹消してください。
負け必須状態でなければどうやれば負け必須状態にして相手に渡せるかを考えます。
実は、負け必須状態でなければ、必ず負け必須状態にすることができます。
「3-5-7」の場合を考えます。
3→011
5→101
7→111
各桁の合計は2,2,3ですので、負け必須状態ではありません。
3となっている右端を偶数にすれば負け必須状態になります。
例えば3を2にすれば
2→010
ですから、各桁の合計は2,2,2となって負け必須状態になります。
今は「七五三ゲーム」だから3段限定ですが、この判定方法は実は何段になっても使えます。
また
|||||
を
|||||
のように中を抹消する場合は
||
||
のように2段に分かれたと考えればよいです。
最後に2進数への変換表を載せておきます。
1→001
2→010
3→011
4→100
5→101
6→110
7→111
七五三ゲームは二人で遊ぶゲームです。
紙に短い縦棒を3本並べて書きます。
その下に同じく5本並べて書きます。
さらに7本並べて書きます。
|||
|||||
|||||||
ゲーム開始です。
先攻は横棒1本で任意の本数の縦棒を抹消します。
後攻も同じように抹消します。
これを交互に繰り返し、最後の1本を抹消した方が負けになります。
つまり「残り1本」など「負け必須状態」にして相手に渡せば勝ちになります。
「1本-2本」の状態になったときは「2本」を2本とも抹消して相手に渡せば勝ちになります。
一方「2本-2本」の状態で渡されるとどんな方法でも勝てません。
「1本-2本」または「2本」となりますが、どちらも「1本」で返されると負けです。
つまり「2本-2本」も「負け必須状態」です。将棋の詰みと同じです。
この負け必須状態をすべて調べてみました。
1
2-2
3-3
4-4
5-5
1-1-1
1-2-3
1-4-5
2-4-6
2-5-7
3-4-7
3-5-6
これだけあります。
これを見て分かるのは必勝法です。
初期状態が「3-5-7」ですので、先攻は「2-5-7」「3-4-7」「3-5-6」のいずれかにして相手に渡せば勝てます。
なぜ四目並べが普及しないのかというと先手に必勝法があるからです。
五目並べの場合は石が「4個並んでその両側が空いている場合」に勝ちになります。
また「4個並んでその片側が空いている場合」と「3個並んでその両側が空いている場合」が同時にできたときには、次に必ず「4個並んでその両側が空いている場合」になるので、これも勝ちになります。これを「四三」と言います。「四四」や「三三」でも勝ちです。
これを念頭において考えると、四目並べの場合は石が「3個並んでその両側が空いている場合」に勝ちになりますから、「ニニ」を作ればよいのです。
先手(黒)が盤面の中心に置いたときに後手(白)はその隣または斜め隣のいずれかに置くことになります。
これらの2通りだけ考えれば十分です。 続きを読む…
最近のコメント