আমি সারি এবং কলামগুলির সাথে একটি আয়তক্ষেত্রাকার গঠনে বট পেয়েছি। একটি বট যুক্ত হয় বা গঠন থেকে সরানো হয় যখন একটি সমস্যা দেখা দেয়। যখন এটি ঘটে, তখন বটগুলিকে নিজেদের পুনর্বিন্যাস করতে হয় যাতে আয়তক্ষেত্রাকার গঠন এখনও প্রায় একই দিক অনুপাত হয় এবং যতটা সম্ভব আয়তক্ষেত্রাকার হয়। এই কিভাবে করবেন?
কিছু ধারণা:
যখন কোনও বট যুক্ত বা সরানো হয়, তখন গঠনটির নতুন প্রস্থ এবং উচ্চতা নির্ধারণের জন্য নতুন মোট বট সংখ্যা এবং একটি পছন্দসই ধ্রুবক দিক অনুপাত ব্যবহার করুন যা সেই অনুপাতের অনুপাতটি সবচেয়ে ঘনিষ্ঠভাবে ফিট করে। তারপরে নতুন মাত্রাগুলির সাথে মানিয়ে নিতে কোনওভাবেই বটগুলিতে রদবদল করুন।
যখন কোনও বট সরানো হয়, তার পিছনে থাকা বটটি তার জায়গায় নিয়ে যান এবং আপনি গঠনের শেষ না হওয়া পর্যন্ত চালিয়ে যান। তারপরেও ব্যাক র্যাঙ্কে থাকা বটগুলি কোনওভাবে শফলিং করে যতটা সম্ভব ব্যাক র্যাঙ্কটি আউট করা।
সম্পূর্ণরূপে আলাদা যে অন্য একটি ধারণা অণু কাঠামো এক সাথে থাকার উপায়ের অনুকরণ করা। প্রতিটি বট কাছাকাছি চারটি বট আকর্ষণ করে এবং বাকীটি প্রত্যাহার করে অন্য চারটি বট দিয়ে ঘিরে রাখতে চান। বিপরীত স্কোয়ার আইন ব্যবহার করে বিচ্ছিন্নতা নিশ্চিত করার জন্য খুব কাছে থাকা সমস্ত বট (চারটি সহ) প্রতিরোধ করুন। পুরো কাঠামোর আকার তৈরি করতে আপনার অতিরিক্ত বাহিনীর প্রয়োজনও রয়েছে। তবে, এটি অত্যন্ত গণনামূলকভাবে ব্যয়বহুল মনে হচ্ছে।
আপডেট : সুতরাং সরহমের উত্তরের দিকে নজর রেখে আমি একটি ভাল সাধারণ ফাংশন নিয়ে এসেছি যা ভাল মাত্রা দেয়।
প্রথমে আমি প্রস্থ এবং উচ্চতার জন্য নীচের একযোগে সমীকরণটি সমাধান করেছি এবং তারপরে উত্তরগুলি গোল করেছি।
width/height=aspect ratio of your choice
width*height=number of bots
এটি আপনাকে আপনার বটের সংখ্যার জন্য সেই অনুপাতের সবচেয়ে নিকটতম পূর্ণসংখ্যার আয়তক্ষেত্র দেয়। নিকটতম আয়তক্ষেত্রটি অর্ধেক সময় খুব বড় হবে এবং অর্ধেক সময় খুব ছোট হবে (অবশ্যই কখনও কখনও এটি ঠিক ঠিক হবে তবে কে সেগুলির বিষয়ে চিন্তা করে)। ক্ষেত্রে যেখানে আয়তক্ষেত্র একটি হল সালে সামান্য অত্যন্ত বড়, কিছুই চাহিদা কাজ করতে হবে। ব্যাক র্যাঙ্কটি প্রায় পূর্ণ হয়ে শেষ হবে, যা আদর্শ। যে ক্ষেত্রে আয়তক্ষেত্রটি সামান্য খুব ছোট, আপনি সমস্যার সম্মুখীন হয়েছিলেন কারণ সেই কিশোরী ক্ষুদ্র ওভারফ্লোতে তার নিজস্ব র্যাঙ্কে যেতে হবে যার উপর কয়েকটি বট রয়েছে এমন একটি র্যাঙ্ক তৈরি হয়েছে, যা দেখতে সুন্দর দেখাচ্ছে না। পার্থক্য বড় যেখানে ক্ষেত্রেও আছে(প্রস্থের অর্ধেকেরও বড়), এক্ষেত্রে পার্থক্যটিকে ছোট করার জন্য একটি পদকে যুক্ত বা বিয়োগ করুন। তারপরে, যখন আয়তক্ষেত্রটি খুব ছোট হয়, তখন একটি কলামটি কিছুটা বড় করে যুক্ত করুন make এটি করার পরে দেখে মনে হচ্ছে পিছনের র্যাঙ্কে সর্বদা অন্যান্য স্থানের চেয়ে কমপক্ষে অর্ধেক বট থাকবে b
হালনাগাদ
আপনি মাত্রাগুলি পেয়ে গেলে সেগুলি বর্তমান মাত্রার সাথে তুলনা করুন। নতুন মাত্রার সামনের অংশটি যদি প্রতিটি র্যাঙ্কের জন্য নীচে র্যাঙ্ক থেকে পপ বট হয় এবং এটিকে বর্তমান র্যাঙ্কে চাপ দিন যতক্ষণ না that র্যাঙ্কের বট সংখ্যাটি সামনের দিকের সমান হয়। আপনি ব্যাক র্যাঙ্কে না পৌঁছানো পর্যন্ত সেই অ্যালগরিদম চালিয়ে যান। এই অ্যালগরিদমটি ব্যবহার করে, বটগুলি দক্ষতার সাথে নতুন মাত্রায় মাপসই করা যায়। এর পরে, আমি কেবল নতুন পুরাতনটিকে পিছনের স্থানটিতে ঠেকিয়ে রাখি। নতুন সামনের অংশটি ছোট হ'ল ক্ষেত্রে অ্যালগরিদম কিছুটা আলাদা তবে আপনি এটি বের করতে পারেন!
এর পরে আরও দুটি সমস্যা আছে। মুছে ফেলা এবং আরও নমনীয় সংযোজন পদ্ধতি যেখানে নতুন বটগুলি প্রয়োজনীয়ভাবে পিছনের পদে বরাদ্দ করা হয় না তবে যে কোনও অবস্থান যুক্ত হওয়ার মুহুর্তে তাদের নিকটবর্তী হয়।