প্রতিটি ছোট পদক্ষেপের জন্য বুলিয়ান ভেরিয়েবলগুলি তৈরি করুন:
bool step1 = i + u == b || q >= a;
bool step2 = a != b && p.isGood() && group1;
bool step3 = group2 || k.isSomething() || m > n;
if (step3) { doSomething(); }
এটি অবশ্যই প্রতিটি পদক্ষেপের বিভিন্ন নাম বাদে ল্যাক্রিমোলজির উত্তরের অনুরূপ।
যদি আপনি নাম দেন step1
, step2
এবং step3
এমনভাবে যেগুলি ধারণাগত ধারণাটি তৈরি করে, এটি সবচেয়ে সুস্পষ্টভাবে হওয়া উচিত। p.isGood()
এবং k.isSomething()
কখনও কখনও এমন পরিস্থিতিতে আহ্বান করা যেতে পারে যেখানে এটি আপনার মূল কোডে না থাকে, সুতরাং এই ফাংশনগুলি ব্যয়বহুল হলে বা আপনি খুব সংকীর্ণ লুপে এই কোডটি চালাচ্ছেন যদি এই বিকল্প হয় না।
অন্যদিকে, নতুন ভেরিয়েবল তৈরি করতে পারে এমন পারফরম্যান্সের আঘাতের বিষয়ে আপনার চিন্তা করার দরকার নেই; একটি ভাল সংকলক তাদের অপ্টিমাইজ করবে।
আয়তক্ষেত্রের সংঘর্ষ সনাক্তকরণের একটি উদাহরণ (যা সম্ভবত আপনি পূর্বোক্ত কর্মক্ষমতা হিটের কারণে ব্যবহার করবেন না):
if((a.x + a.width >= b.x || b.x + b.width >= a.x)
&& (a.y + a.height >= b.y || b.y + b.width >= a.y)
)
{ collision(); }
হতে পারে:
bool horizMatch = a.x + a.width >= b.x || b.x + b.width >= a.x;
bool vertMatch = a.y + a.height >= b.y || b.y + b.width >= a.y;
if(horizMatch && vertMatch) { collision(); }
এছাড়াও, আপনি যদি আপনার কোডটি এইভাবেই ছেড়ে যেতে চান তবে আমার ধারণা এটিও পুরোপুরি ঠিক আছে। আমি আন্তরিকভাবে মনে করি আপনার কোডটি যথেষ্ট সুস্পষ্ট। স্পষ্টতই আমি জানি না ঠিক a b x y i u p k m n
কী, তবে যতটা কাঠামো যায় ততই আমার কাছে ভাল লাগে।