FIDEルールブックの引用:
この捕獲はこの前進に続く移動においてのみ合法であり、「エンパッサン」捕獲と呼ばれます。
ウィキペディアの引用:
アンアンパッサンキャプチャがなされなければならない非常に次のターンであるいはそうする権利が失われます。
どうして?
私はen passantの基本的な話を知っているので、ここで言い換えます。ポーンが最初の移動で2マス前に移動できるようにするルールが追加されました。誰かが次のようなことを言った、ポーンがこれを使用して敵の隣接するポーンから脱出する場合はどうなりますか?次に、基本的なポーンのスケルトン/フレームワークが変更されます!したがって、同じチェスフレームワークを維持するには、エンパッサンが必要です。
その部分は理にかなっていますが、なぜ次の段階に移行する必要があるのでしょうか。ルールのその部分は後で追加されただけですか?なぜ追加されたのですか?2つのポーンが対角線上で互いに向かい合って隣接している場合、すぐに捕獲する必要はなく、捕獲する能力を失うこともありません。つまり、「ゴーストポーン」のコンセプトは、すぐにキャプチャせず、他のプレイヤーが動かさない場合でも、そこにあればキャプチャーに使用できるはずだと私には思われます。
en passantのこの部分が作成された理由を誰かが知っていますか?
オプションの背景:参考までに、私はプログラミングの経歴を持っています。すべての特別な動きの中で、en passantは(以前、以下を参照)プログラミングが最も困難です。キャプチャピースが空白の四角形に移動するのはこの移動だけですが、それを行わないと「消える」唯一の移動です。つまり、ボードの合計位置がすべての動きを生成するのに十分な情報ではない動きです。(これはキャスティングにも当てはまりますが、トリッキーなルールがすでにかなり共有されています。)2つ目の敵のポーンが4番目または5番目のランクで隣接し、空白の四角で囲まれている可能性がありますが、エンパッサンが可能かどうかはまだわかりません。前の動きを確認する必要があります。
かと思った。これを再検討しているので、移動ログをチェックせずにen passantを実装するための賢い方法を見つけました。ターンスタート時に生成しないでください。move_take、特に2ステップのポーン移動の最後に生成します。ただし、通常の配列はすべてのinc_turnでクリアされるため、特別な移動配列に格納します。次に、gen_all_movesで適切に移行してクリアします。その方法では、epが行われなかった場合、次の移動で同じポーンを2ステップ移動しなかったため、次の移動でそれ自体は生成されません。ポーンの両側を確認し、2つの敵ポーンがいる場合は2 つの ep移動を作成することを忘れないでください。
Castlingは、すべてのピースで「移動した」ブール値を使用して実装されました。これは、ポーンの最初の移動にも役立ちます。キングとルークが正しい場所にいる場合でも、それを使用してキング/ルークが以前に移動したかどうかを確認します。移動ログを確認する必要はありません。しかし、パスが攻撃を受けているかどうかを確認する必要があるため、Castlingは実装が最も困難な方法であると言います。賢明な方法を考えたとき、エンパッサンはもはや最も難しくありません。