2012-07-28 15 views
5

में एक दूसरे के खिलाफ कुछ कार्ड गेम रणनीति का परीक्षण करना चाहते हैं, तो मेरा लक्ष्य यह जानना है कि चुड़ैल रणनीति असली लाइव में बेहतर होगी। ऐसा करने के लिए मैंने सिमुलेशन किया, लेकिन मुझे नहीं पता कि मैंने अच्छा किया है या नहीं। तो मैं जानना चाहता हूं कि एक अच्छा सिमुलेशन कैसे बनाया जाए।कार्ड गेम टोपेन

आप वास्तविक जीवन में दबाए गए हर कारक का अनुकरण नहीं कर सकते हैं, उदाहरण के लिए ब्लफिंग। ऐसे कुछ कारक भी हैं जिन्हें खत्म किया जा सकता है, मैंने जितना संभव हो उतना समाप्त कर दिया। ब्लैफिंग की तरह छोड़े गए कारक, दायरे से बाहर हैं। उनको अनुकरण करना असंभव है।

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

यह प्रश्न "ईश्वर रणनीति" बनाने के बारे में नहीं है, लेकिन यह अच्छा सिमुलेशन सॉफ़्टवेयर लिखने के बारे में है जिसका उपयोग कार्ड गेम के लिए अनुकरण करने के लिए किया जा सकता है। तो मैं जानना चाहता हूं कि आप एक अच्छा सिमुलेशन कैसे बना सकते हैं:

  • मुझे साथ लेने की क्या ज़रूरत है?
  • आप कैसे जानते हैं कि आपका सिमुलेशन एक अच्छा सिमुलेशन है?
  • मुझे परिस्थितियों को कैसे संसाधित करना चाहिए? उदाहरण के लिए कुछ यादृच्छिक हाथ उत्पन्न करें, या सभी संभावनाओं को आजमाएं।
+0

क्या आप शायद अपने प्रश्न को एक और सामान्य दृष्टिकोण पर फिर से लिख सकते हैं? मैं इस बारे में और जानना चाहता हूं कि आप एक अच्छा सिमुलेशन कैसे बना सकते हैं। – Dagob

उत्तर

4

अपने तीन प्रश्नों के उत्तर:

  1. कारक एक साथ चिपके हुए कार्ड और विभिन्न फेरबदल तकनीक वास्तव में कोई फर्क नहीं होना चाहिए की तरह। मुझे लगता है कि आप कार्ड के क्रम को यादृच्छिक बनाने के लिए एक छद्म यादृच्छिक शोर स्रोत (जैसे रैंड()) का उपयोग कर शफलिंग मॉडल करेंगे। अधिकतर शफल तकनीकें शायद इतनी अच्छी हैं कि यह आपके उद्देश्यों के लिए एक बिल्कुल पर्याप्त मॉडल है।

  2. मुझे यह जानने के लिए पर्याप्त रूप से पर्याप्त जानकारी नहीं है कि रणनीतियों का वर्णन कैसे किया जा सकता है। आपके द्वारा वर्णित परीक्षण का जवाब उस प्रश्न का उत्तर देना चाहिए कि जब वे सिर-टू-हेड जाते हैं तो उन रणनीतियों में से कौन सी रणनीति जीत जाएगी। यदि वे केवल दो रणनीतियों हैं, और वे काफी सरल हैं कि उन्हें पूरी तरह लागू किया जा सकता है, तो हाँ, आपका परीक्षण आपको बताएगा कि कौन सा बेहतर है। यदि यह गेम इस तरह के अधिकांश खेलों की तरह है और इसमें कई अलग-अलग रणनीतियों और सूक्ष्मताएं शामिल हैं, तो यह जानना कि इनमें से कौन सी रणनीतियां जीतेंगी, जब दोनों सिर-टू-हेड जाएंगे, तो शायद आपको यह नहीं बताएगा कि वास्तव में कौन सी बेहतर रणनीति है।

  3. मैंने मूल रूप से आपके दूसरे प्रश्न के उत्तर में इसे कवर किया है, लेकिन यदि आपने रणनीति को 100% सही ढंग से प्रोग्राम किया है, तो बॉट फेस-ऑफ के परिणाम उपयोगी होंगे कि वे आपको बताएंगे कि उनमें से कौन सा जब वे सिर-टू-हेड जाते हैं तो रणनीतियों को अधिक बार जीतना होगा। मुझे लगता है कि इस तरह के अधिकांश खेलों में, हालांकि, अकेले आपको यह नहीं बताता कि रणनीति पूरी तरह से कितनी अच्छी है। दोबारा, मुझे निश्चित रूप से कहने के लिए इस खेल के बारे में पर्याप्त जानकारी नहीं है, लेकिन यदि गेम में कई संभावित रणनीतियों को शामिल किया गया है, तो परीक्षण शायद आपको इतना उपयोगी नहीं बताएगा कि यह बहुत उपयोगी है।

2

आप इस तरह के सिमुलेशन का उपयोग करके कुछ साबित नहीं कर सकते हैं। आप वास्तव में झुकाव कर रहे हैं कि सिमुलेशन ए बी से बेहतर है, लेकिन असली दुनिया में या अन्य रणनीतियों के खिलाफ वे कैसे काम करेंगे।

आप कुछ सामान्य विचार प्राप्त कर सकते हैं कि बेहतर या बुरा क्या काम कर सकता है, लेकिन यह इसके बारे में है।

+2

आप इसे भी नहीं जानते हैं। यदि आपके पास सिमुलेशन ए बनाम सिमुलेशन बी के साथ एक रन है, तो आप केवल एक ही समय में सिमुलेशन ए जीत चुके हैं। यह हो सकता है, क्योंकि सिमुलेशन ए बेहतर है या बस दुर्घटना से है। वे रन [गैर-निर्धारिती] हैं (http://en.wikipedia.org/wiki/Deterministic_algorithm#What_makes_algorithms_non-deterministic.3F)। आपको उन्हें दोहराना होगा और कुछ आंकड़े करना होगा। –

1

मेरा उत्तर शोध पर आधारित नहीं है, इस तरह मैं एक छोटे से दायरे में रणनीति को अनुकरण करने के बारे में सोचता हूं।

यह कैसे मैं अपने अनुकरण किया जाता है:

पहली बात यह है कि आप क्या करना है सुनिश्चित करें कि आप रणनीति है कि आप तुलना करना चाहते हैं लागू कर सकते हैं बनाने की जरूरत है। यदि कोई रास्ता नहीं है तो आप उन्हें प्रोग्राम कर सकते हैं, तो कोई तरीका नहीं है कि आप उन्हें स्वयं परीक्षण कर सकें।

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

पता लगाएं कि आप रणनीति की तुलना कैसे करना चाहते हैं। क्या आप जानना चाहते हैं कि आपको कितना% परिवर्तन जीतना है? या आप किसी अन्य कारण से कुछ यादृच्छिक खेल करना चाहते हैं?

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

सभी रणनीतियों को लागू करें, और जितना संभव हो सके का उपयोग करें। इस तरह आप मूल कार्यों का स्वचालित रूप से परीक्षण कर रहे हैं। इस दृष्टिकोण के साथ आप जल्द ही किया जा सकता है और आपको वह बग मिलेगी जो आप कभी नहीं पाएंगे।

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

0

अपने अधिक जानकारी के में अनुरोध कर आप से पूछना:

क्या महत्वपूर्ण है?

आप एक अच्छा सिमुलेशन कैसे बना सकते हैं?

आप कैसे जानते हैं कि यह वास्तविक वास्तविक स्थिति में प्रासंगिक है।

पहले प्रश्न का उत्तर केवल गेम में विशेषज्ञ द्वारा उत्तर दिया जा सकता है; एआई बनाना एक आसान काम नहीं है और महान एआई बनाने के लिए आपको खेल में सभी रणनीतियों को जानने की जरूरत है और आपको उन रणनीतियों को प्रोग्राम करने की आवश्यकता है।फिर आपको या तो उन रणनीतियों का उपयोग करने के बारे में जानने की आवश्यकता है या जो आप निर्धारित करने की कोशिश कर रहे हैं उसके मामले में सभी संयोजनों के माध्यम से कंप्यूटर चक्र है।

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

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

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

+0

लेकिन फिर आप ब्लफिंग कैसे लागू करेंगे? आप कुछ प्रकार के ब्लफिंग कर सकते हैं, लेकिन इतने सारे कारण हैं कि कोई निश्चित स्थिति में क्यों फंस जाएगा। इसके अलावा, वास्तविक जीवन में कई अन्य कारण हैं जो आप ब्लफ करेंगे। उदाहरण के लिए: जब वह "झूठ बोल रहा है" तो वह कुछ कर सकता है। मुझे पता है कि एक बहुत अच्छी बोड को "ब्लफिंग कार्यान्वयन" की आवश्यकता है। लेकिन जब आप वास्तव में इसे लागू करना चाहते हैं, तो आपके पास एक अच्छा कार्यान्वयन करने के लिए बहुत काम होगा। मुझे लगता है कि आपको एक खेल शैली का पता लगाने के लिए ब्लफिंग के बारे में एक लंबा अध्ययन करने की जरूरत है। – Laurence

+0

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

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