কিউবিকালি হ'ল একটি মোটামুটি নতুন রহস্যময় ভাষা যা সমস্যার খুব নির্দিষ্ট উপসর্গের জন্য সংক্ষিপ্ত, গল্ফ জাতীয় উত্তর তৈরি করতে সক্ষম। এটি অনন্য যে এটি 3x3 রুবিকের কিউব আকারে মেমরি সঞ্চয় করে, বেশিরভাগ ভাষার তুলনায় গণনাগুলি অনেক কম তুচ্ছ করে তোলে। কিউবিকভাবে, প্রোগ্রামারে মুখের উপরে সঞ্চিত মানগুলি পরিচালনা করতে অবশ্যই অভ্যন্তরীণ ঘনকটি ঘোরানো উচিত, তারপরে সেই গণনাগুলিকে তাদের গণনায় ব্যবহার করতে হবে। "নোটপ্যাড" হিসাবে পরিচিত একটি কাল্পনিক মুখগুলিতে সঞ্চিত একক 32-বিট পূর্ণসংখ্যায় গণনা করা হয়। অতিরিক্তভাবে, কিউবিকালি ব্যবহারকারীর ইনপুটটির জন্য অনুরোধ করতে পারে এবং কেবলমাত্র একটি একক পূর্ণসংখ্যার মান সমন্বিত একটি ইনপুট বাফারে সংরক্ষণ করতে পারে।
ঘনক্ষেত্র
কিউবের মুখগুলি হ'ল ইউ পি, ডি নিজস্ব, এল ইফ্ট, আর ight , এফ রন্ট এবং বি এস্ক:
UUU
UUU
UUU
LLLFFFRRRBBB
LLLFFFRRRBBB
LLLFFFRRRBBB
DDD
DDD
DDD
যখন প্রোগ্রাম শুরু হয়, ঘনকটি এমনভাবে শুরু করা হয় যে সেই মুখের প্রতিটি বর্গটি সেই মুখের 0-ভিত্তিক সূচকের সমান হয়:
000
000
000
111222333444
111222333444
111222333444
555
555
555
যখনই কোনও মুখ ঘোরানো হয়, এটি সর্বদা ঘড়ির কাঁটার দিকে ঘোরানো হয়:
Cubically> F1
000
000
111
115222033444
115222033444
115222033444
333
555
555
কোনও মুখের মানটিকে সেই মুখের প্রতিটি বর্গের যোগফল হিসাবে সংজ্ঞায়িত করা হয়। উদাহরণস্বরূপ, উপরের কিউবে মুখের মান 0
3 হয়।
বাক্য গঠন
কমান্ডগুলি প্রথমে কমান্ডটি মেমোরিতে লোড করে কার্যকর করা হয়, তারপরে কমান্ডটি কার্যকর করার জন্য এটিতে আর্গুমেন্ট প্রদান করা হয়। উদাহরণস্বরূপ, কমান্ডটি F1
কমান্ডটি F
মেমোরিতে লোড করবে , তারপরে এটি যুক্তি দিয়ে কল করবে 1
। উপরন্তু, F13
কমান্ড লোড করা হবে F
মেমরিতে, তারপর যুক্তি দিয়ে একে ডাকতে 1
, তারপর যুক্তি দিয়ে একে ডাকতে 3
। কোনও অ-অঙ্কের অক্ষরকে একটি আদেশ হিসাবে বিবেচনা করা হয়, এবং কোনও অঙ্ককে আর্গুমেন্ট হিসাবে বিবেচনা করা হয়।
তোমার কাজ
আপনার কাজটি আপনার পছন্দসই ভাষায় কিউবিকের অভ্যন্তরীণ মেমরি ঘনককে বাস্তবায়ন করা। আপনার কোডটি ভাষার একটি খুব ছোট উপসেট কার্যকর করতে সক্ষম হওয়া উচিত।
কমান্ড
R
- নির্দিষ্ট সময়ের সংখ্যায় ঘনক্ষেত্রের ডান মুখ ঘোরান।L
- ঘনক্ষেত্রের বাম মুখটি নির্দিষ্ট সময়ের সংখ্যায় ঘোরান।U
- নির্দিষ্ট সময়ের সংখ্যার ঘড়ির কাঁটার উপরের মুখটি ঘোরান।D
- ঘনক ঘনক্ষেত্রের নীচের মুখটি নির্দিষ্ট সময়ের সংখ্যায় ঘোরান।F
- ঘনক্ষেত্রের সামনের মুখটি ঘড়ির কাঁটার দিক দিয়ে নির্দিষ্ট সময়ের জন্য নির্দিষ্ট সংখ্যাটি ঘোরান।B
- নির্দিষ্ট সময়ের সংখ্যার ঘনক্ষেত্রের পিছনের মুখটি ঘোরান।%
- প্রদত্ত মুখে মান আউটপুট করে। কোনও মুখের মান সেই মুখের সমস্ত স্কোয়ারের যোগফল হিসাবে সংজ্ঞায়িত করা হয়।
বিধি
- এই চ্যালেঞ্জটি কোনও প্রোগ্রাম লিখতে বা এই চ্যালেঞ্জটি সমাধানে সক্ষম ফাংশন লেখার জন্য পোস্ট করার তারিখের আগে বা তার পরে তৈরি কোনও ভাষা ব্যবহার করতে পারেন।
- ইনপুটটি STDIN এর মাধ্যমে স্ট্রিং হিসাবে বা একটি চরিত্রের অ্যারে হিসাবে (আপনার চয়ন করুন, দয়া করে নির্দিষ্ট করুন) মাধ্যমে পাস হবে।
- আউটপুটটি অবশ্যই STDOUT বা ফাংশনের আউটপুট হিসাবে পাস করতে হবে এবং এটি অবশ্যই একটি পূর্ণসংখ্যা, কেবল একটি সংখ্যাযুক্ত একটি স্ট্রিং বা অঙ্কের অ্যারে হতে হবে। যদি আপনার ভাষাটির জন্য আপনাকে একটি ট্রেলিং করা নতুন লাইন আউটপুট করতে হয় তবে আপনি এটি করতে পারেন।
- ইনপুট সবসময় নিম্নলিখিত বিন্যাসে হবে:
([UDLRFB]\d*)*%[0-5]
। ইনপুটটিতে কোনও সাদা জায়গা থাকবে না characters - এর ইনপুটটি
%
সর্বদা 0-ভিত্তিক সূচক ব্যবহার করবে।
এটি কোড-গল্ফ , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
পরীক্ষার কেস
%0 -> 0
%1 -> 9
%2 -> 18
%3 -> 27
%4 -> 36
%5 -> 45
R1%2 -> 27
RD3F2%5 -> 32
L1R23F1B5U9D2%3 -> 17
আরও পরীক্ষার ক্ষেত্রে টিআইও ইন্টারপ্রেটার পরীক্ষা করে দেখুন । যদি টিআইও কাজ না করে, আপনি পরিবর্তে লুয়া দোভাষী ব্যবহার করতে পারেন ।
4
মধ্যে R
এবং এর মধ্যে একাধিকটি মিস করেছেন ? D
RD3F2%5 -> 30