私は問題を抱えて頭を抱えていました。 私は現在、Javaでビットボードベースのチェスエンジンを書いています。これまでのところ、すべてのポーン/キング/ナイトの動きは、期待どおりにバグなく動作します。チェスエンジンのスライディングピースの生成
私が理解するのに必要なのは、スライディングピースの動きの生成です。私は各正方形/ピースの空のボードの動きの配列を生成しました。私の現在の理解から、私はまた、各正方形上の各可能な占有を含むアレイを開発する必要があります - そして、何とかいろいろな方法に基づいてその配列を調べます。
この考え方は正しいですか?それは0から2までのすべての数をピッキングすることですか?63そしてその四角形の移動ビットボードでxor'ingし、それをある方法(魔法/回転ビットボード)で保存して配列を初期化し、同じ方法でそれにアクセスしますランタイム?
擬似コードと説明は非常に高く評価されています。 (私は>>>を使っています)。
ありがとうございますが、マジックビットボードを使用しても、マジックナンバーを使用してルックアップテーブルを正確に参照しています。私の質問は、そのルックアップテーブルを生成する方法です。私はちょうど理解していない限り。 – thePanthurr
@thePanthurrあなたの質問は、同じルックアップテーブルがどのスライディングピース方法にも使用されると思われるように見えます。しかし、彼らはすべて異なるルックアップテーブルが必要です。それらの一部(例えば、マジックビットボード)は、複数のルックアップテーブルを使用します。どの方法を使いたいのかを決め、それについて読んで、理解していないことを具体的に尋ねるべきです。 – interjay
@thePanthurr自分でテーブルを生成する必要はありません。 – SmallChess