এই চ্যালেঞ্জটি আমার প্রথম রহস্যময় ভাষা উদযাপনে তৈরি হয়েছে, ব্যাকহ্যান্ড !
ব্যাকহ্যান্ড একটি অ-রৈখিক পয়েন্টার প্রবাহ সহ একটি মাত্রিক ভাষা। পয়েন্টারটি একবারে তিনটি পদক্ষেপ সরায়, কেবলমাত্র প্রতিটি তৃতীয় নির্দেশকে সম্পাদন করে।
প্রোগ্রামটি 1..1..+..O..@সমাপ্তির আগে 1 + 1 এবং আউটপুট 2 যোগ করবে। মধ্যবর্তী নির্দেশাবলী এড়ানো হয়, 1<>1()+{}O[]@ঠিক একই প্রোগ্রাম।
যখন পয়েন্টারটি টেপের সমাপ্তি ছাড়তে চলেছে তখন এটি পরিবর্তে দিকটি বিপরীত করে এবং অন্যভাবে পদক্ষেপ নেয়, 1.@1.O+.একই প্রোগ্রামটি। মনে রাখবেন এটি একবারে শেষ নির্দেশনা গণনা করে। এটি আমাদের বেশিরভাগ রৈখিক প্রোগ্রামগুলি সঙ্কুচিত করতে দেয়, যেমন as1O+1@
এখানে আপনার চ্যালেঞ্জটি হ'ল একটি প্রোগ্রাম বা ফাংশন লিখুন যা একটি স্ট্রিং নেয়, এবং প্রোগ্রামটি ব্যাকহ্যান্ডের মতো ব্যাখ্যা করা হলে কার্যকর করা হবে এমন নির্দেশাবলী আউটপুট করা (আপনার কোনও আসল ব্যাকহ্যান্ড নির্দেশাবলী হ্যান্ডেল করার দরকার নেই)। পয়েন্টারটি স্ট্রিংয়ের শেষ চরিত্রের অবধি অবধি অবধি আউটপুট দিতে হবে (যে সময়ে সম্পাদনাটি সাধারণত পিছনের দিকে চলে যাবে)।
তবে অপেক্ষা করুন , এতটা না! যখন আপনার প্রোগ্রামটি নিজেই এই ফ্যাশনে ব্যাখ্যা করা হয়, ফলস্বরূপ কোডটি নীচের একটিটির আউটপুট দেয়:
(Mostly) worksTuring complete'Recreational'(উদ্ধৃতিগুলি উভয়'বা না হতে পারে")Perfectly okayOnly a few bugs
উদাহরণস্বরূপ, যদি আপনার উত্স কোড হয় code 2 backhandতবে প্রোগ্রামটির এই বাক্যগুলির মধ্যে ce cankb od2ahdএকটি আউটপুট হওয়া উচিত।
পরীক্ষার কেস:
"1 1 + O @" -> "11+O@"
"1O+1@" -> "11+O@"
"HoreWll dlo!" -> "Hello World!"
"abcdefghijklmnopqrstuvwxyz" -> "adgjmpsvyxurolifcbehknqtwz"
"0123456789" -> "0369" (not "0369630369")
"@" -> "@"
"io" -> "io" (Cat program in Backhand)
"!?O" -> "!?O" (Outputs random bits forever in Backhand)
"---!---!" -> "-!-----!"
এবং একটি রেফারেন্স প্রোগ্রাম লিখিত আছে অবশ্যই, ব্যাকহ্যান্ড ( এটি কিছুটা বগি হতে পারে ঠিক আছে, আমি মনে করি এটি ঠিক করেছি)।
নিয়ম।
- স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ
- প্রথম প্রোগ্রামটির ইনপুটটিতে কেবল প্রিন্টযোগ্য এএসসিআইআই এবং নিউলাইনগুলি (এটি বাইটস
0x20-0x7Eপাশাপাশি 0x0A) থাকবে - আপনার দ্বিতীয় প্রোগ্রামটি আপনার প্রথম থেকে বাইট বা UTF-8 টি অক্ষর দ্বারা রূপান্তরিত হয়েছে তা চয়ন করতে পারেন।
- দ্বিতীয় প্রোগ্রাম:
- কেস কিছু যায় আসে না , তাই
pErFectLy OKayআপনি চাইলে আপনার আউটপুট হতে পারে । - যেকোন পরিমাণ ট্রেলিং / শীর্ষস্থানীয় শ্বেতস্পেস (নিউলাইন, ট্যাব, স্পেসস) ঠিক আছে।
- দ্বিতীয় প্রোগ্রামটি প্রথমটির মতো একই ভাষা হওয়া উচিত, যদিও অগত্যা একই ফর্ম্যাটটি নয় (প্রোগ্রাম / ফাংশন)
- অতিরিক্ত বাক্যাংশগুলিতে মন্তব্যগুলির পরামর্শগুলি অন্তর্ভুক্ত করে আমি খুশি (যতক্ষণ না সেগুলি খুব কম না হয়)
- কেস কিছু যায় আসে না , তাই
- যেহেতু এটি কোড-গল্ফ , আপনার লক্ষ্য আপনার ভাষার সংক্ষিপ্ত উত্তর পাওয়া!
- দুই সপ্তাহের মধ্যে, আমি সংক্ষিপ্ততম ব্যাকহ্যান্ড উত্তরের জন্য 200 বন্টি দেব।
"---!---!"(বা যে কোনও স্ট্রিং যেখানে শেষ চরিত্রটি একাধিকবার প্রদর্শিত হবে)