2009-02-24 34 views
5

के लिए लिंक मैं that question पढ़ रहा था और मुझे Wikipedia list of algorithms की याद है। मुझे पता है कि विकिपीडिया में ओपन सोर्स गेम की एक सूची भी है, लेकिन जो मैं चाहता हूं वह सरल गेम एल्गोरिदम के लिए एक लिंक है, भले ही छद्म कोड में लिखा हो।सरल गेम एल्गोरिदम

के रूप में "सरल" खेल, मैं सुडोकू, Bejeweled, त्यागी, माइनस्वीपर, Labyrinth, सांप, गोरिल्ला, शतरंज, टेट्रिस, आदि जैसे खेल मतलब

सी # स्रोत कोड :)

+0

क्या आप इन खेलों को चलाने के लिए एआई एल्गोरिदम के बारे में बात कर रहे हैं? –

+0

यह बहुत व्यापक है। प्रति प्रश्न एक गेम के लिए एल्गोरिदम पर ध्यान केंद्रित करने पर विचार करें। –

उत्तर

7

अधिकांश गेम-प्लेइंग एल्गोरिदम बस खोज एल्गोरिदम हैं। वास्तव में, आप कह सकते हैं कि एआई खोज है।

सुडोकू के लिए, dancing links एक अच्छा एल्गोरिदम है। वैकल्पिक रूप से, यह very concisely in Prolog हल हो गया है।

शतरंज के लिए, Minimax से शुरू करें, फिर मिनिमैक्स with alpha-beta pruning का प्रयास करें।

Minesweeper is NP-complete। कोई ज्ञात विश्वसनीय और तेज़ एल्गोरिदम नहीं हैं।

+2

सामान्यीकृत माइन्सवीपर एनपी-पूर्ण हो सकता है, लेकिन सुडोकू [यातो और सेटा, 2002] और शतरंज अधिक जटिल (EXPTIME-पूर्ण) है। व्यावहारिक रूप से, सुडोकू की एनपी-पूर्णता का यह मतलब नहीं है कि वास्तव में उन समस्याओं के लिए विश्वसनीय और तेज़ एल्गोरिदम नहीं हैं जो वास्तव में हल करना चाहते हैं। –

+0

"वास्तव में, आप कह सकते हैं कि एआई खोज है" मुझे नहीं पता कि इसका मतलब क्या है। मुझे लगता है कि बयान गलत है। – Niyaz

+0

@Gareth: अच्छे अंक। सुडोकू और शतरंज के विपरीत, मैंने माइन्सवीपर खेलने के लिए एक प्रोग्राम लिखने की कोशिश नहीं की है। "सभी एआई _is_ खोज" के लिए –

0

घटना के लिए बोनस सोचा कि ऊपर वर्णित गेम सरल है, मुझे नहीं लगता कि उन खेलों के लिए एल्गोरिदम नहीं है। (वास्तव में कोई अपराध नहीं :))

1

आप Conway's Game of Life से अधिक सरल नहीं हो सकते हैं। केवल चार नियम हैं:

  1. कम से कम दो जीवित पड़ोसियों के साथ कोई भी लाइव सेल मर जाता है, जैसे अंडरपॉलेशन के कारण।
  2. तीन से अधिक जीवित पड़ोसियों के साथ कोई भी लाइव सेल मर जाता है, जैसे कि अतिसंवेदनशीलता से।
  3. दो या तीन जीवित पड़ोसियों के साथ कोई भी लाइव सेल अगली पीढ़ी के लिए अपरिवर्तित रहता है।
  4. वास्तव में तीन जीवित पड़ोसियों के साथ कोई मृत कोशिका एक लाइव सेल बन जाती है।

इसे किसी भी भाषा में आसानी से कार्यान्वित किया जा सकता है, zero players की आवश्यकता है, और कुछ रोचक पैटर्न पैदा करता है।

+0

वास्तव में दिलचस्प है! धन्यवाद! –

0

यहां सबसे खेल के लिए एल्गोरिथ्म है:

एक बार खेल आरंभ नहीं हो जाता ...

  1. स्वीकार उपयोगकर्ता इनपुट उपयोगकर्ता इनपुट के आधार पर
  2. अद्यतन खेल राज्य
  3. (दृश्य फ़ीडबैक प्रदान करें स्क्रीन अपडेट करें)
  4. स्कोर परिवर्तनों के लिए जांचें और आवश्यकतानुसार अपडेट करें
  5. "गेम ओ के लिए जांचें ver "और चरण 1 तक कूदें यदि गेम अभी तक
  6. उम ... यह इसके बारे में है।

उम्मीद है कि इससे मदद मिलती है।

2

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

1

खेल खेलने के लिए नहीं, बल्कि उनके भीतर अपेक्षाकृत जटिल कार्यों के लिए एल्गोरिदम के बारे में क्या है। उदाहरण के लिए, बेजवेलेड में आपके पास 7 रंगों में से एक में गहने से भरा 8x8 ग्रिड है। किसी भी समय, प्रत्येक रंग के लगभग 8 जवाहरात होते हैं। एक उपयोगकर्ता एक मैच बनाने के लिए एक गहने चलाता है, कम से कम तीन गहने (सभी एक ही रंग) स्क्रीन से गायब हो जाएंगे, और तीन नए स्क्रीन पर गिर जाएंगे। आप कैसे सुनिश्चित करते हैं कि स्क्रीन पर कम से कम एक मैच उपलब्ध है? आप कैसे सुनिश्चित करते हैं कि मैच स्क्रीन के चारों ओर दिखाई देने की संभावना है, न केवल शीर्ष पर?

+0

मेरे पास इस खेल के विकास के लिए हल करने के लिए यह समस्या है –

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