গত এক সপ্তাহ ধরে আমি ইউনিটি 3 ডি সহ একটি ইনভেন্টরি সিস্টেমে কাজ করছি। প্রথমে আমি ডিজাইন 3 এ ছেলেদের কাছ থেকে সহায়তা পেয়েছিলাম তবে আমরা পথটি বিভক্ত না হওয়া পর্যন্ত খুব বেশি সময় হয়নি, কারণ তারা তাদের কোডটি যেভাবে করেছে তা আমি পছন্দ করি না, এতে ওওপির কোনও গন্ধ নেই।
আমি এটি আরও ধাপে এগিয়ে নিয়েছি - আইটেমগুলি একাধিক স্লট নেয়, উন্নত স্থান নির্ধারণ ব্যবস্থা (আইটেমগুলি সর্বোত্তম ঘনিষ্ঠ ফিটের সন্ধান করার চেষ্টা করে), স্থানীয় মাউস সিস্টেম (মাউস সক্রিয় ব্যাগের অঞ্চলে আটকা পড়ে) ইত্যাদি etc.
এখানে আমার কাজের একটি ডেমো রয়েছে।
আমাদের গেমটিতে আমরা যা রাখতে চাই তা হ'ল একটি স্ব-সংগঠিত বৈশিষ্ট্য - স্বয়ংক্রিয় বাছাই নয়। আমরা এই বৈশিষ্ট্যটি চাই কারণ আমাদের ইনভেন্টরিগুলি 'রিয়েল-টাইম'-তে চলেছে - রেসিডেন্ট এভিল 1,2,3 ইত্যাদির মতো নয় যেখানে আপনি গেমটি থামিয়ে দিয়েছিলেন এবং আপনার জিনিসগুলিতে জিনিসগুলি করেছেন। এখন আপনার আত্মাকে কলম্বীয়ভাবে ঘেরা একটি স্টিকি পরিস্থিতিতে কল্পনা করুন এবং আপনার কাছে বুলেট নেই, আপনি চারপাশে তাকান, আপনি দেখতে পাচ্ছেন মাটিতে কাছাকাছি গুলি রয়েছে, তাই আপনি তাদের জন্য যান এবং তাদের বাছাই করার চেষ্টা করেন, কিন্তু তারা ডোন না ফিট না! আপনি আপনার তালিকাটি দেখুন এবং খুঁজে বের করুন যে আপনি যদি কিছু আইটেম পুনর্গঠন করেন তবে এটি ফিট হবে! - এখন প্লেয়ার - সেই পরিস্থিতিতে পুনর্গঠনের সময় নেই কারণ তিনি জম্বিদের সাথে ঘিরে আছেন এবং তিনি যদি স্থানটি রক্ষার জন্য স্থানটি স্থির করে রাখে এবং স্থানটি সজ্জিত করে রাখেন তবে মারা যাবেন (রিয়েল-টাইমে জায় মনে রাখবেন, বিরতি নেই) - ওয়ান্ড ' এটি স্বয়ংক্রিয়ভাবে ঘটতে ভাল লাগবে না? - হ্যাঁ!
(আমি বিশ্বাস করি এটি কিছু গেম যেমন ডানঘাঁটি অবরোধ বা কোনও কিছুর ক্ষেত্রে প্রয়োগ করা হয়েছে, তাই নিশ্চিত যে এটি কার্যকর)
উদাহরণস্বরূপ এই ছবিটি একবার দেখুন:
হ্যাঁ, সুতরাং আপনি যদি সমস্যাটি স্বয়ংক্রিয়ভাবে সাজান তবে আপনি আপনার স্পেসগুলি পেয়ে যাবেন তবে এটি খারাপ কারণ: 1- ব্যয়বহুল: এই স্থানগুলি মুক্ত করার জন্য এটি পুরো ক্রমানুসারে প্রয়োজন হয় না, প্রথম ছবিতে কেবল লাল আইটেমটি স্লাইড করুন নীচে খুব বাম দিকে, এবং আপনি অটো সাজানোর থেকে একই স্থান পেয়েছেন। 2- এটি খেলোয়াড়ের জন্য বিরক্তিকর: "কে এফ আপনাকে আমার জিনিসগুলি পুনরায় অর্ডার করতে বলেছিল?"
আমি এর জন্য "কোডটি কীভাবে লিখব" জিজ্ঞাসা করছি না, আমি কেবল কিছু গাইডেন্স চাইছি, কোথায় সন্ধান করব, কোন অ্যালগোরিদম জড়িত? এই গ্রাফ এবং সংক্ষিপ্ততম পথ স্টাফ সম্পর্কিত কিছু? আমি আশা করি আমার কলেজ পড়াশোনা চালিয়ে যাওয়ার জন্য আমি পরিচালনা করি নি: / তবে তা থাকলেও আমাকে বলুন এবং আমি সম্পর্কিত জিনিসগুলি শিখব।
লক্ষ্য করুন সেখানে কেবলমাত্র একটি সমাধান হতে পারে। সুতরাং আমি অনুমান করি যে পরিস্থিতিটি 'দ্রবণযোগ্য' কিনা তা আমি প্রথম যা করতে হবে তা নির্ধারণ করতে হবে - যদি পরিস্থিতিটি সমাধানযোগ্য বা না হয় তা কীভাবে নির্ধারণ করতে হয় তা যদি আমি জানি তবে আমি এটি 'সমাধান' করতে পারি। আমার কেবল এমন পরিস্থিতিগুলি জানতে হবে যা এটি 'দ্রবণীয়' করে তোলে। এবং আমি বিশ্বাস করি এর জন্য অবশ্যই কিছু অ্যালগরিদম / ডেটা কাঠামো থাকতে হবে।
1x3 আইটেমটি ফিট করার চেষ্টা করার একাধিক সমাধানের জন্য এখানে একটি চিত্র:
তীরগুলি সমাধানগুলির মধ্যে একটিরই প্রদর্শন করে তবে আপনি যদি দেখেন তবে আপনি একের অধিক খুঁজে পাবেন। এটিই আমি শেষ পর্যন্ত স্বয়ংক্রিয়ভাবে বাছাই করি না তবে এর সমাধান এবং এটি প্রয়োগ করি।
মনে রাখবেন যে আমি যদি এটির জন্য সময় ব্যয় করি তবে আমি এটিকে সমাধান করার উপায় নিয়ে আসব, তবে এটি সর্বোত্তম উপায় হবে না, এটি আপনার হাতের পরিবর্তে পা দিয়ে গাড়ী চাকা ধরে রাখার মতো! এক্সডি বা ঠিক যেমন কোনও সমস্যা সমাধানের চেষ্টা করার জন্য যাতে অ্যারেগুলি দরকার হয়, তবে আপনি এখনও তাদের অস্তিত্ব সম্পর্কে অবগত নন! তাহলে এর সঠিক পন্থাটি কী?
মন্তব্য থেকে আপডেট
@ স্টেফেন আমি অলগসে আসলেই কোনও গুরু নই, আপনি 'ন্যাপস্যাক' এবং @ ব্লুরাজের উল্লেখ করেছেন - ড্যানি ফ্লুঘুফুট একটি 2 ডি বিন প্যাকিংয়ের কথা উল্লেখ করেছেন। তারা কি কোনওভাবে সম্পর্কিত / একই? - আমি কীভাবে এর কাছে যেতে পারি সে সম্পর্কে এখনও আমি বিভ্রান্ত।
এবং হ্যাঁ আমি ইতিমধ্যে একটি "হিউরিস্টিক" ব্যবহার করছি তবে আমি আসলেই জানতাম না যে আমিই ছিলাম: ডি এটি প্রথম উপলব্ধ স্লটটি সন্ধান করে এবং সেখানে আইটেমটি ফিট করে কিনা তা দেখুন।
আমি জানি না যে তাদের "বাল্কনেস" (যাকে আমি nSlotsRequired = nRowsReq * nColsRec বলে) এর উপর ভিত্তি করে আইটেমগুলি অর্ডার করা কাজ করবে, কারণ আপনার কাছে একটি 2x2 এবং 1x4 আইটেম রয়েছে, তাদের একই বাল্কনেস রয়েছে তবে বিভিন্ন আকার রয়েছে এবং থাকবে পরবর্তী আইটেমগুলি কীভাবে যাবে সে সম্পর্কে একটি আলাদা প্রভাব। সুতরাং ...: /
আমি এই ভিডিওটি দেখেছি , আমি পুরো প্যাকিং ধারণাটি সত্যিই পছন্দ করেছি, তবে আবিষ্কারটি 2D হওয়ায় এটি কীভাবে চলবে তা অবাক করি। আমি এখানেও নিশ্চিত নই যে এখানে বিন প্যাকিংই মূল কী, কারণ এটি ঠিক যে আমার একাধিক ব্যাগ থাকতে পারে তবে আমাদের খেলায় এটি কেবল একটি ব্যাগ হতে চলেছে। সুতরাং, এটি 'এক' ব্যাগে আইটেমগুলি ফিট করার বিষয় এবং এর চেয়ে বেশি নয়। সুতরাং সেই ভিডের উদাহরণগুলি (পাইপ এবং বাস) সত্যিই আমার সমস্যার সাথে মেলে না। এই ন্যাপস্যাক জিনিসটি সম্পর্কে কিছু স্টাফও দেখেছি, আমি দেখতে পেলাম না যে 'মান' কীভাবে আমার আইটেম / ইনভেন্টরির সাথে সম্পর্কিত, তবে আমার ধারণা 'ওজন' বাল্কনেসের মতো, নিশ্চিত নয়,