เอ็นจิ้น XiangQi (หมากรุกจีน) สำหรับ XQWizard พร้อม AI ที่แข็งแกร่ง
โปรแกรมเกมหมากรุกจีน ElephantEye (Elephant Eye) เวอร์ชั่น: 3.15
เครือข่ายสารานุกรม Xiangqi* มีนาคม 2551
(* อีเมล์: [email protected])
1. บทนำ
ElephantEye เป็นโปรแกรมหมากรุกจีนฟรี ภายใต้สมมติฐานของ GNU Lesser General Public License ผู้ชื่นชอบหมากรุกและโปรแกรมเมอร์สามารถใช้ ElephantEye และโปรแกรมต้นฉบับได้อย่างอิสระ
ชื่อภาษาจีนของ ElephantEye คือ "Elephant Eye" ซึ่งเมื่อรวมกับ "ขาม้า" และ "โครงปืนใหญ่" แล้ว ถือเป็น "มิติที่สามบนกระดานหมากรุก" ของหมากรุกจีน โดยปกติ ElephantEye จะใช้ร่วมกับ ElephantBoard ซึ่งเป็นซอฟต์แวร์แก้ไขบันทึกหมากรุก ซึ่งหมายถึงการมีแผนที่ชัดเจน (กระดานในภาษาอังกฤษแปลว่า "กระดาน") (หมายเหตุ: ตอนนี้ ElephantBoard ได้เปลี่ยนชื่อเป็น "Chess Wizard")
2. ข้อตกลงด้านเครื่องยนต์
ElephantEye รองรับ UCCI 3.0 ผู้ใช้ Xiangqi สีแดงอ่อนสามารถเรียกใช้เอ็นจิ้น ElephantEye ผ่านอะแดปเตอร์เอ็นจิ้น UCCI (UCCI2QH)
(1) คำสั่ง UCCI ที่รองรับคือ:
อุชชี่
การตั้งค่า...
ตำแหน่ง {fen <fen_str> |. startpos} [ย้าย <move_list>]
แบนมูฟ <move_list>
ไป [ไตร่ตรอง |.วาด] ...
ไตร่ตรอง [วาด] |
โพรบ {fen <fen_str> |. startpos} [ย้าย <move_list>]
ล้มเลิก
(2) ข้อมูล UCCI ที่สามารถส่งคืนได้คือ:
id {ชื่อ <engine_name> |. เวอร์ชัน <version_name> |. ลิขสิทธิ์ <copyright_info> |.
ตัวเลือก...
อุคซิก
ข้อมูล...
{nobestmove |. bestmove <best_move> [ไตร่ตรอง <ponder_move>] [วาด |.
pophash [bestmove <best_move>] [ขอบเขตล่าง <value> ความลึก <ความลึก>] [บน <value> ความลึก <ความลึก>]
ลาก่อน
3. การตั้งค่าพารามิเตอร์
เนื่องจากเป็นเอ็นจิ้น UCCI ElephantEye มีพารามิเตอร์หลายตัวที่สามารถตั้งค่าได้ (สามารถตั้งค่าได้โดยตรงใน <Chess Wizard>)
(1) ห้องสมุดเริ่มต้น:
ไลบรารีการเปิดเริ่มต้นคือ BOOK.DAT ในไดเร็กทอรีปัจจุบันของโปรแกรม ElephantEye (ELEEYE.EXE) ซึ่งมีตำแหน่งสมมาตร 10,000 ตำแหน่ง
(2) เวลาคิด:
การจำกัดความลึกของการคิดมักไม่ใช่ทางเลือกที่ดี แนะนำให้กำหนดเวลาและให้โปรแกรมจัดสรรเวลาโดยอัตโนมัติ เมื่อแก้เกมฆ่าหรือวิเคราะห์สถานการณ์ โปรแกรมสามารถคิดได้อย่างไม่มีขีดจำกัดและสามารถหยุดคิดได้ตลอดเวลา
(3) ขนาดโต๊ะทดแทน:
แม้ว่าขนาดของตารางทดแทนจะมีผลกระทบเพียงเล็กน้อยต่อความเร็วในการรันของโปรแกรม และการตั้งค่าเริ่มต้นที่ 16MB ก็เพียงพอแล้ว แต่ ElephantEye ยังคงมีฟังก์ชันในการตั้งค่าขนาดของตารางทดแทน หากหน่วยความจำอนุญาต คุณสามารถเพิ่มขนาดของตารางทดแทนได้อย่างเหมาะสมเมื่อเล่นหมากรุกช้า แต่ขอแนะนำว่าไม่ควรเกินครึ่งหนึ่งของหน่วยความจำกายภาพ
(3) ระดับการตัดเย็บ:
เพื่อเร่งการทำงานของโปรแกรม ElephantEye จะใช้การตัดคลิปเปล่าตามค่าเริ่มต้น และความเป็นไปได้ที่จะเกิดผลกระทบด้านลบนั้นมีน้อยมาก เฉพาะระดับต่ำสุดเท่านั้นที่ปิดใช้งานการครอบตัดเปล่า
(4) จำนวนความรู้:
จำนวนความรู้เกี่ยวข้องกับความแม่นยำของการประเมินสถานการณ์ ในระดับความรู้ของ ElephantEye มีเพียงระดับต่ำสุดเท่านั้นที่ไม่ได้ใช้ฟังก์ชันการประเมินสถานการณ์ (พิจารณาเฉพาะค่าของพลังย่อยเท่านั้น) เรื่องความรู้ในการทบทวนเพื่อวิเคราะห์ตำแหน่ง ฯลฯ ในสถานการณ์นี้คุณสามารถลองใช้การตั้งค่านี้ได้
(5) ความสุ่ม:
ElephantEye มีการสุ่ม 4 ระดับ ยิ่งการสุ่มมากเท่าไร โปรแกรมก็จะมีโอกาสเกิดการเคลื่อนไหวที่คิดว่าไม่ใช่การเคลื่อนไหวที่ดีที่สุดมากขึ้นเท่านั้น แต่ "ไม่ใช่การเคลื่อนไหวที่ดีที่สุด" ก็ไม่ได้ไร้ประโยชน์ใดๆ โดยเฉพาะอย่างยิ่งเมื่อไม่ได้เปิดใช้งานไลบรารี่ที่เปิดอยู่ เพิ่มความเหมาะสม การสุ่มสามารถหลีกเลี่ยงได้ โปรแกรมจะทำการเคลื่อนที่แบบเดียวกันในสถานการณ์เดียวกัน
4. กฎเกณฑ์
ตั้งแต่เวอร์ชัน 2.0 เป็นต้นไป ElephantEye ไม่เพียงสนับสนุนกฎ "การตัดสินใจแพ้ระยะยาวฝ่ายเดียว" แต่ยังสนับสนุน "การตัดสินใจแพ้ระยะยาว" รวมถึง "ตรวจสอบ" และ "จับได้" อีกด้วย เนื่องจากข้อจำกัดในความซับซ้อนของโปรแกรม จึงมีเพียงสามสถานการณ์ต่อไปนี้เท่านั้นที่ได้รับการยอมรับว่าเป็น "catch":
ก. ม้าและรถม้าศึกหรือทหารปืนใหญ่ (เบี้ย) ที่มีราก
B. เกวียนและทหารปืนใหญ่ (เบี้ย) ที่มีราก;
C. ปืนใหญ่ยึดรถม้าศึกหรือทหารม้าที่หยั่งราก (เบี้ย)
แม้ว่า ElephantEye อาจไม่สามารถระบุการเคลื่อนไหวระยะไกลได้อย่างถูกต้องในสถานการณ์ที่ซับซ้อน เนื่องจากรองรับคำสั่ง UCCI banmoves... เมื่อผู้ใช้คิดว่ากลไกได้ห้าม "การเคลื่อนที่ระยะยาว" แล้ว พวกเขาสามารถใช้ฟังก์ชัน "set ban" ของ <Chess Wizard> ปล่อยให้เครื่องยนต์เปลี่ยนอย่างแรง
5. อัลกอริทึมของเกม
ElephantEye เป็นโปรแกรมหมากรุกแบบเดรัจฉานที่ใช้อัลกอริธึมเกมที่เข้มงวดและมีประสิทธิภาพ:
(1) ย้ายตัวสร้างโดยใช้แถวบิตและคอลัมน์บิต:
แถวบิต (BitRanks) และคอลัมน์บิต (BitFiles) เอื้อต่อการสร้างการเคลื่อนไหวของตัวหมากรุกแบบเลื่อน (รถยนต์และปืนใหญ่) (โดยเฉพาะการจับการเคลื่อนไหว) แถวบิตและคอลัมน์บิตสามารถใช้ตารางการค้นหาแทนการวนซ้ำในการดำเนินการของรังสี ใน ElephantEye เทคโนโลยีของแถวบิตและคอลัมน์บิตไม่เพียงแต่ใช้ในตัวสร้างการเคลื่อนไหวเท่านั้น แต่ยังใช้ในการกำหนดการปักหมุดด้วย
(2) การค้นหาสถานการณ์คงที่:
เมื่อทำการค้นหาคงที่ ElephantEye ค้นหาการเคลื่อนไหวเพื่อจับหรือลบนายพล เมื่อค้นหาการเคลื่อนไหวที่จะยึดครอง ElephantEye จะกรองการจับที่ไม่สำคัญออกไป เช่น เบี้ยที่ไม่สามารถยึดแม่น้ำได้ หรือทหารที่ยึดตัวอธิการที่ไม่ได้รับการป้องกัน วิธีการรอไม่อยู่ในขอบเขตของการค้นหาแบบคงที่
(3) การเคลื่อนที่ของวงจรและการตรวจจับระยะไกล:
ElephantEye สามารถระบุการเคลื่อนไหวแบบวนซ้ำได้ เมื่อเกิดการเคลื่อนไหวแบบวนซ้ำ จะสามารถระบุได้ว่าฝ่ายใดเป็นผู้นำ และจะใช้ประโยชน์จากกฎที่ห้ามกัปตัน อย่างไรก็ตาม ในปัจจุบัน ElephantEye ไม่สามารถระบุการคว้าระยะยาวได้
(4) โต๊ะทดแทน:
ElephantEye หมายถึงแนวคิดการออกแบบของโปรแกรมหมากรุกจีน "Running Horses" ใช้ตารางการแทนที่สองชั้นที่มีความลึกเป็นอันดับแรกและครอบคลุมเสมอ และใช้กลยุทธ์การอัปเดตตารางทดแทนการแก้ไขขอบเขตต่ำออก (สูงออก)
(5) การตัดเปล่าพร้อมการตรวจสอบ:
ElephantEye ใช้การตัดคลิปเปล่าด้วย R=2 และใช้การตัดคลิปเปล่าที่ทำเครื่องหมายไว้ในช่วงท้ายเกม
(6) การเคลื่อนไหวที่ลึกซึ้งยิ่งขึ้น/การเคลื่อนไหวการกินของเด็ก/การเคลื่อนไหวของนักฆ่า/แรงบันดาลใจในตารางประวัติศาสตร์:
การเรียงลำดับการเคลื่อนไหวของ ElephantEye นั้นเรียบง่ายและชัดเจน ตามด้วยการเคลื่อนไหวที่ลึกขึ้นซ้ำๆ ท่าการจับที่ดี ท่านักฆ่า และท่ากำเนิดที่จัดเรียงตามตารางประวัติ
(7) โดยทั่วไป/แต่เพียงผู้เดียวจะขยายความ:
สำหรับส่วนขยายแบบเลือกรายการ ElephantEye จะใช้ส่วนขยายทั่วไปและเฉพาะส่วนขยายทั่วไปเท่านั้น
(8) การค้นหาตัวแปรหลัก Alpha-Beta:
ElephantEye ใช้การค้นหาตัวแปรหลักแบบเรียกซ้ำอัลฟ่า-เบต้าแบบดั้งเดิม
(9) ห้องสมุดเริ่มต้น:
ห้องสมุดเปิดของ ElephantEye มีการเคลื่อนไหวแบบสมมาตรทั้งหมด 10,000 ท่า ซึ่งดึงมาจากเกมชั้นนำ 8,000 เกมในการแข่งขันหมากรุกระดับประเทศ การแข่งขันรายบุคคล การแข่งขันแบบทีม Wuyang Cup ลีก และเกมอื่น ๆ ตั้งแต่ปี 1990 ถึง 2005
(10) กลยุทธ์การคิดหลังเวทีและการจัดสรรเวลา:
ElephantEye รองรับฟังก์ชันการคิดเบื้องหลัง และมอบกลยุทธ์การจัดสรรเวลาสองแบบ ตามช่วงเวลาและการทำงานล่วงเวลา ซึ่งจะจัดสรรเวลาอย่างสมเหตุสมผลโดยอัตโนมัติ
6. การเปิดห้องสมุด
ห้องสมุดเปิดของ ElephantEye สามารถผลิตได้โดย "ElephantEye Opening Library Maker" หลังจากเรียกใช้เครื่องมือการผลิตแล้ว คุณต้องเลือกโฟลเดอร์ที่มีบันทึกเกม PGN อยู่ก่อน จากนั้นจึงบันทึกเป็นไฟล์ไลบรารีสำหรับเปิด (โดยปกติคือ BOOK.DAT) โดยทั่วไป ยิ่งจำนวนบันทึกหมากรุกที่ใช้ในการสร้างไลบรารี่เปิดมากเท่าใด ไฟล์ไลบรารี่เปิดที่สร้างขึ้นก็จะยิ่งมีขนาดใหญ่ขึ้นเท่านั้น
เพื่อให้ไลบรารี่เปิดมีประสิทธิภาพสำหรับ ElephantEye คุณเพียงแค่แทนที่ BOOK.DAT ในไดเร็กทอรี ElephantEye ด้วยไฟล์ไลบรารี่เปิดที่สร้างขึ้น คุณยังสามารถระบุไฟล์ไลบรารี่เปิดได้ในกล่องโต้ตอบ "การตั้งค่าเครื่องยนต์" ของ <Chess ตัวช่วยสร้าง>.
7. ไลบรารีฟังก์ชันการประเมินสถานการณ์
ElephantEye เริ่มต้นจากเวอร์ชัน 2.1 ส่วนการค้นหาและส่วนการประเมินสถานการณ์ของโปรแกรมจะถูกแยกออกจากกัน ส่วนการค้นหาจะเชื่อมโยงกับส่วนการประเมินสถานการณ์โดยการเรียกใช้ฟังก์ชัน API
โปรแกรมเมอร์หมากรุกคนอื่นๆ สามารถเล่นได้อย่างอิสระมากขึ้นบนพื้นฐานของ ElephantEye ตามข้อตกลง LGPL การค้นหาและการประเมินสถานการณ์สองส่วนจะถือเป็นไลบรารีโปรแกรมอิสระ หากต้องการใช้ส่วนหนึ่งส่วนใดของส่วนนั้น คุณจะต้องเปิดเผยโปรแกรมต้นฉบับของส่วนนั้นเท่านั้น กล่าวอีกนัยหนึ่ง หากส่วนการประเมินสถานการณ์ไม่ได้ใช้โค้ดเปิดใดๆ โปรแกรมเมอร์ก็ไม่มีภาระผูกพันในการเปิดเผยโปรแกรมต้นฉบับของส่วนนี้ และเช่นเดียวกันกับส่วนการค้นหา
อินเทอร์เฟซฟังก์ชัน API การประเมินสถานการณ์ของ ElephantEye มีการกำหนดไว้ดังนี้:
A. ชื่อกลไกการประเมินสถานการณ์: const char *GetEngineName(void);
B. อินเทอร์เฟซฟังก์ชันการประเมินตำแหน่งล่วงหน้า: ถือเป็นโมฆะ PreEvaluate(PositionStruct *lppos, PreEvalStruct *lpPreEval);
C. อินเทอร์เฟซฟังก์ชันการประเมินตำแหน่ง: int ประเมิน (const PositionStruct *lppos, int vlAlpha, int vlBeta);
ในบรรดาสิ่งเหล่านั้น PositionStruct และ PreEvalStruct จะต้องสอดคล้องกับโครงสร้างที่กำหนดไว้ในposition.h และ pregen.h ตามลำดับ
8. โปรแกรมต้นทาง
โปรแกรมต้นฉบับของ ElephantEye มีทั้งหมด 9 โมดูล โดยมีเนื้อหาคร่าวๆ ดังนี้
(1) ucci.h/ucci.cpp
โมดูลการตีความคำสั่ง UCCI รวมถึงโปรแกรมรับอินพุตบรรทัดภายใต้ Windows และ Unix
(2) pregen.h/pregen.cpp
โมดูลสำหรับสร้างอาร์เรย์ Zobrist และย้ายตารางที่ตั้งไว้ล่วงหน้า ตารางที่กำหนดไว้ล่วงหน้าของ ElephantEye แบ่งออกเป็นสองส่วน ส่วนแรกคือตารางที่กำหนดไว้ล่วงหน้าสำหรับการเลื่อนหมาก (รวมถึงหมาก rooks ปืนใหญ่ และหมากอื่น ๆ ทั้งหมด) โดยใช้เทคโนโลยีตำแหน่งแถวและคอลัมน์ตำแหน่ง ส่วนที่สองคือตารางการเคลื่อนที่ที่กำหนดไว้ล่วงหน้า ตัวหมากรุกอื่นๆ ซึ่งหลีกเลี่ยงการตัดสินขอบเขตที่ยุ่งยากเมื่อสร้างการเคลื่อนไหว
(3)position.h/position.cpp
อธิบายโครงสร้างข้อมูลและหน้าที่ของการเคลื่อนไหวและสถานการณ์เป็นหลัก การประมวลผลสถานการณ์เป็นจุดเน้นของโมดูลนี้ เนื้อหาการประมวลผลประกอบด้วยการเริ่มต้นสถานการณ์ การนำเข้าสตริง FEN การเคลื่อนไหวของตัวหมากรุก การตัดสินอย่างมีเหตุผลของการเคลื่อนไหวของนักฆ่า การตัดสินทั่วไป การตรวจจับผู้นำและวงจร การปรับมูลค่าของชิ้นส่วน ฯลฯ นอกจากนี้ยังมีตารางค่าตำแหน่ง Sub-force จำนวน 5 ตาราง
(4)เจนมูฟส์.ซีพีพี
ตัวสร้างการเคลื่อนไหวประกอบด้วยสองประเภทที่สร้างการเคลื่อนไหวที่จับชิ้นส่วนและการเคลื่อนไหวที่ไม่จับชิ้นส่วน แต่ไม่เพียงสร้างการเคลื่อนไหวที่กำจัดนายพลเท่านั้น ในขณะที่สร้างท่ากินเด็ก แต่ละท่าจะถูกกำหนดค่า MVV (LVA) (หรือ quasi-SEE) ที่สอดคล้องกัน โมดูลนี้ยังมีฟังก์ชันที่กำหนดโดยเฉพาะว่าตัวหมากรุกได้รับการป้องกันเพื่อคำนวณค่า MVV (LVA) หรือไม่ สำหรับตัวหมากรุกที่ได้รับการป้องกัน ให้คำนวณค่า MVV-LVA (ไม่นับว่ามีค่าน้อยกว่าศูนย์หรือไม่) คำนวณเฉพาะค่า MVV ดังนั้น โปรแกรมเพื่อตรวจสอบว่าตัวหมากรุกมีรูทจะรวมอยู่ในโมดูลนี้ด้วย
(5) hash.h/hash.cpp
ตารางการทดแทน ตารางประวัติ และโมดูลการจัดการรายการย้ายประกอบด้วยการจัดสรรและการเข้าถึงตารางการทดแทน การได้มาซึ่งรูปแบบหลัก และการดำเนินการอื่น ๆ
(6) book.h/book.cpp
กำลังเปิดโมดูลการอ่านห้องสมุด
(7) movesort.h/movesort.cpp
ย้ายโมดูลการเรียงลำดับรายการ
(8) search.h/search.cpp
นอกเหนือจากกระบวนการหลักสามกระบวนการในการค้นหาแบบคงที่ การค้นหาแบบสมบูรณ์ และการค้นหาโหนดรากแล้ว โมดูลการค้นหายังรวมถึงการควบคุมเชิงลึกแบบวนซ้ำ การคิดเบื้องหลัง การจัดสรรเวลา สถิติพารามิเตอร์การค้นหา และเอาต์พุตข้อมูลการค้นหา โมดูลนี้เป็นโมดูลหลักของโปรแกรมทั้งหมด
(9) eleeye.cpp
โปรแกรมหลัก (เช่น ฟังก์ชันหลัก)
(10) preeval.h/preeval.cpp
ตัวกำเนิดอาร์เรย์ตำแหน่งพลังย่อยล่วงหน้า ElephantEye จะปรับอาร์เรย์ตำแหน่งพลังงานย่อยเชิงเส้นตามพารามิเตอร์สองตัวของ "รุก/ป้องกัน" และ "เกมเปิด/กลางเกม/จบเกม"
(11) ประเมิน.cpp
สำหรับฟังก์ชันการประเมินสถานการณ์ ElephantEye ใช้กลไกการประเมินแบบขี้เกียจสี่ระดับ ระดับที่ยากที่สุดจะประเมินเฉพาะรูปแบบหมากรุกพิเศษเท่านั้น ระดับต่อไปจะประเมินการกักกัน ระดับต่อไปจะประเมินความยืดหยุ่นของเรือประมง และระดับสูงสุดจะประเมินการกีดขวางด้วย ของอัศวิน
9. ประสิทธิภาพของโปรแกรม
การออกแบบของ ElephantEye มุ่งเน้นไปที่อัลกอริธึมการค้นหา แต่ยังขาดความรู้ค่อนข้างมาก บนโปรเซสเซอร์ 2.8GHz สามารถค้นหาโหนดได้ประมาณ 1,000,000 โหนดต่อวินาที (รวมถึงการค้นหาปกติและการค้นหาแบบคงที่) และสามารถค้นหาได้ประมาณ 11 เลเยอร์ในสถานการณ์เกมกลางทั่วไปภายใน 1 นาที
ในแง่ของพลังหมากรุก ElephantEye อยู่ในระดับเดียวกับโปรแกรมเช่น "Qiyin" และ SaoLa (Chess Challenger) อย่างไรก็ตาม เนื่องจากข้อบกพร่องในฟังก์ชันการประเมินตำแหน่ง ElephantEye จึงยังห่างไกลจากซอฟต์แวร์หมากรุกเชิงพาณิชย์ชั้นนำ (Xie Master, ครอบครัว Xiangqi, Xiangqi Qibing, Qi) ยังมีช่องว่างอยู่บ้าง
ElephantEye ได้รับการทดสอบบนเว็บไซต์เกมหมากรุก เช่น Lianzhong และ Yitian โดยวัดจากคะแนนเกรด บันทึกของ Lianzhong.com อยู่ที่ประมาณ 2,500 คะแนน บันทึกหมากรุกที่รวดเร็วของ Yitian อยู่ที่ประมาณ 2,000 คะแนน และหมากรุกช้าอยู่ที่ประมาณ 1,500 คะแนน
ในเดือนกันยายน พ.ศ. 2548 ด้วยความช่วยเหลือของ Mr. Shi Jinshan ผู้ชื่นชอบซอฟต์แวร์หมากรุกชาวไต้หวัน ElephantEye ได้เข้าร่วมการแข่งขันกลุ่มหมากรุกจีนในการแข่งขัน ICGA Computer Olympiad ครั้งที่ 10 ที่จัดขึ้นที่ไทเป โดยมีสถิติชนะ 7 แพ้ 5 แพ้ 14 ในกลุ่ม 14 โปรแกรม อันดับ 11 สิงหาคม 2549 เข้าร่วมการแข่งขันเกมคอมพิวเตอร์ระดับชาติชิงแชมป์แห่งชาติครั้งแรกที่จัดขึ้นที่กรุงปักกิ่งโดยมีสถิติชนะ 7 แพ้ 2 แพ้ 11 อยู่ในอันดับที่ 7 จาก 18 รายการ
10. แหล่งข้อมูลที่เกี่ยวข้อง
โปรแกรมต้นฉบับของ ElephantEye เปิดตัวในโครงการ XiangQi Wizard ของ SourceForge และหน้าของมันคือ:
http://sourceforge.net/projects/xqwizard/
การปรับปรุงเวอร์ชันของ ElephantEye ได้รับการเผยแพร่แบบเรียลไทม์บนไซต์ SourceForge SVN ที่อยู่การเข้าถึงคือ:
https://xqwizard.svn.sourceforge.net/svnroot/xqwizard/
คุณสามารถใช้โปรแกรมไคลเอ็นต์ SVN เช่น TortoiseSVN เพื่อรับโค้ดล่าสุด (ซิงโครไนซ์กับนักพัฒนาโดยสมบูรณ์) ที่อยู่แนะนำและดาวน์โหลดของ TortoiseSVN คือ:
http://sourceforge.net/projects/tortoisesvn/
ต้องรัน ElephantEye ภายใต้โปรแกรมหมากรุกที่รองรับ UCCI (เช่น <Chess Wizard>) โปรแกรมติดตั้ง <Chess Wizard> มีเวอร์ชันล่าสุดของ ElephantEye
<Chess Wizard> สามารถดาวน์โหลดได้จากเว็บไซต์ต่อไปนี้:
http://www.skycn.com/soft/24665.html (สกายซอฟต์แวร์สเตชั่น)
http://www.onlinedown.net/soft/38287.htm (หัวจุนซอฟท์แวร์ปาร์ค)
นอกเหนือจากซอร์สโปรแกรมของ ElephantEye แล้ว แพ็คเกจโปรแกรมซอร์สของ ElephantEye ยังมีโมดูลเพิ่มเติมดังต่อไปนี้:
(1) รหัสฐาน (ฐาน): ให้คำแนะนำการประกอบ การเรียกฟังก์ชันระบบ และฟังก์ชันอื่นๆ
(2) โมดูลกฎหมากรุกจีน (ccess): จัดเตรียมอินเทอร์เฟซสำหรับซอฟต์แวร์อื่นเพื่อใช้โค้ด ElephantEye
(3) การเปิดโมดูลการผลิตห้องสมุด (BOOK): รหัสเพื่อสร้างห้องสมุดเปิด BOOK.DAT;
(4) UCCI Engine League Simulator (LEAGUE): มอบแพลตฟอร์มการจับคู่แบทช์อัตโนมัติสำหรับการทดสอบและการแข่งขันเครื่องยนต์ UCCI
(5) UCCI Engine Search Tree Analyzer (TREE): เครื่องมือวิเคราะห์เส้นทางการค้นหาเส้นทางสำหรับเอ็นจิ้น UCCI (รองรับ UCCI 2.2+)
(6) เครื่องมือบันทึกหมากรุก XQF (XQFTOOLS): จัดเตรียมเครื่องมือสำหรับการแปลง XQF และบันทึกหมากรุกอื่น ๆ เป็น PGN
(7) อะแดปเตอร์หมากรุกสีแดงอ่อน (UCCI2QH): จัดให้มีอินเทอร์เฟซสำหรับหมากรุกสีแดงอ่อนเพื่อเรียกกลไก UCCI
(8) เอ็นจิ้นหมากรุกสีแดงอ่อนรองรับอะแดปเตอร์ UCCI (QH2UCCI): จัดเตรียมอินเทอร์เฟซสำหรับหมากรุกสีแดงอ่อน "Dream Egg" เพื่อเข้าร่วมการทดสอบเอ็นจิ้น UCCI
(9) BBS Chess (BBSCHESS): เครื่องมือตั้งค่าตำแหน่งหมากรุกที่สร้างด้วย Visual Basic ซึ่งสามารถวางตำแหน่งหมากรุกสีบน BBS ของมหาวิทยาลัยต่างๆ
(10) เครื่องกำเนิดภาพกระดานหมากรุก (FEN2BMP): เครื่องมือที่ใช้งานได้จริงที่สามารถแปลงไฟล์ FEN ของหมากรุกและหมากรุกจีนเป็นไฟล์ BMP
(11) การแปลงการเข้ารหัส (ตัวแปลงสัญญาณ) รวมถึงการแปลงรหัสแบบง่ายและแบบดั้งเดิม, การแปลงรหัสข้อความ UNIX, การแปลงรหัส Base64 ฯลฯ
(12) เครื่องมืออื่นๆ (MISC): รวมถึงการสื่อสารเครือข่ายอย่างง่าย การทดสอบไปป์ไลน์ และเครื่องมืออื่นๆ
(13) เอกสารประกอบ (DOC): ได้แก่ ชุด "การสำรวจการเขียนโปรแกรมหมากรุกจีน"
(14) บันทึกหมากรุกที่เข้าร่วม (CCGC): บันทึกหมากรุกทั้งหมดของ ElephantEye ที่เข้าร่วมในการแข่งขัน National Computer Gaming Championship (CCGC) ครั้งแรก
หากคุณต้องการรับข้อมูลโดยละเอียดเพิ่มเติมเกี่ยวกับ ElephantEye คุณสามารถเข้าสู่เว็บไซต์ Xiangqi Encyclopedia:
http://www.xqbase.com/