शतरंज इंजन लिखने के लिए कुछ अच्छे संसाधन क्या हैं? [बन्द है]


82

मुझे एक शतरंज इंजन लिखने में दिलचस्पी है (ज्यादातर एक सीखने की कवायद के रूप में) और किसी भी संसाधन में दिलचस्पी होगी जो लोगों को पता है कि ब्याज या उपयोग हो सकता है, वास्तव में कुछ भी हो सकता है: कागज, किताबें, सिद्धांत, ट्यूटोरियल, कुछ भी हो सकता है उपयोगी।


जवाबों:


123

मेरे अभिलेखागार से:


5
शतरंज प्रोग्रामिंग विकी बहुत अच्छा है।
पॉल विक्स

दूसरी कड़ी अब है: आर्काइव.गैमडेव.नेट
दादा

धन्यवाद, दादाजी - लिंक अब तय की गई।
HTTP 410

दूसरा लिंक फिर से नीचे है।
Imon

1
@ मुझे, दूसरी कड़ी मेरे लिए काम कर रही है।
HTTP 410

31

अपना शतरंज इंजन बनाते समय मैंने अच्छे संसाधन जुटाने की कोशिश में महीनों लगाए जो शतरंज के खेल के कुछ कठिन पहलुओं का वर्णन करते हैं। यहाँ उन लोगों की एक सूची दी गई है जिन्हें मैंने सबसे उपयोगी पाया:

फ्रांस्वा डोमिनिक लारमी द्वारा शतरंज प्रोग्रामिंग

यह वह लेख है जो मुझे कंप्यूटर शतरंज में मिला, यह एक महान अवलोकन है कि कंप्यूटर शतरंज कैसे खेलते हैं। यह पढ़ना बहुत आसान है और यह आपको सभी नियमों और कीवर्ड से परिचित कराएगा।

http://www.gamedev.net/page/resources/_/chnical/artific-intelligence/chess-programming-part-i-getting-started-r1014

कंप्यूटर शतरंज विकि , पिछले कुछ महीनों में इसका विस्तार हुआ है। यह संदर्भ सामग्री के लिए एक उत्कृष्ट संसाधन है।

https://www.chessprogramming.org/Main_Page

लुई केसलर के कंप्यूटर शतरंज लिंक

एक बार जब आप उपरोक्त संसाधनों से गुजरते हैं, तो शेष को निम्न लिंक पेज पर पाया जा सकता है।

http://www.lkessler.com/cclinks.shtml

पिछले नहीं बल्कि कम से कम मैं एक कंप्यूटर शतरंज ब्लॉग लिखता हूं जो आपको खरोंच से सी # में एक शतरंज इंजन लिखने के सभी चरणों के माध्यम से लेता है, इसमें एक कंप्यूटर शतरंज लिंक अनुभाग और एक शतरंज गेम स्टार्टर किट शामिल है।

http://www.chessbin.com

एडम बेरेंट


1

यह मूल रूप से आर्टिफिशियल इंटेलिजेंस (एआई) के क्षेत्र में है

शतरंज के खेल में कंप्यूटर "थिंक" बनाने का सबसे आम तरीका मिनी-मैक्स विधि का उपयोग करना है जहां कंप्यूटर "विचार" करता है ताकि वर्तमान स्थिति से समय से पहले अलग-अलग चाल बनाने से परिणामों का विश्लेषण किया जा सके।

विभिन्न चालों के परिणामों की "अच्छाई" को कई मानदंडों से निर्धारित किया जा सकता है जैसे कि स्कोर, बचे हुए दुश्मनों की संख्या, उदाहरण के लिए, जीतने वाला राज्य। उदाहरण के लिए, यदि आप खिलाड़ी को दाईं ओर ले जाते हैं और आप गेम जीतते हैं, तो यह बहुत अच्छी स्थिति है। लेकिन अगर आप इसे बाईं ओर ले जाते हैं तो आपको कुछ नहीं मिलता है। यह सही करने के लिए स्थानांतरित करने के लिए उचित है। यह फ़ंक्शन जो "अच्छाई" को परिभाषित करता है, आमतौर पर हेयुरिस्टिक फ़ंक्शन कहा जाता है

इस प्रक्रिया को कई मोड़ के लिए पुनरावर्ती किया जाता है। जितने अधिक मोड़ होंगे, उतने अधिक समय की आवश्यकता होगी। और घुमावों की संख्या जितनी अधिक होगी, उतना ही बुद्धिमान आपका सॉफ्टवेयर है। केवल एक बारी में आगे सोचने से केवल लालची चयन हो सकता है। इंटेलिजेंट चेस सॉफ्टवेयर में बहुत अधिक हेयुरिस्टिक फ़ंक्शन होते हैं और कई मोड़ों में आगे बढ़ते हैं।

ps। मिनी-मैक्स एल्गोरिथ्म के कुछ विवरण हैं जो मैंने यहां नहीं बताए लेकिन यह मूल विचार को कवर करना चाहिए।


1

मैं पॉल विक्स (ऊपर) के एक ही लीग में शामिल हो गया हूं, मैं भी अपने सीखने की खातिर एक शतरंज इंजन लिखना चाहता हूं, केवल बाधा मेरा दिन का काम है (जो उबाऊ वेब सेवाओं और सामान पर काम करना है ..) लेकिन इसके लायक दर्द।

मैंने इसे लेयर-बाय-लेयर एप्रोच का उपयोग करके बनाने का निर्णय लिया। मैं लगभग मल्टी-प्लेयर भाग यानी (HUMAN बनाम HUMAN) के साथ हूं।

एक बार जब मैं इसके साथ हो जाता हूं, तो मैं (COMPUTER बनाम HUMAN) प्लेइंग स्कीम का समर्थन करने के लिए AI लेयर को शामिल करना पसंद करूंगा। यह वह हिस्सा है जिसके बारे में मैं सबसे ज्यादा चिंतित हूं, मुझे इस थ्रेड में बहुत अच्छी मदद के टिप्स मिले हैं। आप सभी का बहुत बड़ा धन्यवाद।

वर्तमान में मैं जिस भाषा से अच्छी तरह वाकिफ हूं वह जावा है, यदि कोई प्रदर्शन हिट है तो मैं इसे C ++ में पोर्ट कर सकता हूं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.