हैलो मैं एक यादृच्छिक pacman भूलभुलैया उत्पन्न करने के लिए एक एल्गोरिदम पर काम कर रहा है। मैंने कुछ लेख देखे हैं लेकिन तर्क को तोड़ नहीं सकते। मैं भूलभुलैया एल्गोरिदम गहराई पहली खोज का उपयोग कर रहा हूं और फिर मैं प्रत्येक भूलभुलैया सममित बनाने के लिए भूलभुलैया दर्पण करता हूं। मैं मृत सिरों की सफाई जैसे मुद्दों में भाग रहा हूं। यदि यह संभव नहीं है तो मैं यादृच्छिक भूलभुलैया उत्पन्न करने के लिए किसी का अपना तर्क होने पर भी एक और एल्गोरिदम का प्रयास करूंगा। किसी भी मदद की सराहना की है। धन्यवादएक यादृच्छिक pacman भूलभुलैया कैसे बनाएँ
उत्तर
मैं स्वच्छ क्षेत्र (किसी भी दीवार के बिना, 0 के एन * एन मैट्रिक्स में) में डीएफएस द्वारा यादृच्छिक चलने की पेशकश करता हूं, उसके बाद उन क्षेत्रों को भरें जो यादृच्छिक चलने से ढके नहीं हैं (उन्हें दीवार), यह भी अप्रयुक्त रिक्त स्थान का कारण बन सकता है, लेकिन यह गारंटी लंबे समय तक चलने की गारंटी देती है। आप मनमाने ढंग से चलने का आकार निर्धारित कर सकते हैं (उदाहरण के लिए जब आपका चलने का आकार (एन^2)/2 तक पहुंचा, तो आप चलना बंद कर सकते हैं)।
मैंने अपनी समस्या हल की और साझा करना चाहता था। स्टार्टर्स के लिए मैंने शीर्ष पंक्ति और पहला कॉलम और आखिरी कॉलम को दीवार बाधा के रूप में सेट किया है, फिर मैंने दूसरे कॉलम पर एक पथ सेट किया है, दूसरी पंक्ति और दूसरी पंक्ति के लिए दूसरा सेट है ताकि यह बाहरी दीवार से घिरा हो। यह भी ध्यान रखें कि मैं केवल भूलभुलैया का 50% बना रहा हूं, इसलिए जब मैं करूँगा तो मैं भूलभुलैया की प्रतिलिपि बनाउंगा ताकि दोनों पक्ष बराबर हों। तब मैंने उस क्षेत्र के लिए एक दीवार से घिरा एक मध्य खंड बनाया जहां भूत पैदा हुए थे। फिर भूलभुलैया का कोई भी हिस्सा जिस पर मैंने देखा नहीं है, मैंने पहले खोज एल्गोरिदम गहराई का उपयोग करके पथ उत्पन्न किए हैं। ऐसा करने के बाद मुझे पता है कि एक पॅकमैन भूलभुलैया में कोई मृत सिरों नहीं हैं। मैंने जो किया वह हर सेल की जांच करता था जो पैकमैन यात्रा कर सकते हैं। यदि किसी भी सेल में केवल 1 सीमावर्ती सेल है तो यह एक मृत अंत है। यदि यह एक मृत अंत है तो देखें कि क्या यह किसी अन्य पथ से जुड़ा जा सकता है। यदि दीवार के रूप में मृत अंत को सेट न करें और किसी भी मृत सिरे के लिए फिर से भूलभुलैया की जांच करें। इन चरणों का पालन करने के बाद आपके पास एक यादृच्छिक भूलभुलैया होगी जिसमें सामान्य पॅकमैन भूलभुलैया जैसा कोई मृत अंत नहीं होगा।
मैंने बहुत समय पहले सी = 64 पर एक यादृच्छिक PacMan भूलभुलैया जनरेटर बनाया था, जो गहराई से पहले और मृत अंत के उन्मूलन का उपयोग कर रहा था, लेकिन हाल ही में मेरे दोस्त ने इसे फिर से करने के लिए चुनौती दी। एक बेहतर तरीका मिला। इसे my site
अनिवार्य रूप से, मैंने प्रत्येक दिशा के साथ कमरे का ग्रिड बनाया है जिसमें खुली दरवाजा है (सुरंग पर छोड़कर सीमा पर बंद), फिर नियम के अनुसार यादृच्छिक रूप से दरवाजे बंद करना शुरू करें कि वहां कभी नहीं होना चाहिए 2 दरवाजे बंद होने पर एक आसन्न कमरे में 1 से अधिक बंद दरवाजे बनें, तीसरा व्यक्ति मृत अंत का निर्माण करेगा। बस इसे यादृच्छिक रूप से तब तक जारी रखें जब तक कि सभी संभावित दरवाजे या तो नियम द्वारा बंद या खुले न हों।
मिररिंग में कुछ अधिक परिश्रम था, लेकिन मैं मूल बातें के साथ शुरू किया और बस मिरर, भूत घर स्थान, न्यूनतम दीवार की लंबाई (कोई भी घिरी सर्कल) और अधिकतम दीवार की लंबाई, आदि के लिए अनुमति देने के लिए नियमों को बनाया ...
स्पष्ट रूप से, आपने एक अलग उपयोगकर्ता खाते का उपयोग करके अपना उत्तर अपडेट करने का प्रयास किया, और [सुझाए गए संपादन] (http: // stackoverflow। कॉम/समीक्षा/सुझाए गए संपादन/1287465) को खारिज कर दिया गया था। अपने मूल खाते का उपयोग क्यों नहीं कर रहे हैं? – bfavaretto
लिंक अब मर चुका है – Valdrinit
- 1. Pacman भूत ऐ
- 2. जावा में पॅकमैन भूलभुलैया
- 3. भूलभुलैया C++
- 4. एक अग्रभूमि कार्य कैसे बनाएँ?
- 5. इष्टतम मल्टीप्लेयर भूलभुलैया पीढ़ी एल्गोरिथ्म
- 6. एक सच्चे यादृच्छिक
- 7. एक obfuscated जार फ़ाइल कैसे बनाएँ?
- 8. एक Iterable/संग्रह से TreeMultimap कैसे बनाएँ?
- 9. एक गतिविधि पर 2 MapView कैसे बनाएँ?
- 10. एक द्रव ऊंचाई div कैसे बनाएँ?
- 11. एक बड़ा सा क्षेत्र बनाएँ?
- 12. जावा रिकर्सन समस्या के साथ एक भूलभुलैया को हल करना
- 13. जावास्क्रिप्ट में -100 और 100 के बीच एक यादृच्छिक संख्या बनाएँ?
- 14. डेटा संरचना एक भूलभुलैया का प्रतिनिधित्व करने के लिए
- 15. एक भूलभुलैया से चूहा प्राप्त कर रहा है
- 16. एक यादृच्छिक दुनिया के लिए डेटा संरचना
- 17. एक गतिशील Pinterest बटन बनाएँ?
- 18. जावा में एक GUID बनाएँ
- 19. xaml में एक शब्दकोश बनाएँ?
- 20. ड्राइवर से एक प्रक्रिया बनाएँ
- 21. एक इनपुट संवाद बॉक्स बनाएँ?
- 22. एक यादृच्छिक संख्या जनरेटर
- 23. एक सी समारोह से एक PyObject * बनाएँ?
- 24. एक पूर्ण स्तंभ पर एक अद्वितीय अनुक्रमणिका कैसे बनाएँ?
- 25. एक गोलाकार कोने के साथ एक NSImageView कैसे बनाएँ?
- 26. एक div बनाएँ जो एक HTML चेकबॉक्स
- 27. एक यादृच्छिक उत्तल बहुभुज कैसे उत्पन्न करें?
- 28. नोड्स एक यादृच्छिक सूचक
- 29. एक यादृच्छिक क्रम
- 30. एक यादृच्छिक प्राथमिक कुंजी
"पॅकमैन भूलभुलैया" का क्या मतलब है? –
मैं अपना खुद का पॅकमैन क्लोन बनाने का प्रयास कर रहा हूं और मैं इस तस्वीर के समान "पॅकमैन भूलभुलैया" बनाना चाहता हूं http://ryangenno.tripod.com/images/MSpacmaze4.gif। मैं इसे यादृच्छिक –
पर उत्पन्न करना चाहता हूं, मुझे पता है कि यह एक पुराना सवाल है, लेकिन यदि आपको समस्याएं आ रही हैं तो इस साइट को देखें, इससे मुझे एक टन मदद मिली। http://www.contralogic.com/2d-pac-man-style-maze-generation/ – user1762507