জাভা, 318 312 297 294 260 258 বাইট
ক্লিফ্রুট ধন্যবাদ 15 বাইট সংরক্ষণ করা !
interface a{static void main(String[]A){int b=Byte.valueOf(A[0]),B=Byte.valueOf(A[1]),C=3+b*2;String c="";if(b<2&B<2)c="o";else{for(;C-->0;)c+="_";for(;B-->0;){c+="\n|";for(C=b;C-->0;)c+=" o";c+=" |";}c+="\n";for(C=3+b*2;C-->0;)c+="-";}System.out.print(c);}}
এটি কমান্ড লাইন আর্গুমেন্টের সাথে কাজ করে।
নিখরচায় একটি মানব-পঠনযোগ্য আকারে:
interface a {
static void main(String[] A) {
int b = Byte.valueOf(A[0]),
B = Byte.valueOf(A[1]),
C = 3 + b*2;
String c = "";
if (b < 2 & B < 2)
c = "o";
else {
for (; C-- > 0;)
c += "_";
for (; B-- > 0;) {
c += "\n|";
for (C = b; C-- >0;)
c += " o";
c += " |";
}
c += "\n";
for(C = 3 + b*2; C-- >0;)
c += "-";
}
System.out.print(c);
}
}
হ্যাঁ, প্রোগ্রামটি শৃঙ্খলাবদ্ধ থাকা সত্ত্বেও কী চলছে তা বোঝা এখনও মুশকিল। সুতরাং এখানে ধাপে ধাপে ব্যাখ্যা:
static void main(String[] A)
প্রথম দুটি কমান্ড লাইন যুক্তি-যা আমরা মাত্রা পেতে ব্যবহার করব - প্রোগ্রামে A[0]এবং A[1](যথাক্রমে) ব্যবহার করা যেতে পারে ।
int b = Byte.valueOf(A[0]),
B = Byte.valueOf(A[1]),
C = 3 + b*2;
String c = "";
bকলামগুলির Bসংখ্যা, সারিগুলির সংখ্যা Cএবং forলুপগুলিতে ব্যবহারের জন্য নিবেদিত একটি পরিবর্তনশীল ।
cলেগো টুকরা। আমরা এতে সারি যুক্ত করব এবং তারপরে এটি শেষে মুদ্রণ করব।
if (b < 2 & B < 2)
c = "o";
else {
তাহলে টুকরা ছাপা হবে 1x1 হয়, তাহলে উভয় b(কলামের সংখ্যা) এবং B(সারি সংখ্যা) চেয়ে ছোট 2. হওয়া উচিত তাই আমরা কেবল সেট cএকটি একক থেকে oএবং তারপর লাফালাফি করতে বিবৃতি যে System.out.printটুকরা গুলি সেই বিষয়টিই কিনা তা।
for (; C-- > 0; C)
c += "_";
এখানে, আমরা (integerValueOfA[0] * 2) + 3আন্ডারস্কোরগুলিকে সংযোজন করি c। এটি সমস্ত গর্তের উপরে শীর্ষ সারিতে most
for (; B > 0; B--) {
c += "\n|";
for(C = b; C-- > 0;)
c+=" o";
c += " |";
}
এটি সেই লুপ যেখানে আমরা একসাথে এক সারি টুকরোটি তৈরি করি। ভিতরে যা চলছে তা উদাহরণ ছাড়া ব্যাখ্যা করা অসম্ভব। ধরা যাক যে টুকরাটি 4x4:
Before entering the loop, c looks like this:
___________
After the first iteration (\n denotes a line feed):
___________\n
| o o o o |
After the second iteration:
___________\n
| o o o o |\n
| o o o o |
After the third iteration:
___________\n
| o o o o |\n
| o o o o |\n
| o o o o |
।
c += "\n";
for (C = 3 + b*2; C-- > 0;)
c += "-";
এখানে, আমরা (integerValueOfA[0] * 2) + 3টুকরা হাইফেন যোগ করুন । এটি সমস্ত গর্তের নীচে একেবারে নীচে সারি।
forলুপটি বোঝানোর জন্য আমি ব্যবহৃত 4x4 টুকরা যেখানে টুকরাটি বাস্তবে নির্মিত তা এখন দেখতে এরকম দেখাচ্ছে:
___________\n
| o o o o |\n
| o o o o |\n
| o o o o |\n
| o o o o |\n
-----------
System.out.print(c);
এবং অবশেষে, আমরা টুকরা মুদ্রণ!