結論
独立した 3局面で確かめたところ、序盤に同じ駒を二度動かす手はどの局面でも最善ではありませんでした。最善手との差は平均 0.51、最大でも 0.88(ポーン換算)です。負けにつながるほどではありませんが、一貫して少しずつ損をしています。
今回検証すること
序盤の目標は、駒を働く場所へ手早く並べることです。すでに出した駒をもう一度動かすと、そのぶん新しい駒を出す手が遅れる。だから「同じ駒を二度動かすな」と教わります。
とはいえ、この教えを破る定跡はいくつもあります。実際にどれくらい損なのか、そして本当に例外なく損なのかを、3局面で確かめました。
検証方法
定説を1つの局面だけで確かめても、その局面の事情なのか、どこでも起きることなのかが分かりません。そこで、開いた局面・閉じた局面・白番・黒番と、性格の違う3局面を選びました。各局面で候補手を1手ずつ実際に指し、その局面をエンジンで探索しています。数値はすべて実行結果で、推測ではありません。
局面ごとの結果
| 局面 | 最善手 | 検証した手 | 差 |
|---|---|---|---|
| 1.d4 系で同じナイトを動かす(白番) | c4 +0.29 | Ne5 −0.22 | 0.51 |
| イタリアンでナイトを二度動かす(白番) | d3 +0.23 | Ng5 +0.08 | 0.15 |
| 黒が同じナイトを動かす場合(黒番) | Be7 −0.35 | Nd4 −1.23 | 0.88 |
局面 1|1.d4 系で同じナイトを動かす(白番)
1.d4 d5 2.Nf3 Nf6
最善は c4(+0.29)。Ne5 は −0.22 で、差は 0.51 でした。
候補手を押して、盤面を切り替えられます
| 候補手 | 評価 | 最善との差 |
|---|---|---|
| c4 | +0.29 | 基準 |
| Bf4 | +0.17 | −0.12 |
| e3 | +0.16 | −0.13 |
| g3 | +0.09 | −0.20 |
| Ne5 | −0.22 | −0.51 |
局面 2|イタリアンでナイトを二度動かす(白番)
1.e4 e5 2.Nf3 Nc6 3.Bc4 Nf6
最善は d3(+0.23)。Ng5 は +0.08 で、差は 0.15 でした。
候補手を押して、盤面を切り替えられます
| 候補手 | 評価 | 最善との差 |
|---|---|---|
| d3 | +0.23 | 基準 |
| d4 | +0.17 | −0.06 |
| Ng5 | +0.08 | −0.15 |
| Nc3 | −0.11 | −0.34 |
| O-O | −0.26 | −0.49 |
局面 3|黒が同じナイトを動かす場合(黒番)
1.e4 e5 2.Nf3 Nc6 3.Bb5 a6 4.Ba4 Nf6 5.O-O
最善は Be7(−0.35)。Nd4 は −1.23 で、差は 0.88 でした。
候補手を押して、盤面を切り替えられます
| 候補手 | 評価 | 最善との差 |
|---|---|---|
| Be7 | −0.35 | 基準 |
| Nxe4 | −0.36 | −0.01 |
| b5 | −0.44 | −0.09 |
| d6 | −0.46 | −0.11 |
| Nd4 | −1.23 | −0.88 |
なぜこの結果になるのか
3局面とも、動かし直す手は最善ではありませんでした。差は平均 0.51。読み筋では、こちらが同じ駒を動かしているあいだに相手が新しい駒を並べ、結局こちらの駒が追い返されて戻る、という形が繰り返し出てきます。
ただし幅が大きい。黒が Nd4 と出る局面では 0.88 も落ちるのに対し、イタリアンの Ng5 はわずか 0.15 しか落ちません。Ng5 はフライドリバーアタックの入口で、実戦で数えきれないほど指されてきた手です。格言に反していても、見返りが大きければ成立するということが数値に出ています。
例外と注意
この検証は、あくまで「動かし直すこと自体のコスト」を測ったものです。Ng5 のように、駒を二度動かして相手の弱点(f7)を直接狙う手は、そのコストをほぼ取り返しています。
逆に言えば、見返りの説明ができないなら動かし直さないという使い方が正しいことになります。「二度動かすな」を禁止事項として覚えるより、「二度動かすなら理由を言えるように」と考えるほうが、数値には合っています。
この検証で言えること・言えないこと
- 言えること:ここに挙げた 3局面において、各候補手を depth 20 まで探索した結果です。数値はすべて実行結果で、あとから手を加えていません。
- 言えないこと:3局面はチェスのごく一部です。「すべての局面でそうなる」ことの証明にはなりません。
- 前提:評価値は「両者が最善を尽くしたら」という前提の数字です。相手が最善で応じなければ、実戦の結果は変わります。
- 再現方法:局面と候補手は
tools/generate-chess-analysis.mjsに、結果はassets/chess-analysis.jsonに保存しています。同じ設定で走らせれば同じ数値になります。
実戦で覚えること
- 3局面とも、同じ駒を動かし直す手は最善ではなかった
- 差は平均 0.51、最大 0.88
- ただしイタリアンの Ng5 は 0.15 差。定跡になるだけの見返りがある
- 動かし直すなら、その手で何を狙うのかを説明できるかで判断する
自分で試す
同じ考え方を、実際の対局で試せます。1手ごとにエンジンが採点するので、原則を守った手とそうでない手の違いがその場で分かります。