:"'!!((!((!!#*```).?p0```!!!]'8eP!P]'p(.' '.a-'XE&hqc
এটি অনলাইন চেষ্টা করুন!
ব্যাখ্যা
জাগ্রত ছাগল
জাগ্রত ছাগলটি স্ট্রিংয়ে প্যাক করা যায়
'' '' ")___(->o/___ \
এবং শীঘ্রই ব্যাখ্যা করা হবে হিসাবে আনপ্যাক করা। তবে এগুলি থেকে বাঁচার জন্য একক-উদ্ধৃতি চিহ্নগুলি নকল করা দরকার , সুতরাং স্ট্রিং আক্ষরিক হিসাবে সংজ্ঞায়িত করতে হবে (সংলগ্ন একক-উদ্ধৃতি চিহ্ন এবং মূল চিহ্নগুলির সদৃশ):
' '''' '''' ")___(->o/___ \'
বাইটগুলি সংরক্ষণ করতে, আমরা এরপরে একটি কোড পয়েন্ট ব্যবহার করে স্ট্রিংটি সংজ্ঞায়িত করি, যাতে ডুপ্লিকেশন এড়ানো হয়। স্ট্রিং আক্ষরিক হয়
'!!((!((!!#*```).?p0```!!!]'
কোডের শেষে আমরা 1 টি বিয়োগ করে চরে রূপান্তর করব। (স্ট্রিং আক্ষরিকের ঠিক পরে আমরা এখনই এটি করতে পারি; তবে শেষের দিকে রেখে দিলে অন্য একক-উদ্ধৃতি সদৃশতা সাশ্রয় হবে, যেমন আমরা দেখব)
স্ট্রিংটি কীভাবে প্যাক করা হয়েছে তা ব্যাখ্যা করার জন্য, আমরা মূল অক্ষরগুলির সাথে কাজ করব (যা কোডের শেষে 1 টি বিভাজন দ্বারা উত্পাদিত হয়), সুতরাং ব্যাখ্যাটি অনুসরণ করা আরও সহজ। আমরা প্রথমে স্ট্রিংকে পুনরায় আকার দিই
'' '' ")___(->o/___ \
একটি 8-সারি 2D চর অ্যারে, কলাম-প্রধান ক্রমে (নীচে, তারপরে) এটি স্বয়ংক্রিয়ভাবে চার্ট 0 দিয়ে শেষ কলামটি প্যাড করে (কোড শেষে 1 বিয়োগ করে এটি −1 সংখ্যায় রূপান্তরিত হবে, যা চরে রূপান্তরিত হয়ে আবার চর 0 দেয়)। চর 0 একটি স্থান হিসাবে প্রদর্শিত হয়। সুতরাং কার্যকরভাবে আমরা স্পেস দিয়ে প্যাডিং করছি। পুনর্নির্মাণের ফলাফল
>
"o\
')/
'__
__
'__
'(
-
আমরা এখন উল্লম্বভাবে উল্টাতে:
-
'(
'__
__
'__
')/
"o\
>
এবং তারপরে জাগ্রত ছাগল তৈরির জন্য পুনরায় স্থানান্তরিত করে উল্লম্বভাবে উল্টাতে:
\
___/o>
-(___)"
'' ''
দুটি ফ্লিপ অপারেশন প্রয়োজন কারণ মূল প্যাক করা স্ট্রিং "বিপরীতে"। এটি ছাগলকে উপস্থাপন করে এমন প্রকৃত 2D চর অ্যারেটির প্রথম সারিতে 6 টি প্রাথমিক স্পেস রয়েছে, যা স্ট্রিংটি 8-সারি 2 ডি অ্যারে রূপান্তরিত হওয়ার পরে স্বয়ংক্রিয়ভাবে প্যাডিংয়ের মাধ্যমে পূরণ হবে the তবে প্যাডিংটি শেষ কলামের শেষ দিকে (শুরু নয়) করা হয় (সারি নয়), সুতরাং ফ্লিপস এবং ট্রান্সপোজ।
ঘুমন্ত ছাগল
একটি স্লিপিং ছাগল transliterating অক্ষর দ্বারা একটি জাগ্রত ছাগল থেকে জেনারেট হওয়া o
, '
, -
মধ্যে -
, `
, ,
যথাক্রমে। আসলে, এক-কোড দফা-উপরে রূপান্তরের কারণ, আমরা অক্ষর ভিন্ন বর্ণমালায় p
, (
, '
মধ্যে .
, a
, -
, আবার আমাদের একক উদ্ধৃতি চিহ্ন সদৃশ করা থেকে রক্ষা করে থাকে। এই কারণেই প্রোগ্রামটির শেষের জন্য বিয়োগফল অপারেশনটি বাকি ছিল।
কোড কাঠামো
N
কোড পয়েন্টের সাথে কাজ করে একটি জাগ্রত ছাগলের সময় তৈরি করুন 1 টি বৃদ্ধি পেয়েছে।
- শেষ ছাগলকে ঘুমন্ত ছাগলে রূপান্তর করুন।
- সমস্ত ছাগলকে অনুভূমিকভাবে সংযুক্ত করুন। কোড পয়েন্টগুলিতে 1 কে বিয়োগ করুন এবং চরে কাস্ট করুন।
মন্তব্য করা কোড
: % (Step 1) Implicitly input N. Push range [1 2 ... N]
" % For each (i.e. repeat N times)
'!!((!((!!#*```).?p0```!!!]' % Push this string. Quotes are escaped by duplicating
8e % Reshape into an 8-row 2D array of char, in
% column-major order, padding last column with
% char 0
P % Flip vertically
!P % Transpose and flip vertically
] % End
'p(.' % (Step 2) Push this string: source for transliteration
'.a-' % Push this string: target for transliteration
XE % Transliterate. Transforms last goat into sleeping
&h % (Step 3) Horizontally concat all 2D char arrays
qc % Subtract 1 and convert to char. 0 becomes −1, which
% is converted to char 0, which is displayed as a space
% Implicitly display