প্রোগ্রামার হওয়া, আমাদের ফ্লেক্স দেখা খুব আকর্ষণীয় নয়। আজ আমরা যে পরিবর্তন! এই চ্যালেঞ্জটিতে আপনি লেক্স এবং হেক্সাফ্লেক্সাগনগুলিকে ফ্লেক্স করবেন।
সম্পর্কিত
একটি ভিডিও সূচনার জন্য , ফ্লেক্সাগনগুলিতে ভাইহার্ট ভিডিও (গুলি) দেখুন
ফ্লেক্সাগন এমন একটি আকৃতি যা আপনি উপরের এবং নীচের অংশের বাইরে অন্য মুখগুলি প্রকাশ করতে নমনীয় করতে পারেন; আমরা একটি হেক্সাহেেক্সাফ্লেক্সন তৈরি করছি, যার 6 টি মুখ রয়েছে। কাগজের স্ট্রিপ থেকে কীভাবে একটি হেক্সাহেেক্সাফ্লেক্সনকে ভাঁজ করতে হবে তার নীচের চিত্রটি দেখুন।
A
ফালা উভয় পক্ষ দেখায়। দুটি সাদা ত্রিভুজ একসাথে আটকানো হয়। এইভাবে আপনি এটি নমনীয় হবে:
নীচে সম্ভাব্য রাজ্য এবং তাদের সম্পর্কের একটি চিত্র রয়েছে:
রঙিন চেনাশোনাগুলি প্রথম চিত্র থেকে একই সংখ্যা সহ 6 ত্রিভুজ উপস্থাপন করে। প্রত্যেকটি সিরের দুটি রঙ রয়েছে - নীচের অংশটি বেশিরভাগটি পিছনের মুখটিকে উপস্থাপন করে (আপনি যদি দেখতে চান যে আপনি যেখানে আপনার ফ্লেক্সাগনটি ঘুরে দেখছেন), যা আপনাকে এই চ্যালেঞ্জটিতে বিবেচনা করতে হবে না।
ব্যাকগ্রাউন্ডে ধূসর চেনাশোনা প্রতিনিধিত্ব কিভাবে আপনি কোনো রাজ্যের আপনার flexagon আনমন করতে পারেন: এটা আনমন 4 বিভিন্ন উপায় আছে, আমরা এই কল Left
, Right
, Up
এবং Down
। আপনি এই দিকগুলিতে আসলে নমনীয় হন না, গুরুত্বপূর্ণ বিষয়টি হ'ল কিছু কিছু একে অপরের বিপরীতে থাকে।
আপনি যদি কেন্দ্রে থাকেন তবে আপনি ব্যবহার করতে পারেন Left
এবং Right
অন্য কেন্দ্রে যেতে পারেন। কেন্দ্র থেকে বেরিয়ে আসতে আপনি Up
এবং ব্যবহার করেন Down
। আপনি যদি কেন্দ্রে না থাকেন তবে আপনি ব্যবহার করতে পারবেন নাLeft
বা Right
।
Left/Down = clockwise
Right/Up = anti-clockwise
চ্যালেঞ্জ
একটি ফাংশন বা প্রোগ্রাম তৈরি করুন যা 18 সামনের মুখ এবং 18 ফ্লেক্সাগনের 18 পিছনের মুখগুলি, বাম, ডান, উপরে এবং নীচে ফ্লেক্সগুলির ক্রম থাকা উচিত এবং ইনফ্লেক্সগুলির পরে 8 দৃশ্যমান মুখগুলি ফিরিয়ে আনুন input
বিস্তারিত উদাহরণ গণনা:
flex "hexaflexaperplexia"
"flexagationdevices"
[Right, Right, Left]
Divide a strip of paper into 18 triangles:
1/2\3/1\2/3\1/2\3/1\2/3\1/2\3/1\2/3 Front
4/4\5/5\6/6\4/4\5/5\6/6\4/4\5/5\6/6 Back
Write "hexaflexaperplexia" on the front of the paper strip:
1/2\3/1\2/3\1/2\3/1\2/3\1/2\3/1\2/3
hexaflexaperplexia
123123123123123123
h a e p p x Face 1, Initially the front face
e f x e l i Face 2, Initially the back face
x l a r e a Face 3, Initially hidden
Write "flexagationdevices" on the back of the paperstrip:
4/4\5/5\6/6\4/4\5/5\6/6\4/4\5/5\6/6
flexagationdevices
445566445566445566
fl at ev Face 4, up from 3
ex io ic Face 5, up from 2
ag nd es Face 6, up from 1
Flex it [Right, Right, Left]
The initial visible face is 1: "haeppx"
flexing Right ..
The current visible face is 2: "efxeli"
flexing Right ..
The current visible face is 3: "xlarea"
flexing Left ..
The current visible face is 2: "efxeli"
flexed [Right, Right, Left]!
outputting "efxeli"
উদাহরণ প্রয়োগ: http://jdoodle.com/a/18A
ইনপুট এবং প্রত্যাশিত আউটপুট:
> hexaflexaperplexia flexagationdevices RRL
= efxeli
> loremipsumdolorsit hexaflexamexicania RUU
= riuort
> abcdefghijklmnopqr stuvwxyz1234567890 UL
= I can't flex that way :(
> abcdefghijklmnopqr stuvwxyz1234567890 RRRRLLUDDUUUULDD
= uv1278
বিধি
- আপনি কোনও যুক্তিসঙ্গত উপায়ে ইনপুট এবং রিটার্ন আউটপুট নিতে পারেন
- যদি ইনপুটটি অসম্ভব হয় তবে আপনার এমন কোনওভাবে নির্দেশ করা উচিত যা নিয়মিত আউটপুট থেকে পৃথক
- স্ট্যান্ডার্ড লুফোলস প্রযোজ্য
- এই
Codegolf
। বাইট জিতে সংক্ষিপ্ত কোড।
|b/=0=[]!!1
? আপনি পয়েন্টফ্রি শৈলীতে কিছু ফাংশন পুনর্লিখন কয়েক বাইট সংরক্ষণ করতে পারেন:\(a,_)(b,_)->a==b
->(.fst).(==).fst
,(!)=(q.).zip.cycle