पिछले एक हफ्ते से मैं यूनिटी 3 डी के साथ इन्वेंट्री सिस्टम पर काम कर रहा हूं। पहले तो मुझे Design3 में लोगों से मदद मिली, लेकिन जब तक हम पथ विभाजित नहीं करते, तब तक यह बहुत लंबा नहीं था, क्योंकि मुझे वास्तव में वे अपना कोड पसंद नहीं आया था, इसमें OOP की कोई गंध नहीं थी।
मैंने इसे और कदम आगे बढ़ाया - आइटम एक से अधिक स्लॉट लेते हैं, उन्नत प्लेसमेंट सिस्टम (आइटम सबसे अच्छा करीब फिट खोजने के लिए अपना सर्वश्रेष्ठ प्रयास करता है), स्थानीय माउस सिस्टम (माउस सक्रिय बैग क्षेत्र में फंस जाता है), आदि।
यहाँ मेरे काम का डेमो है।
हम अपने खेल में जो करना चाहेंगे, वह एक ऑटो-ऑर्गेनाइजिंग फीचर है - ऑटो-सॉर्ट नहीं। हम यह सुविधा चाहते हैं क्योंकि हमारी इन्वेंट्री 'वास्तविक समय' में रहने वाली है - रेजिडेंट ईविल 1,2,3 आदि की तरह नहीं, जहां आप गेम को रोकेंगे और अपनी इन्वेंट्री में चीजें करेंगे। अब लाश से घिरे हुए एक चिपचिपे स्थिति में अपने आप की कल्पना करें, और आपके पास गोलियां नहीं हैं, आप चारों ओर देखें, आप देखते हैं कि जमीन पर पास में गोलियां हैं, इसलिए आप उनके लिए जाते हैं और उन्हें लेने की कोशिश करते हैं, लेकिन वे डॉन नहीं करते हैं 'फिट नहीं! आप अपनी इन्वेंट्री को देखते हैं और पता करते हैं कि यदि आप कुछ वस्तुओं को पुनर्गठित करते हैं, तो यह फिट होगा! - अब खिलाड़ी - उस स्थिति में पुनर्गठन के लिए समय नहीं है क्योंकि वह लाश से घिरा हुआ है और मर जाएगा यदि वह रुक जाता है और स्थान बनाने के लिए इन्वेंट्री का आयोजन करता है (वास्तविक समय में इन्वेंट्री याद रखें, कोई रोक नहीं) - ' t यह स्वतः होने के लिए अच्छा है? - हाँ!
(मेरा मानना है कि यह कुछ गेम में लागू किया गया है जैसे डंगऑन की घेराबंदी या कुछ और, इसलिए यह सुनिश्चित करने योग्य है)
उदाहरण के लिए इस तस्वीर को देखें:
हां, इसलिए यदि आप इस मुद्दे को ऑटो-सॉर्ट करते हैं, तो आपको अपने स्थान मिल जाएंगे, लेकिन यह बुरा है क्योंकि: 1- महंगा: यह उन रिक्त स्थान को मुक्त करने के लिए एक पूरे तरह के ऑपरेशन की आवश्यकता नहीं है, पहली तस्वीर में, बस लाल आइटम को स्लाइड करें नीचे बहुत बाईं ओर, और आपको वही स्थान मिलते हैं जो आपको ऑटो-सॉर्ट से मिले थे। 2- यह खिलाड़ी को परेशान कर रहा है: "मेरे सामान को फिर से ऑर्डर करने के लिए एफ ने आपको कौन बताया?"
मैं "कैसे कोड लिखने के लिए" इस के लिए, मैं सिर्फ कुछ मार्गदर्शन, जहां देखने के लिए के लिए पूछ रहा हूँ क्या एल्गोरिदम शामिल कर रहे हैं के लिए पूछ नहीं कर रहा हूँ? रेखांकन और सबसे छोटा रास्ता सामान से संबंधित यह कुछ है? मुझे उम्मीद है कि cuz नहीं मैंने अपने कॉलेज की पढ़ाई जारी रखने का प्रबंधन नहीं किया: / लेकिन अगर यह है, तो मुझे बताएं और मैं संबंधित सामान सीखूंगा।
सूचना केवल एक समाधान से अधिक हो सकती है। इसलिए मुझे लगता है कि मुझे सबसे पहले यह पता लगाना होगा कि क्या स्थिति 'सॉल्वेबल' है - अगर मुझे पता है कि कैसे सॉल्व करने योग्य है या नहीं, यह निर्धारित करना है, तो मैं इसे हल कर सकता हूं। मुझे बस उन स्थितियों को जानना होगा जो इसे 'सॉल्व' बनाती हैं। और मेरा मानना है कि इसके लिए कुछ एल्गोरिदम / डेटा संरचना होनी चाहिए।
1x3 आइटम को फिट करने की कोशिश करने के एक से अधिक समाधान के लिए यहां एक तस्वीर दी गई है:
तीर केवल एक समाधान दिखाते हैं, लेकिन यदि आप देखेंगे तो आप एक से अधिक पाएंगे। यह वही है जो मैं अंततः ऑटो-सॉर्टिंग नहीं करता हूं, लेकिन एक समाधान ढूंढता हूं और इसे लागू करता हूं।
ध्यान दें कि अगर मैं इस पर समय बिताता हूं तो मैं इसे हल करने का तरीका लेकर आऊंगा, लेकिन यह सबसे अच्छा तरीका नहीं होगा, यह ऐसा है, जैसे अपने हाथों के बजाय अपने पैरों के साथ कार का पहिया पकड़ना! XD या बस एक मुद्दे को हल करने की कोशिश कर रहा है जिसमें सरणियों की आवश्यकता है, लेकिन आप अभी तक उनके अस्तित्व के बारे में नहीं जानते हैं! तो क्या यह करने के लिए सही दृष्टिकोण है?
कमेंट्री से अपडेट
@ स्टेफेन मैं वास्तव में कोई गुरु नहीं हूँ, आपने 'नॅप्सैक' और @BlueRaja का उल्लेख किया है - डैनी पफ्लुघोफ्ट ने 2 डी बिन पैकिंग एल्गो का उल्लेख किया है। क्या वे किसी तरह से संबंधित / समान हैं? - मैं अभी भी उलझन में हूं कि मुझे यह कैसे करना चाहिए।
और हाँ मैं पहले से ही एक "विधर्मी" का उपयोग कर रहा हूं, लेकिन मुझे वास्तव में नहीं पता था कि मैं था: डी यह पहला उपलब्ध स्लॉट पाता है, और देखें कि क्या आइटम वहां फिट बैठता है।
मुझे नहीं पता कि उनके "थोकपन" के आधार पर आइटम ऑर्डर करना (जिसे मैं nSlotsRequired = nRowsReq * nColsRec कहता हूं) काम करेगा, क्योंकि आपके पास एक 2x2 और 1x4 आइटम हैं उदाहरण के लिए, उनके पास एक ही थोकपन है, लेकिन अलग-अलग आकार और होंगे अगले आइटमों के शेष भाग कैसे जाएंगे इस पर एक अलग प्रभाव पड़ता है। इसलिए... :/
मैंने इस वीडियो को देखा , मुझे वास्तव में पूर्ण पैकिंग विचार पसंद आया, लेकिन मुझे आश्चर्य है कि इन्वेंट्री 2 डी के बाद से इसके बारे में कैसे जाना जाए। मुझे यकीन भी नहीं है कि बिन पैकिंग यहाँ की कुंजी है क्योंकि, यह अच्छी तरह से सच है कि मेरे पास एक से अधिक बैग हो सकते हैं, लेकिन हमारे खेल में यह सिर्फ एक बैग होने वाला है। तो, यह 'एक' बैग में फिटिंग आइटम की बात है और इससे अधिक नहीं। तो उस vid (पाइप और बस) में उदाहरण वास्तव में मेरी समस्या से मेल नहीं खाते हैं। इस बात के बारे में कुछ चीजें भी देखीं, मैंने यह नहीं देखा कि 'वैल्यू' मेरे आइटम / इन्वेंट्री से कैसे संबंधित है, लेकिन मुझे लगता है कि 'वज़न' उसी तरह का होता है, जो निश्चित रूप से नहीं होता।