এই চ্যালেঞ্জটিতে আপনি যে সহজ ভাষাটি তৈরি করেছি তার জন্য একজন অনুবাদক লিখতে চলেছেন। ভাষাটি একটি একক সংগ্রহকারী এ এর উপর ভিত্তি করে, দৈর্ঘ্যে হুবহু এক বাইট। প্রোগ্রামের শুরুতে, A = 0 এ ভাষাগুলির নির্দেশাবলী:
!
: বিপর্যয়
এই নির্দেশিকাটি কেবল সঞ্চয়ের প্রতিটি বিটকে উল্টে দেয়। প্রতিটি শূন্য এক হয়ে যায় এবং প্রতিটি শূন্য হয়ে যায়। সরল!
>
: শিফট ডানদিকে
এই নির্দেশিকাটি প্রতিটি জায়গায় এক জায়গায় ডান দিকে সরে যায়। বামতম বিটটি শূন্য হয়ে যায় এবং ডানদিকের বিটটি ফেলে দেওয়া হয়।
<
: শিফট বাম
এই নির্দেশটি প্রতিটি স্থানে এক জায়গায় বামে স্থানান্তরিত করে। ডানদিকের বিটটি শূন্য হয়ে যায় এবং বামদিকের বিটটি ফেলে দেওয়া হয়।
@
: নেব্বলগুলি অদলবদল করুন
এই নির্দেশটি নীচের চারটি বিট সহ এ এর শীর্ষ চারটি বিটকে অদলবদল করে। উদাহরণস্বরূপ, যদি A হয় 01101010
এবং আপনি কার্যকর করেন তবে @
A হবে 10100110
:
____________________
| |
0110 1010 1010 0110
|_______|
এটাই সব নির্দেশ! সরল, তাই না?
বিধি
- আপনার প্রোগ্রামের শুরুতে একবার ইনপুট গ্রহণ করতে হবে । এটি কোডের একটি লাইন হবে। এই না একটি ইন্টারেক্টিভ অনুবাদক! আপনি কেবল একবার ইনপুট গ্রহণ করতে পারেন এবং একবার লাইনটি কার্যকর হয়ে গেলে আবার শুরুতে লুপ করতে হবে না।
- আপনার প্রোগ্রাম অবশ্যই ইনপুট মূল্যায়ন করতে হবে। উপরে বর্ণিত প্রতিটি চরিত্র উপেক্ষা করা হয়।
- আপনার প্রোগ্রামটির পরে দশমিক হিসাবে সঞ্চয়ের শেষ চূড়ান্ত মানটি মুদ্রণ করা উচিত।
- বৈধ প্রোগ্রামিং ভাষার জন্য সাধারণ নিয়ম প্রযোজ্য।
- স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।
- এটি কোড-গল্ফ , ক্ষুদ্রতম বাইট গণনা জয়।
আপনার জমাগুলি পরীক্ষা করার জন্য এখানে কয়েকটি ছোট প্রোগ্রাম রয়েছে। তীরটি কোড হওয়ার আগে এটি প্রত্যাশিত ফলাফল হওয়ার পরে:
!
->255
!>>
->63
!<@
->239
!nop!&6*!
->255
উপভোগ করুন!
! -> 255
যে আমরা এখানে বাইট প্রতি 8 বিট ব্যবহার করব? প্রশ্নটি স্পষ্ট নয়।