ग्रिड में टाउन लेआउट बनाना


9

मैं एक वर्ग ग्रिड में एक शहर लेआउट उत्पन्न करना चाहता हूं (isometrically प्रस्तुत किया गया है, लेकिन यह कोई फर्क नहीं पड़ता) निम्नलिखित तत्वों का उपयोग कर:

  • 2x2 मकान
  • सड़कें, 1 यूनिट चौड़ी
  • नहरें, 1 इकाई चौड़ी

नमूना लेआउट:

नमूना लेआउट

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

क्या इसके लिए तैयार एल्गोरिथम है? यदि नहीं, तो मुझे इसे लागू करने के लिए किस दिशा में सोचना चाहिए?

जवाबों:


8

वास्तव में आप इसे कैसे चाहते हैं, इसके आधार पर कई तरीके हैं। यहाँ एक तरह से एक मोटी रूपरेखा है जो मुझे लगता है कि आपके विवरण में फिट होगी:

पहले नहरों का निर्माण। फिर बेतरतीब ढंग से घरों को रखना शुरू करें, प्रत्येक घर के लिए जिसे आप रखते हैं, उसके सामने सड़क रखें और उस टुकड़े से मौजूदा सड़क नेटवर्क के लिए एक सड़क बनाएं, अगर या तो संभव नहीं है या सड़क के सामने बदसूरत 2x2 ब्लॉक में परिणाम दें सड़क घर की मरम्मत करती है। कुछ सड़क बिंदुओं का पता लगाएं, जो एक दूसरे के करीब हैं, लेकिन मौजूदा सड़कों का अनुसरण करते हुए और उन लोगों के लिए कुछ शॉर्टकट बनाने की कोशिश करते हैं।

इस तरह का सामान सबसे अधिक प्रयोग और अनुभव लेता है। अक्सर आपको एक यादृच्छिक फैशन में कुछ विस्तार करने से अच्छे परिणाम मिलेंगे, यह निर्धारित करें कि क्या यह कुछ मानदंडों और पूर्ववत् मिलता है और यदि यह नहीं है तो पुन: प्रयास करें।

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.