Saya tertarik memprogram mesin catur dan menggunakan bitboard untuk mewakili kondisi permainan. Saya tahu ada beberapa mesin catur open source yang menggunakan bitboard, tetapi tidak begitu mudah untuk melihat kode dan memahami apa yang sedang terjadi. Saya mencari bahan referensi yang bagus tentang cara mewakili semua negara dalam bitboard.
Menjelaskan dengan jelas bagaimana mempertahankan keadaan permainan menggunakan bitboard, dan terutama bagaimana membuat daftar langkah yang valid dari bitboard yang diberikan, atau memberikan referensi yang bagus untuk penjelasan seperti itu akan memberi Anda tanda centang hijau.
engines
software
open-source
aksioma
sumber
sumber
Jawaban:
Sumber daya terbaik untuk pemrograman mesin catur adalah Chiki Programming Wiki , yang memiliki bagian besar pada bitboard . Semua yang Anda butuhkan untuk membuat mesin berbasis bitboard ada di sana, meskipun agak tersebar dan terkadang ditulis oleh orang-orang yang bahasa Inggrisnya adalah bahasa kedua.
sumber
Bahasa pemrograman apa yang ingin Anda gunakan?
Untuk mengimplementasikan bitboard di C #, gunakan System.UInt64 . Ini dapat menampung 64 bit, 1 untuk setiap kuadrat papan catur. Jenis nilai ini cocok untuk banyak operasi bitwise cepat.
Ini adalah tutorial bitboard yang bagus .
Berikut adalah beberapa contoh dari mesin catur C # saya sendiri. Seperti yang dapat Anda lihat dari kode, dibutuhkan waktu untuk membungkus kepala Anda menggunakan bitboard, tetapi biasanya sangat cepat, terutama untuk evaluasi posisi.
Contoh 1 - Definisi Bitboard:
Contoh 2 - Inisialisasi Bitboard:
Contoh 3 - Pindahkan generasi:
Contoh 4 - Hitung skor materi:
Contoh 5 - Menghitung mobilitas bagian:
sumber