सवाल एक शतरंज इंजन को लागू करना कितना मुश्किल है? [बन्द है]


मैं सोच रहा हूं कि इसे लागू करना कितना मुश्किल होगा शतरंज इंजन। क्या पहले से ही खुले स्रोत कार्यान्वयन हैं?

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

क्या आपको लगता है कि ए के दायरे में है मशीन लर्निंग स्नातक छात्र प्रोजेक्ट - मानते हैं कि एक ओपन-सोर्स कार्यान्वयन था जो छात्र उपयोग कर सकते थे, जो मूलभूत चीजें करता है जैसे किसी दिए गए आंकड़े के लिए अगली संभावित चालें लौटाना? शायद बहुत मुश्किल है?

शतरंज इंजन पर विभिन्न टीमों के काम करने के लिए यह एक मजेदार परियोजना होगी और फिर उन्हें एक-दूसरे के खिलाफ खेलने दें ...


44
2017-07-18 22:15


मूल


सारे सवालों के जवाब देने के लिए धन्यवाद। एक और पहलू पिछले खेलों का एक शतरंज डेटाबेस है। एक बड़ा इस्तेमाल किया जाता है chessgames.com, लेकिन क्या मुफ्त में उपयोग के लिए कोई उपलब्ध है? साथ ही, आदर्श रूप से खेल की आय के रूप में खेलने के प्रतिद्वंद्वी के तरीके को सीखना चाहते हैं, ताकि उसकी अगली चालों की बेहतर भविष्यवाणी हो सके। - Frank
Www.chessbin.com पर एक नज़र डालें, यह आपको भिखारी से शतरंज इंजन के कार्यान्वयन के माध्यम से ले जाता है। यह एक शतरंज खेल स्टार्टर किट भी प्रदान करता है। - Adam Berent
मैं कोड-गोल्फ गंध करता हूँ। - mob


जवाब:


मैंने पिछले साल सी # में अपना खुद का शतरंज इंजन बनाया है। यह सब मुश्किल नहीं था। मेरे काम के दौरान मैंने गलतियां की हैं, मैंने पाया है कि इंटरनेट पर जानकारी स्पष्ट रूप से प्रस्तुत नहीं की गई थी, और इसमें से अधिकांश को अन्य साइटों से कॉपी किया गया था।

इस प्रक्रिया के माध्यम से किसी और के लिए जीवन आसान बनाने के लिए, मैं अपने शतरंज इंजन के विकास को दस्तावेज कर रहा हूं और अपने ब्लॉग पर अधिकतर स्रोत कोड पोस्ट कर रहा हूं:

http://www.chessbin.com

मैंने भी एक बनाया है शतरंज खेल विकास किट जो आपको अपने स्वयं के शतरंज इंजन के विकास में शुरू कर देगा, जिसमें निम्न शामिल हैं:

  1. एक शतरंज बोर्ड और शतरंज के टुकड़े का प्रतिनिधित्व करने के लिए आवश्यक सभी कोड
  2. शतरंज टुकड़ा आंदोलन मान्य करने से संबंधित कोड
  3. ग्राफिकल यूजर इंटरफेस जो शतरंज की स्थिति प्रदर्शित करता है और आपको बोर्ड के चारों ओर टुकड़े स्थानांतरित करने की अनुमति देता है

मेरी साइट मूल रूप से आपके जैसे लोगों के लिए समर्पित है; वे लोग जो अपने शतरंज इंजन के निर्माण पर शुरू करना चाहते हैं।


53
2017-07-23 12:38



मान्य *, मुझे लगता है - ajax333221


हां, यह निश्चित रूप से एक छात्र परियोजना के दायरे में है। शुरू करने के लिए मेरे संग्रह से कुछ लिंक यहां दिए गए हैं:


33
2017-08-05 12:31



मैं सिर्फ यह ध्यान रखना चाहता था कि घुमावदार बिटकबोर्ड अब जाने का पसंदीदा तरीका नहीं हैं। घुमावदार बिटबोर्ड का उपयोग कर रहे अधिकांश प्रोग्रामर अब मैजिक बिटबोर्ड नामक तकनीक का उपयोग कर रहे हैं (chessprogramming.wikispaces.com/Magic+Bitboards)। - Mathieu Pagé
धन्यवाद, मैथ्यू - मैं इस तकनीक की आगे जांच करूंगा। - RoadWarrior
मेरा नया सी # शतरंज इंजन जादू बिटबोर्ड का उपयोग करता है। वे बहुत तेज़ हैं, लेकिन शुरुआत में उनके सिर को लपेटना मुश्किल है (घुमावदार बिटरबोर्ड भी बदतर हैं)। - RoadWarrior
'यह एमटीडी का एक अच्छा विश्लेषण है, एक परिष्कृत खोज एल्गोरिदम।' लगता है कि लिंक समाप्त हो गया है। एमटीडी (एफ) की जांच करने वाला एक पेपर यहां दिया गया है: people.csail.mit.edu/plaat/mtdf.html - bytefire


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

शैक्षणिक उद्देश्यों के लिए मैं एक नज़र डालने की सिफारिश करता हूं एडम Berents साइट जहां उन्होंने उस प्रक्रिया को वर्णित किया जब उन्होंने सी # में एक शतरंज इंजन लागू किया। स्रोत कोड भी निश्चित रूप से उपलब्ध है। मेरी राय में, यह शुरू करने के लिए एक उत्कृष्ट बिंदु है।


8
2017-07-18 22:31



एडम बेरेंट ने खुद इस सवाल का जवाब दिया है और उसका जवाब निश्चित रूप से जांचने लायक है। - Stefan Thyberg


मैं आपके प्रश्न का उत्तर नहीं दे सकता, लेकिन मैं आपकी अंतिम टिप्पणी का उत्तर दे सकता हूं

"यह एक मजेदार परियोजना होगी   शतरंज इंजन पर विभिन्न टीम काम करते हैं   और फिर उन्हें प्रत्येक के खिलाफ खेलते हैं   अन्य ... "

यह पहले से ही किया जा चुका है एफआईसीएस शतरंज सर्वर। मेरा सुझाव है कि आप वहां लॉगिन करें (टेलनेट की ज़रूरत है) और दस्तावेज़ीकरण की जांच भी करें, आप शायद उन लोगों के संपर्क में रह सकेंगे जो आपको अपने शतरंज पर विशिष्ट संकेत देने में सक्षम हैं


7
2017-07-18 22:27





आधुनिक पीसी पर एक उचित शतरंज इंजन निश्चित रूप से करने योग्य है, विशेष रूप से यदि आप याद रखने के लिए पुरानी हैं कि कई शतरंज कार्यक्रम थे जो 1 और 2 मेगाहर्ट्ज 8-बिट मशीनों पर केवल कुछ के मेमोरी का उपयोग करते थे जो बहुत अच्छी तरह से खेल सकते थे। आप आजकल एक व्याख्या की गई भाषा में एक शतरंज इंजन को चाबुक कर सकते हैं और पैंट को शीर्ष 6502 या Z80 प्रोग्रामर से अपने सबसे तेज़ सबसे तेज़ सामान कोडिंग कर सकते हैं।

मुझे डैन स्पैक्लेन के साथ काम करना पड़ा, जिसने मूल किया था Sargon 1 9 78 में अपनी पत्नी कैथलीन के साथ। कैथलीन के भाई ने ऐप्पल द्वितीय को बंदरगाह किया, और मैंने उसके साथ और उसके बेटे के साथ काम किया। (उस समय मैंने इन लोगों के साथ काम किया था, शतरंज के लिए उपभोक्ता-लाभ व्यवसाय किया गया था। मुझे एक ऐसे व्यक्ति को याद है जो अटारी एसटी और अमिगा शतरंज के खेल लाए और उस समय तक उनके लिए वास्तव में ज्यादा बाजार नहीं था।)

"कंप्यूटर गेमशिप"शतरंज प्रोग्रामिंग के लिए एक शानदार परिचय है क्योंकि शौकियों ने इसे 1 9 83 में प्रदर्शन किया था। यह अभी भी पढ़ने में खुशी है। अच्छी सामग्री को कवर करता है: अल्फा-बीटा, मिनीमैक्स इत्यादि।

यह एक अच्छी किताब है जिसे आप वहां से शुरू कर सकते हैं और उसके बाद से किए गए अग्रिमों के बारे में जानें।

alt text http://g-ecx.images-amazon.com/images/G/01/ciu/a9/01/ef2de893e7a081414e106110.L._AA240_.jpg


5
2017-07-19 02:59





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

और हां ओपन सोर्स वाले हैं, प्रमुख दावेदार हैं जीएनयू शतरंज, जो बहुत सम्मानित है।


4
2017-07-18 22:18



craftychess.com वहाँ भी है - ephemient
दुर्भाग्यवश, जीएनयू शतरंज अब नेताओं के पीछे बहुत दूर है। - SmallChess


प्रत्येक वर्ष मेरे विश्वविद्यालय में, एआई कोर्स (तीसरे वर्ष के पाठ्यक्रम) के परिचय के लिए छात्रों को एक पेपर के साथ खरोंच से शतरंज कार्यक्रम बनाने की आवश्यकता होती है, और हमने व्याख्यान में प्रतिकूल खोज के बारे में एक अध्याय शामिल किया ताकि विद्यार्थियों को ऐसा करने के लिए पर्याप्त ज्ञान हो। हमारे लिए, परियोजना या तो हमारे या किसी अन्य के साथ की जा सकती है (स्पष्ट रूप से एक साथी के साथ किए जाने वाले बेहतर कार्यक्रम की अपेक्षा करना, जैसे कि गहरी पाली, इत्यादि)। चूंकि कंप्यूटर ग्राफिक्स कोर्स भी एक तीसरा वर्ष कोर्स है, इसलिए छात्रों को एआई पाठ्यक्रम की अंतिम परियोजना के साथ अंतिम परियोजना को गठबंधन करने की अनुमति है।

चूंकि मैं अपने तीसरे वर्ष में होता हूं और दोनों पाठ्यक्रम (जो अब पहले सेमेस्टर के साथ समाप्त हो चुका है) ले रहा हूं, मैंने एक ऐसे दोस्त के साथ मिलकर काम किया जो दोनों पाठ्यक्रमों में भी है और हम अपने अंत के बाद से इस कार्यक्रम पर काम कर रहे हैं परीक्षाएं (जो 21 दिसंबर के आसपास थी) और यह 11 जनवरी को देय है।

यह एक महीने के भीतर पूरी तरह से करने योग्य है (विशेष रूप से स्नातक परियोजना के रूप में)। हम एक 3 डी शतरंज कार्यक्रम बना रहे हैं इस प्रकार इसे पाठ्यक्रम के शतरंज इंजन की तुलना में अधिक काम की आवश्यकता है। सबसे कठिन भाग बोर्ड के प्रतिनिधित्व पर निर्णय लेते हैं, सभी नियमों (एन पासेंट, कास्टिंग, प्रमोशन इत्यादि) को लागू करते हैं, एक ह्युरिस्टिक फ़ंक्शन बनाते हैं, और गेम पेड़ (जो आमतौर पर अल्फा-बीटा छंटनी के साथ किया जाता है)।

यहां वह साइट है जिसका हम दस्तावेज़ प्रगति के लिए उपयोग कर रहे हैं, और बाद में कोड और पेपर को होस्ट करने के बाद होस्ट करें (यह अभी थोड़ा खाली है)। http://sites.google.com/site/chessatbrock/


2
2018-01-03 02:41