คำถามติดแท็ก programming

คำถามที่เกี่ยวข้องกับทุกแง่มุมของการเขียนซอฟต์แวร์ที่เกี่ยวข้องกับหมากรุก

4
สร้างเครื่องมือหมากรุก, การเรียนรู้ของเครื่องกับเครื่องมือแบบดั้งเดิม?
ฉันเป็นทั้งผู้เล่นหมากรุกตัวยงและโปรแกรมเมอร์คอมพิวเตอร์ ฉันจะบอกว่าการเล่นหมากรุกและการเขียนโปรแกรมเป็นสองสิ่งที่ฉันใช้เวลาทำมากที่สุด โดยธรรมชาติฉันต้องการสร้างเครื่องยนต์ของตัวเองและท้ายที่สุด Lichess bot เมื่อปีที่แล้ว AlphaZero มีประสิทธิภาพในการป้องกันสต็อคฟิชเมื่อปีที่แล้วฉันกำลังพิจารณาว่าฉันควรสร้างเครื่องมือนี้ด้วยการเรียนรู้ด้วยเครื่อง (เครือข่ายประสาทบางประเภทอาจใช้ Tensorflow) หรือการเข้ารหัสแบบยาก ฉันคุ้นเคยกับเครือข่ายประสาทน้อยกว่าการเข้ารหัสแบบอื่น ยังคงเป็นวิธีที่ดีสำหรับฉันที่จะเรียนรู้ที่จะทำงานกับเครือข่ายประสาท อีกสิ่งที่ฉันกำลังพิจารณาคือเป็นสิ่งสำคัญหรือไม่ที่ฉันต้องใช้รหัสในการเขียนโปรแกรม ฉันรู้ว่าโปรแกรมหมากรุกจำนวนมากใช้ C ++ ซึ่งฉันไม่เคยใช้มาก่อน ฉันใช้ภาษาที่ใช้ภาษา C อื่น ๆ ซึ่งทำสิ่งเดียวกันหลาย ๆ อย่างโดยส่วนใหญ่มีไวยากรณ์ที่แตกต่างกัน ฉันคุ้นเคยกับ Swift และ Javascript มากที่สุด แต่ฉันก็คุ้นเคยกับ Python และรู้สึกว่ามันสามารถใช้กลอุบายให้ฉันได้ ดังนั้นในแง่ของการสร้างเอ็นจิ้นหมากรุกที่แข็งแกร่งที่สุดที่เป็นไปได้ฉันควรไปที่โครงข่ายประสาทเทียมหรือรหัสฮาร์ดโค้ด

5
เครื่องยนต์มีการปรับปรุงอย่างไรตั้งแต่ Deep Blue?
เอ็นจิ้นหมากรุกคอมพิวเตอร์ได้ดีขึ้นตั้งแต่ Deep Blue เอาชนะ Kasparov ในปี 1997 อัลกอริทึมนั้นดีขึ้นหรือการปรับปรุงส่วนใหญ่เกิดจากอัลกอริธึมเดียวกันที่ทำงานเร็วขึ้นขอบคุณฮาร์ดแวร์ที่เร็วขึ้น ฯลฯ หากก่อนหน้านี้การปรับปรุงอัลกอริทึมเหล่านี้เป็นของสาธารณะหรือไม่ และถ้าเป็นเช่นนั้นการปรับปรุงคืออะไร? ฉันจะอ่านเกี่ยวกับพวกเขาได้ที่ไหน

3
การเล่นหมากรุกแบบโอเพนซอร์สหรือห้องสมุดดู pgn
มีใครคุ้นเคยกับห้องสมุดหมากรุกโอเพนซอร์สในภาษาใด ๆ ที่สามารถทำสิ่งใดสิ่งหนึ่งต่อไปนี้: แยกวิเคราะห์ PGN และ / หรือ FEN คำนวณการย้ายหมากรุกที่ถูกต้องตามตำแหน่ง ประมวลผลเกมหมากรุกทั้งหมด แก้ไข: ขออภัยฉันควรชัดเจนยิ่งขึ้น ฉันไม่ได้มองหาซอฟต์แวร์โอเพนซอร์ซฉันกำลังมองหาไลบรารีโปรแกรมมิงแบบโอเพนซอร์ส

3
แนวทางอื่นในการเขียนโปรแกรมกลไกหมากรุก
เท่าที่ฉันเข้าใจกลไกการพูดเกี่ยวกับหมากรุกทำงานโดย: การคำนวณรูปแบบที่เป็นไปได้ทั้งหมด (แผนผังเกม) ได้ถึงระดับความลึก ประเมินตำแหน่งสุดท้ายตามเกณฑ์บางอย่าง (วัสดุกิจกรรมชิ้นส่วน ... ) ขึ้นอยู่กับการประเมินผลนี้ตัดสินใจย้ายที่ดีที่สุด ฉันเข้าใจอย่างถ่องแท้ว่าการมีเอ็นจิ้นที่มีประสิทธิภาพนั้นมีวิธีการตัดบางบรรทัดจำกัดความลึก ฯลฯ แต่นี่ไม่ใช่คำถามของฉัน คำถามคือ: มีความพยายามอื่นในการเขียนโปรแกรมเอ็นจิ้นหมากรุก (ไม่จำเป็นต้องแข็งแกร่ง แต่ไม่สุ่ม) เช่นกันหรือไม่ซึ่งไม่เป็นไปตามรูปแบบนี้?

1
ฉันสามารถเพิ่มฟีเจอร์ใดในแอพพลิเคชั่นหมากรุก FIDE นี้? (แก้ไขแล้ว 2/25)
แก้ไข: แอพส่วนใหญ่แล้วเสร็จ ตอนนี้สิ่งที่ฉันต้องทำให้เสร็จก็คือการนำ FIDE arbiters ไปใช้พลวัต 3d plot (ตอนนี้มันมีแค่ 3 ตัวแปรที่ถูกพล็อตไม่มีอินพุตส่งผลกระทบ) เพิ่มข้อมูล FIDE เพิ่มเติม (ตามเดือน) และอาจรวมถึงข้อมูลหมากรุก USCF (ฉัน มีชุดข้อมูลล่าสุดสำหรับทุกสถานะ) ฉันได้ทำการปรับ 3 โพสต์นี้ 1. รวมแผนภูมิลำดับเวลาแบบไดนามิกที่ช่วยให้คุณเห็นผู้เล่นมากกว่าหนึ่งคนในแต่ละครั้ง: นี่ใช้เวลานานมากในการสร้าง! 2. รวมกราฟฮิสโตแกรม / ความหนาแน่นที่ซ้อนกัน 3. รวม 3d scatterplot 4. ปรับปรุงรูปแบบของแอพ แอปพลิเคชั่น Chess โดยสุจริต นอกเหนือจากกระดานหมากรุกแบบอินเทอร์แอคทีฟตัวเอง (ซึ่งจะเป็นสัตว์ที่แตกต่างกันในตัวของมันเอง) ฉันสามารถเพิ่มอะไรในแอพพลิเคชั่นนี้เพื่อปรับปรุงการแสดงผลและสรุปสถิติหมากรุก FIDE รวม? ฉันวางแผนที่จะเพิ่มพล็อตอนุกรมเวลาและแผนภูมิเคลื่อนไหวสำหรับข้อมูลประวัติโดยรวม หลังจากที่ฉันทำมันเสร็จแล้วฉันจะใส่ซอร์สโค้ดลงบน github / mediafire สำหรับผู้ที่สนใจด้านการเขียนโปรแกรมของสิ่งนี้ ในที่สุดฉันก็จะหาที่ให้โฮสต์แอปพลิเคชันนี้เพื่อที่คุณจะได้ใช้ในยามว่าง …

1
วิธีการแปลง PGN ย้ายไปเป็นสัญกรณ์พีชคณิตยาว (ในหลาม)?
ฉันต้องการอ่านไฟล์ PGN จากนั้นเลื่อนไปยังหมายเลขย้ายที่แน่นอนและป้อนไปยังเอ็นจิ้น UCI เปลี่ยนเครื่องยนต์ให้ทำงานโดยใช้สัญกรณ์พีชคณิตแบบยาวและ PGN อยู่ในพีชคณิตระยะสั้น วิธีง่ายๆในการแปลงคืออะไร? เช่นจาก SAN ถึง LAN ฉันรู้ว่าการสร้างพีชคณิตแบบยาวนั้นต้องใช้ความรู้เกี่ยวกับกฎกระดานหมากรุก & รัฐดังนั้นฉันไม่ต้องการเขียนมันอีกเลย! ต้องมีบางสิ่งเช่นนี้อยู่แล้วไม่ว่าจะเป็นโปรแกรมบรรทัดคำสั่งหรือโมดูล (โดยเฉพาะอย่างยิ่งในภาษาไพ ธ อน)
12 pgn  programming 

5
เอ็นจิ้นหมากรุกด้วย API
ฉันกำลังมองหาโปรแกรมหมากรุกที่มี API ปกติซึ่งฉันสามารถใช้กับภาษาการเขียนโปรแกรมระดับสูงเช่น C # หรือ python ฉันผ่านรายชื่อผู้นำ (Houdini, Komodo, Stockfish และ Rybka) และไม่พบสัญญาณใด ๆ ที่เอ็นจิ้นเหล่านี้มี API (ซึ่งทำให้ฉันประหลาดใจและแนะนำว่าฉันขาดอะไรไป) เพื่อให้คลุมเครือน้อยลงนี่คือสิ่งที่ฉันต้องการจาก API นี้: สามารถโหลดเกมเฉพาะลงในเอ็นจิ้นได้ สามารถประเมินตำแหน่งของเกมได้ สามารถเคลื่อนไหวได้ ดังนั้นใครจะรู้ว่าเครื่องยนต์ที่มีฟังก์ชั่น API ที่ชัดเจนให้กับมันหรือไม่?

2
ฉันจะรู้คะแนน Elo ของเครื่องมือหมากรุกของฉันได้อย่างไร
ฉันสร้างเอนจิ้นหมากรุกที่เข้ากันได้กับ uciและฉันต้องการทราบคะแนน Elo วิธีที่ง่ายที่สุดที่จะได้รับคืออะไร? ฉันต้องการบางสิ่งที่ใช้งานได้ทั้งบน Linux และ Windows

3
มี USCF API หรือไม่
เมื่อไม่นานมานี้มีเว็บไซต์สร้างโดยพ่อของ NM Jonathan Hilton ที่ทำการวิเคราะห์ประวัติของการจัดอันดับ USCF ของผู้เล่น ฉันคิดว่ามันเป็นเว็บไซต์ที่ดี แต่มันก็หายไป ยังมีเครื่องมือบางอย่างที่ลอยอยู่รอบ ๆ ฉันสงสัยว่ามี USCF API บางประเภทหรือไม่ว่าข้อมูลประเภทนั้นจะถูกจับได้อย่างไร
10 programming  uscf 

3
การทดสอบหน่วยการเป็นตัวแทนกระดานหมากรุก
นี่เป็นคำถามที่ค่อนข้างผิดเพี้ยน ฉันกำลังเขียนห้องสมุดหมากรุกโดยเริ่มจากศูนย์ คุณสามารถค้นหารหัสได้มากที่นี่ด้วยความตั้งใจที่จะใช้มันสำหรับ GUI และ / หรือเอ็นจิ้น (เกมนี้เป็นเกมหมากรุกแกรนด์ แต่สำหรับวัตถุประสงค์ของคำถามนี้มันไม่สำคัญเลย) ฉันกำลังเขียนการทดสอบหน่วยเพื่อตรวจสอบว่าฟังก์ชั่นของฉันทำงานได้ตามที่คาดไว้ และฉันสงสัยว่ามีห้องสมุดหรือฐานข้อมูลของตำแหน่งที่แนะนำเพื่อทดสอบที่ฉันสามารถใช้และทำงานได้หรือไม่โดยจัดหมวดหมู่ว่าพวกเขาเป็น Checkmate, Stalemate, Check, Legal, Illegal เป็นต้น tl; dr ฉันกำลังมองหารายการของตำแหน่งที่จะทดสอบหน่วยรหัสของฉันกับ คุณสามารถค้นหาการทดสอบปัจจุบันของฉันที่นี่ฉันเพิ่มให้พวกเขาทุกสองสามวัน อย่างไรก็ตามฉันต้องการตรวจสอบให้แน่ใจว่าการทดสอบครบถ้วนสมบูรณ์ก่อนที่ฉันจะทำการดีบักรหัส (ครึ่งหนึ่งของพวกเขาล้มเหลวในขณะนี้) แก้ไข: ชี้แจง: ฉันไม่ได้มองหาการทดสอบของเครื่องยนต์ ("ย้ายที่ดีที่สุด") ฉันกำลังมองหาการเป็นตัวแทนคณะกรรมการ ("คือตำแหน่งรุกฆาต") การทดสอบ ฉันมีปริศนาอยู่สองสามข้อสำหรับการทดสอบเครื่องยนต์

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