ฉันกำลังเขียน c ++ หมากรุกเครื่องยนต์และฉันกำลังมองหาหมายเลขมายากลสำหรับเล็กน้อย Endian แมปตำแหน่งไฟล์ bitboards ในการสร้างการเคลื่อนไหวสำหรับชิ้นเลื่อน
เว็บไซต์หมากรุกคู่ต่อสู้ให้หมายเลขเวทย์มนตร์ แต่ไม่ใช่สำหรับแผนที่กระดานเดียวกัน
วิกิการเขียนโปรแกรมหมากรุกให้หมายเลขมายากลที่ดีที่สุดจนถึงตอนนี้แต่ไม่ครบถ้วนสมบูรณ์
ในตอนท้ายฉันกำลังมองหาสี่สิ่ง:
- หน้ากากพักสำหรับแต่ละตาราง
- จำนวนเวทมนตร์สำหรับแต่ละตาราง
- เวทย์มนตร์เปลี่ยนสำหรับแต่ละตาราง
- ย้ายอาร์เรย์ฐานข้อมูลสำหรับแต่ละตาราง
ดังนั้นฉันสามารถใช้รหัสต่อไปนี้เพื่อค้นหาการเคลื่อนไหวของ Rook บน C3 (ตัวอย่าง):
bbBlockers = bbAllPieces & occupancyMaskRook[C3]
databaseIndex = (int)((bbBlockers * magicNumberRook[C3]) >> rookMagicShifts[C3])
bbMoveSquares = magicMovesRook[C3][databaseIndex] & ~bbFriendlyPieces