क्या कोई शतरंज गेम एपीआई है, जो पूरी तरह जावास्क्रिप्ट में लिखी गई है? कोई फ्लैश नहीं! कोई भी शतरंज के खेल में उपयोग किए जाने वाले एल्गोरिदम (सामान्य रूप से) को जानता है?जावास्क्रिप्ट में शतरंज खेल
उत्तर
कैसे एक शतरंज एल्गोरिथ्म काम ?:
क्या एक शतरंज कंप्यूटर करने की कोशिश करता बोर्ड द्वारा स्थिति पेड़ भविष्य में पाँच या 10 या 20 चालों उत्पन्न है। मानते हैं कि लगभग 20 किसी भी बोर्ड की स्थिति के लिए संभावित चाल, पांच-स्तर के पेड़ में 3,200,000 बोर्ड स्थितियां हैं। एक 10-स्तरीय पेड़ में लगभग 10,000,000,000,000 (10 ट्रिलियन) स्थितियां हैं। पेड़ की गहराई जो कंप्यूटर गणना कर सकती है कंप्यूटर खेल की गति से नियंत्रित है। सबसे तेज़ शतरंज कंप्यूटर उत्पन्न कर सकते हैं और प्रति सेकंड लाखों बोर्ड स्थितियों का मूल्यांकन प्रति सेकंड।
एक बार यह पेड़ उत्पन्न करता है, तो कंप्यूटर को बोर्ड पदों का मूल्यांकन करने की आवश्यकता होती है। " यही है, कंप्यूटर पर बोर्ड पर टुकड़े देखने के लिए तय करता है कि टुकड़े की व्यवस्था "अच्छा" या "खराब" है। जिस तरह से यह मूल्यांकन फ़ंक्शन का उपयोग करके करता है। सबसे आसान संभव फ़ंक्शन प्रत्येक पक्ष के टुकड़ों की संख्या की गणना कर सकता है। कंप्यूटर सफेद खेल रहा है और एक कुछ बोर्ड स्थिति 11 सफेद टुकड़े और नौ काला टुकड़े है, तो सरल मूल्यांकन कार्य हो सकता है:
11 - 9 = 2
जाहिर है, शतरंज के लिए सूत्र भी आसान तरीका है कि, क्योंकि कुछ टुकड़े दूसरों की तुलना में अधिक मूल्यवान हैं। तो सूत्र प्रत्येक टुकड़े के प्रकार पर एक वजन लागू कर सकता है। प्रोग्रामर इसके बारे में सोचता है के रूप में, वह या वह मूल्यांकन कार्य अधिक से अधिक बोर्ड की स्थिति, केंद्र के नियंत्रण, राजा के भेद्यता की जांच करने के विरोधी की रानी की दुर्बलताओं को तरह बातें जोड़ने से जटिल बना देता है और कई अन्य पैरामीटर। फ़ंक्शन फ़ंक्शन कितना जटिल हो जाता है, हालांकि, यह पर एक एकल संख्या से घिरा हुआ है जो उस बोर्ड स्थिति की "भलाई" का प्रतिनिधित्व करता है।
अपनी खुद जावास्क्रिप्ट 'इंजन' एक बुनियादी स्तर की जांच Step by Step Javascript Chess with CPU oppo
पर शतरंज खेलने के लिए आप नीचे स्क्रॉल यह इस के स्रोत कोड शामिल है, तो सक्षम है कि निर्माण के लिए, बहुत ही सीमित कहना होगा, शतरंज इंजन विशुद्ध रूप से जावास्क्रिप्ट के आधार पर । इसमें अपने स्वयं के निर्माण के लिए प्रयास करने और सभी आवश्यक संसाधनों के लिए गेम का एक वर्किंग वर्जन भी है।
कुछ उपयोगी संसाधन:
- First implementation of a chess engine in Javascript
- The Anatomy of Chess Programs, टोनी Marsland से, कैसे वर्तमान शतरंज कार्यक्रमों काम पर एक अच्छा परिचय है।
- Chess Space
- Paul Verhelst - प्रश्न और जवाब
- Bibliography on Minimax Algorithms (newer version)।
- Crafty एक मजबूत प्रोग्राम है जिसका स्रोत कोड स्वतंत्र रूप से उपलब्ध है और, शतरंज कार्यक्रम के लिए, काफी पठनीय है।
- Unfinished Work and Challenges to Chess Programmers
- Is there a perfect algorithm for Chess? तो
- How Computers Play Chess सबसे अच्छा किताब मैं शतरंज ऐ एल्गोरिदम
Computer Chess Blog के पीछे सिद्धांत का वर्णन पाया है पर यहां चर्चा एक सी # शतरंज इंजन के निर्माण के दर्ज होते हैं। यह जावास्क्रिप्ट नहीं है लेकिन वाक्यविन्यास इतना समान है कि आपको विभिन्न शतरंज इंजन घटकों की अच्छी समझ हो सकती है।
यदि आप अपने शतरंज इंजन को वेब सक्षम करना चाहते हैं तो भी आप सिल्वरलाइट जीयूआई के साथ सी # का उपयोग करने पर विचार करना चाहेंगे। आपको जावास्क्रिप्ट के मुकाबले .NET से बेहतर प्रदर्शन मिलेगा। जैसा कि आप सीखेंगे, यह एक मजबूत (गहरी खोज) शतरंज कार्यक्रम में अनुवाद करेगा। सिल्वरलाइट शतरंज का एक अच्छा उदाहरण GeeksWithChess.com
एल्गोरिदमिक चर्चा के लिए, Chess Programming Wiki पर आज़माएं।
गंभीर शतरंज इंजन के लिए उपयुक्त तकनीकें वेब आधारित गेम के लिए जरूरी नहीं हैं। असली शतरंज इंजन बहु-मेगाबाइट खोलने वाली किताबों का उपयोग करके और प्रत्येक मोड़ पर मिनट या घंटे खर्च करते हुए तीव्रता के आदेश चलाते हैं। एक वास्तविक शतरंज इंजन 12 प्ली से गहराई से खोज करेगा, जबकि जावास्क्रिप्ट उचित वेब समय में 6 पाली से अधिक नहीं मिलेगा। इसलिए piece-square oracle की तरह कुछ, जो खोज के रूप में कम हो रहा है और संभावित रूप से ऋणात्मक रिटर्न है और परिणामस्वरूप शतरंज प्रोग्रामिंग सर्कल में फैशन से बाहर है, तर्कसंगत रूप से जावास्क्रिप्ट इंजन के लिए उपयुक्त है। यदि आप 80 के दशक में लोग क्या कर रहे थे, तो आप एक चंचल और प्रबंधनीय इंजन के साथ समाप्त हो जाएंगे जो अधिकांश आगंतुकों को हरा देगा।
और निश्चित रूप से आप वास्तव में देखना चाहते हैं कि अन्य लोग क्या कर रहे हैं। बस सुनिश्चित करें कि आपके पास alpha-beta search की कुछ भिन्नता है, फिर अपने मूल्यांकन फ़ंक्शन और अन्य सभी चीज़ों को ट्विक करें जैसा आप फिट देखते हैं।
2002 और 2012 में मैंने लिखा था कि p4wn, एक छोटा सार्वजनिक डोमेन जावास्क्रिप्ट इंजन फिर से लिखता है। यह अल्फा-बीटा और एक टुकड़ा-वर्ग ऑरैकल का उपयोग करता है। यह शायद Garbochess-JS से कमजोर है, लेकिन फिर गारबोचेस की एक उद्घाटन पुस्तक है जो पूरे p4wn इंजन को बड़ा है। :
- 1. नि: शुल्क जावास्क्रिप्ट शतरंज
- 2. शतरंज
- 3. एक शतरंज एआई
- 4. खेल खेल केंद्र
- 5. शतरंज स्थान सत्यापन पुस्तकालय
- 6. खेल
- 7. खेल
- 8. खेल
- 9. शतरंज प्रोग्रामिंग में रिकर्सन का अच्छा उपयोग?
- 10. खेल में बयान HQL
- 11. सरल शतरंज कार्यक्रम (टीएससीपी) से फ़ैले इतनी तेज क्यों है? (शतरंज इंजन अनुकूलन)
- 12. शतरंज प्रोग्रामिंग (कोई एआई) - मान्यता
- 13. खेल विकास
- 14. जावा खेल
- 15. लेजर खेल
- 16. खेल केंद्र
- 17. खेल नियंत्रण
- 18. पहेली खेल में पैटर्न ढूंढना
- 19. खेल एक्सएमएल फाइलों में तर्क
- 20. रेंडर में Libgdx खेल तर्क?
- 21. खेल केंद्र
- 22. शतरंज स्टेलेमेट नियम को कैसे कोड करें?
- 23. एमएस रिसर्च शतरंज के लिए वैकल्पिक?
- 24. ए सी ++ आधारित वेरिएंट शतरंज इंजन डिजाइन प्रश्न
- 25. मुझे क्लोजर में शतरंज बिटबोर्ड का प्रतिनिधित्व कैसे करना चाहिए?
- 26. ग्राफ एल्गोरिदम शतरंज से जुड़े: के चालों में संभावित पथ
- 27. खेल यूआई एचयूडी
- 28. त्रिकोणमिति और खेल विकास
- 29. उड़ान खेल एआई एल्गोरिदम?
- 30. फ़्लैश खेल बॉट बनाना
एक अच्छा कोड गोल्फ सवाल (एक छोटी कार्यान्वयन के लिए) –
http://javascript.internet.com/games/javascript-chess-with-cpu-oppo.html –
एक आश्चर्यजनक छोटे कार्यान्वयन (1KB) हो सकता है http://js1k.com/2010-first/demo/435 – Christophe