2 বি এর জন্য দোভাষী লিখুন
আমি ডেভিড ক্যাট এর রহস্যময় ভাষা 2 বি পছন্দ করি, একটি টেপে মেমরি সঞ্চিত থাকে যেখানে প্রতিটি ঘর বাইটগুলির একটি পৃথক টেপ ('সাবট্যাপ') থাকে। এর জন্য দোভাষী লিখুন!
ভাষা নির্দিষ্টকরণ
অফিসিয়াল স্পেসিফিকেশন এখানে পাওয়া যাবে । এই স্পেসিফিকেশনের ক্ষেত্রে, "
ব্যাপ্তিটির একটি সংখ্যার অর্থ 0-9
( 0
ব্যাখ্যা করা হয় 10
), এবং এর _
অর্থ কোনও দৈর্ঘ্যের একটি স্ট্রিং। প্রতিটি কক্ষ পরিসীমাতে একটি মান সঞ্চয় করে 0-255
এবং ওভারফ্লো / আন্ডারফ্লো এটিকে বিএফ হিসাবে ঘিরে রাখে। (ধন্যবাদ @ মার্টিনব্যাটনার) সংখ্যায় পাঠ্য রূপান্তর করতে 0-255
, ASCII কোড ব্যবহার করুন । যেহেতু আমি এ সম্পর্কে কোনও বিস্তারিত সন্ধান করতে পারি না, তাই আমি বলতে যাচ্ছি যে টেপের দৈর্ঘ্য 255
ন্যূনতম হওয়া উচিত , তবে আপনি যদি অন্যথায় জানেন তবে দয়া করে সম্পাদনা করুন।
+-------------+----------------------------------------------------------------------------------------------------------------------------------------+
| Instruction | Description |
+-------------+----------------------------------------------------------------------------------------------------------------------------------------+
| 0 | Zeroes the current cell and clears the overflow/underflow flag. |
| { | If the current cell is zero, jump to the matching }. |
| } | A placeholder for the { instruction. |
| ( | Read a byte from the input stream and place it in the current cell. |
| ) | Write the value of the current cell to the console. |
| x | Store the value of the current cell in a temporary register. |
| o | Write the value of the temporary register to the console. |
| ! | If the last addition overflowed, add one to the current cell. If the last subtraction underflowed, subtract one from the current cell. |
| ? | Performs a binary NOT on the current cell. |
| +" | Adds an amount to the current cell. |
| -" | Subtracts an amount from the current cell. |
| ^" | Moves the subtape up a number of times. |
| V" | Moves the subtape down a number of times. |
| <" | Moves the tape left a number of times. |
| >" | Moves the tape right a number of times. |
| :_: | Defines a label of name _. |
| *_* | Jumps to a label of name _. |
| ~_~ | Defines a function of name _. |
| @_@ | Calls a function of name _. |
| % | Ends a function definition. |
| #_# | Is a comment. |
| [SPACE] | Is an NOP. |
| [NEWLINE] | Is treated as whitespace and removed. |
| [TAB] | Is treated as whitespace and removed. |
+-------------+----------------------------------------------------------------------------------------------------------------------------------------+
টেস্ট
+0+0+0+0+0+0+0+2)+0+0+9)+7))+3)-0-0-0-0-0-0-0-9)+0+0+0+0+0+0+0+0+7)-8)+3)-6)-8)-7-0-0-0-0-0-0)
আউটপুট করা উচিত Hello world!
+1:i:{()*i*}
cat
একটি নতুন লাইন ছাড়াই একটি প্রোগ্রামের বাছাই করুন ।
+1:loop:{@ReadChar@*loop*}@PrintHello@@WriteAll@(~ReadChar~(x-0-3<2o^1>1+1>1%~PrintHello~+0+0+0+0+0+0+0+2)-1+0+0+0)+7))+3)+1-0-0-0-0-0-0-0-0)%~WriteAll~<1x:reverse:{<1v1>1-1*reverse*}o-1:print:{-1<1)^1>1*print*}%
প্রথমে কোনও নাম গ্রহণ করা উচিত, তারপরে, প্রেসের উপর Return, আউটপুট করা উচিত Hello name
(যেখানে নামটি কী ইনপুটযুক্ত ছিল)।
এই প্রোগ্রামটির কৃতিত্ব ডেভিড ক্যাটকে দেয় ।
আমি একটি সম্পূর্ণ পরীক্ষা প্রোগ্রামে কাজ করছি।
বিধি
- স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ
- আপনার দোভাষীকে অবশ্যই মন্তব্যগুলি বাদে সমস্ত স্পেসিফিকেশন পূরণ করতে হবে, যা প্রয়োজনীয় নয়।
স্কোরিং
- এটি কোড-গল্ফ , তাই খুব কম বাইট জয়!
- -10 বাইট যদি আপনার দোভাষী মন্তব্য পরিচালনা করেন।
লিডারবোর্ড
নিয়মিত লিডারবোর্ড এবং ভাষার দ্বারা বিজয়ীদের একটি সংক্ষিপ্ত বিবরণ উভয়ই তৈরি করতে এখানে একটি স্ট্যাক স্নিপেট।
আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:
# Language Name, N bytes
N
আপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:
# Ruby, <s>104</s> <s>101</s> 96 bytes