2010-05-27 37 views
6

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

+1

पेड़ के साथ कुछ भी करने के लिए जाना जाता है। –

+0

मेरे पहले जावा कार्यक्रमों में से एक (1 99 8 में) एक शतरंज खेल कार्यक्रम था, जिसमें लाप्लास नीचे उल्लिखित एक रिकर्सिव मिनीमैक्स एल्गोरिदम का उपयोग कर रहा था। जावा और रिकर्सन सीखने के लिए यह निश्चित रूप से एक दिलचस्प परियोजना है। – Jesper

+0

www.m-w.com का कहना है कि पुनर्संरचना वैध अंग्रेजी शब्द नहीं है। संपादित शीर्षक –

उत्तर

7

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

उदाहरण:

http://www.devshed.com/c/a/Practices/Solving-Problems-with-Recursion/6/

+0

मैं भी लगता है, वहाँ पुनरावर्ती minmax करने के लिए कोई विकल्प है –

+0

इसके अलावा उपयोगी इस लिंक अल्फा बीटा समझा है (यदि विचार एक KI विकसित करना है) http://www.fierz.ch/strategy1.htm –

+0

वाह, यह है एक महान लेख। ऐसा लगता है कि यह एक तरीका है जिसका प्रयोग अलग-अलग चरणों में अलग-अलग किया जाएगा। हो सकता है कि साथी के लिए एक संस्करण होगा, और किसी अन्य लक्ष्य के लिए एक संस्करण (उदाहरण के लिए, एक टुकड़ा कैप्चर करें), प्रत्येक गहराई से प्रत्येक। हमम ... मज़ा। – JDelage

1

गहराई-पहले खोज प्रत्यावर्तन के लिए एक प्रमुख उम्मीदवार हैं। इसलिए यदि आप होमवर्क असाइनमेंट के लिए एआई प्रोग्रामिंग कर रहे हैं, तो एआई के लुकहेड एल्गोरिदम को सर्वश्रेष्ठ कदम उठाने का प्रयास करने के लिए एक अच्छा उम्मीदवार होगा।

हालांकि सावधान रहें - आप स्मृति से जल्दी से बाहर निकल सकते हैं। आप शायद एआई देख सकते हैं कि गहरी चाल की संख्या सीमित करना चाहते हैं।

3

हां वहाँ है। यदि आपके पास कुछ फ़ंक्शन है जो खिलाड़ी सफेद के लिए कुछ स्थिति के "बल" का मूल्यांकन करता है। आप एक टुकड़े को स्थानांतरित कर सकते हैं और इसे एक चाल के मूल्य का मूल्यांकन करने के लिए रिकर्सली कॉल कर सकते हैं और सबसे अच्छा कदम चुन सकते हैं।

आप काले खिलाड़ी के लिए एक ही समारोह फोन करना चाहिए, अश्वेतों और गोरों के लिए भूमिकाओं का आदान प्रदान, इस प्रकार एक प्रतिद्वंद्वी के "खतरे" का मूल्यांकन।

फिर सफेद, आदि के लिए

बस इतना याद रखें कि आप प्रत्यावर्तन के स्तर में बहुत गहरा नहीं जाना चाहिए या इसे हमेशा के लिए ले जाएगा।

+0

धन्यवाद। मुझे बस प्रत्येक चाल के मूल्य के लिए एक अच्छा तर्क खोजने की जरूरत है। – JDelage

1
मन dynamic programming

, जैसा कि आप कई संयोजन है जो एक ही बोर्ड के लिए नेतृत्व है, तो आप आप एक प्रत्यावर्तन नहीं मिलती है तो सिर्फ एक जगह आप जहां तक ​​ले क्रम गणना

दोहरा से बचने के लिए ले जाता है कैश करने के लिए याद रखना चाहिए गया, बस उस कॉल को तोड़ दो। इसे backtracking

संबंधित मुद्दे