সফল কোড গল্ফের জমাগুলি প্রকৃতি অনুসারে সমস্ত জায়গাতেই পাগল চিহ্নগুলিতে পূর্ণ। তাদের জমাটি বুঝতে সহজতর করার জন্য, অনেক কোড-গল্ফার তাদের কোডের একটি ব্যাখ্যা অন্তর্ভুক্ত করতে পছন্দ করে। তাদের ব্যাখ্যায় কোডের লাইনটি উল্লম্বভাবে বিস্ফোরিত ডায়াগ্রামে রূপান্তরিত হয়।
উদাহরণস্বরূপ, যদি এটি আমার কোড হয়:
1_'[3:~2@+]`
আমি তৈরি করতে পারে এমন অনেকগুলি সম্ভাব্য চিত্রের মধ্যে একটির মতো দেখতে হবে:
1
_'
[ ]
[3: ]
[ ~ ]
[ 2@ ]
[ +]
`
লক্ষ
এই চ্যালেঞ্জে, আপনি একটি ব্যাখ্যা স্বয়ংক্রিয়-বিন্যাস সরঞ্জাম লিখবেন যা কোডের একটি লাইন নেয় এবং একটি চিত্র তৈরি করে যেখানে ব্যাখ্যাযোগ্য পাঠ্য সহজেই যুক্ত করা যায়।
এটি আরও কার্যকর চ্যালেঞ্জ হিসাবে তৈরি করতে, ব্যবহারকারী বিন্যাসের স্ট্রিং সরবরাহ করে প্রতিটি লাইনের সামগ্রীর উল্লেখ করতে সক্ষম হবেন। বিন্যাসের স্ট্রিংটি একটি দ্বিতীয় লাইন হবে, কেবলমাত্র অক্ষর থাকবে A-Za-z
, যা প্রোগ্রামের সমান দৈর্ঘ্য। চিঠিগুলি ক্রমটি ব্যাখ্যা করে যাতে ব্যাখ্যায় প্রোগ্রামের অক্ষরগুলি মুদ্রিত করা উচিত।
এখানে কোনও ব্রাকেটের মতো বিন্যাস ছাড়াই I / O এর উদাহরণ রয়েছে :
123423
AabcBC
1
2
3
2
3
4
বন্ধনী
প্রোগ্রামের একাধিক চরিত্রের যদি একই অগ্রাধিকার স্তর থাকে, তবে সেই অক্ষরের সেটটি কোডের একক ব্লক (যদি তারা একটি দল গঠন করে) বা বন্ধনীগুলির একটি সেট (যদি তাদের মধ্যে অন্য অক্ষর থাকে তবে) হিসাবে কাজ করে। সাধারণ নিয়মগুলি সহজ:
বৃহত্তর অগ্রাধিকারের অন্যান্য সমস্ত অক্ষর চিত্রের উপরের রেখায় ইতিমধ্যে উপস্থিত না হওয়া অবধি অক্ষরগুলি রেখার লাইনে উপস্থিত হবে না।
সমান অগ্রাধিকারের অক্ষর সর্বদা একই লাইনে মুদ্রিত হয়। যদি একটি নির্দিষ্ট অক্ষর একটি লাইনে উপস্থিত হয়, সমান অগ্রাধিকারের অন্যান্য সমস্ত অক্ষরগুলি লাইনে উপস্থিত হয়।
সমান অগ্রাধিকারের অক্ষরের একটি সেট প্রতিটি লাইনে প্রদর্শিত অবিরত অবিরত থাকে যতক্ষণ না এটি দ্বারা আবদ্ধ সমস্ত অন্যান্য অক্ষর কমপক্ষে একবার উপস্থিত হয়। এটি "বন্ধনী সদৃশ" নির্মাণের অনুমতি দেয়। যদি
bceab
অগ্রাধিকারগুলি হয়, তবেb
অক্ষরগুলি দ্বিতীয় লাইনে উপস্থিত হবে (তারা দ্বিতীয় সর্বোচ্চ অগ্রাধিকার) এবং সমস্তcea
অক্ষর উপস্থিত না হওয়া অবধি প্রদর্শিত হতে থাকবে । যদি অগ্রাধিকারের স্ট্রিংটি হয়abcadeafga
, তবে এরbcdefg
মধ্যে সমস্তগুলি এর মধ্যে রয়েছে বলে মনে করা হয়, সমস্তa
প্রদর্শিত 4 টি প্রদর্শিত না হওয়া পর্যন্ত উপস্থিত থাকবেg
।
আরও ফর্ম্যাটিং প্রয়োজনীয়তা
আউটপুটটির সমস্ত লাইন একই দৈর্ঘ্য (ইনপুট লাইনের দৈর্ঘ্য) হওয়া উচিত, প্রয়োজনীয় স্থানগুলির সাথে প্যাড করা। ইনপুট প্রোগ্রাম লাইনে স্পেস থাকতে পারে, যদিও এই স্পেসগুলিকে একটি অগ্রাধিকার চিঠিও দেওয়া হবে। আউটপুট / ইনপুট নেভিগেশন ট্রেলিং নিউলাইনগুলি areচ্ছিক।
স্কোরিং
এটি কোড গল্ফ, সবচেয়ে কম বাইট জেতা।
উদাহরণ
আরও জটিল ফর্ম্যাটিং সহ কোডের একটি অংশের মন্তব্য করা উদাহরণ এখানে।
1_'[3:~2@+]`
abbcddeffgch
1 #highest priority is denoted by the lowercase letter a
_' #priority b
[ ] #all characters with priority c
[3: ] #priority d, but priority c still printed because it encloses more
[ ~ ] #priority e
[ 2@ ] #priority f
[ +] #priority g, last line of c because all enclosed characters have appeared
` #priority h
পার্লের একটি উদাহরণ:
$_=<>;s/[^aeiou\W]/$&o$&/gi;print
aaaaaabbccccccccccbdddddbbbbeeeee
$_=<>;
s/ / /gi;
s/[^aeiou\W]/ /gi;
s/ /$&o$&/gi;
print
মার্টিন বাটনার সৌজন্যে সিজেমে কয়েকটি উদাহরণ এখানে রইল:
l~2*{_2%{3*)}{2/}?_p_(}g;
aabbcdddefffeeggeehhiiccj
l~
2*
{ }g
{_2% }g
{ { }{ }? }g
{ {3*)}{ }? }g
{ { }{2/}? }g
{ _p }g
{ _(}g
;
q{_eu'[,66>"EIOU"-#)g{'o1$}*}/
abcccddddddeeeeeeefgghiijjhhbb
q
{ }/
{_eu }/
{ '[,66> }/
{ "EIOU"- }/
{ # }/
{ )g }/
{ { }*}/
{ {'o }*}/
{ { 1$}*}/
আপনার সাথে ঝামেলা জাগানোর জন্য এখানে একটি পাগল উদাহরণ রয়েছে:
1_'[3:~2@+]`
azTABACBDCAT
[ : ]
[3: 2 ]
[3:~2 +]
[ :~ @+]
' `
1
_
যখন বন্ধনীগুলি ওভারল্যাপ হয় তখন কী হয় তার আরও স্পষ্ট উদাহরণ এখানে abab
। (সাধারণত, আপনি নিজের ব্যাখ্যাটি ফর্ম্যাট করতে বেছে নেবেন এমন উপায় নয়))
aabbccddaaeebb
aabbccddaaeebb
aa aa
aabb aa bb
aabbcc aa bb
aabb ddaa bb
bb eebb #"aa" no longer appears because all of "bbccdd" have already appeared.
oNo
সঙ্গে প্রতিস্থাপিত হতে পারেn
মধ্যে Tio ।