এই চ্যালেঞ্জের জন্য একটি পুরস্কার হল ais523 জন্য বিজয়ী " বছরের সেরা সৈন্য " বিষয়শ্রেণীতে অন্তর্ভুক্ত " PPCG 2016 এর শ্রেষ্ঠ "। অভিনন্দন!
ব্যাকফ্লিপ ব্যবহারকারী আইস 523 দ্বারা তৈরি একটি রহস্যময় প্রোগ্রামিং ল্যাঙ্গুয়েজ , যিনি 30 টিরও বেশি আকর্ষণীয় esolangs ভাল তৈরি করেছেন ।
ব্যাকফ্লিপটি বেফুঞ্জ বা > <> এর মতো একটি 2D ভাষা যেখানে নির্দেশিকা পয়েন্টারটি যে অক্ষরটি চলছে তার উপর নির্ভর করে দিক, পরিবর্তন, উপরে, নীচে, বাম এবং ডানদিকে সরানো, পাঠ্যের একটি গ্রিড (প্রোগ্রাম) সরিয়ে দেয়। সমালোচকদের, একটি BackFlip প্রোগ্রামে গ্রিড পরিবর্তন যেমন ভেদকরেখার হচ্ছে, মত একটি বিট Langton এর অ্যান্ট ।
এই চ্যালেঞ্জের জন্য আপনি ধরে নিতে পারেন যে ব্যাকফ্লিপ প্রোগ্রামটি সর্বদা পাঠ্যের একটি আয়তক্ষেত্রাকার গ্রিড (সমস্ত লাইন একই দৈর্ঘ্য), সর্বনিম্ন আকারে 1 size 1 থাকে, কেবলমাত্র অক্ষর থাকে ./\<>^V
। ( .
স্থানের পরিবর্তে দৃশ্যমানতার জন্য ব্যবহৃত হয়)) শব্দার্থগতভাবে আমরা এখানে ব্যাকফ্লিপটি ব্যবহার করব এটি মূল বৈশিষ্টের মতো ident ।
ব্যাকফ্ল্যাপে নির্দেশিকা পয়েন্টার (আইপি) সর্বদা প্রোগ্রামের উপরের-বাম কোণে ডানদিকের শিরোনামে শুরু হয়। এটির তিন ধরণের আদেশ রয়েছে যার মুখোমুখি হতে পারে:
.
একটি অপ- অপ হয়। আইপিটি যেদিকে যাচ্ছিল সে দিকে চালিয়ে যায়। নো-অপশন কোনও অপ-আপ থাকে।/
এবং\
আয়না হয়। তারা তাদের কোণ দ্বারা নির্দেশিত আইপি প্রতিফলিত করে, তারপর তারা অন্য ধরণের আয়নাতে পরিবর্তিত হয় ।- উদাহরণস্বরূপ, আইপি যদি একটিতে রেখে যায় তবে
\
এটি বামের পরিবর্তে উপরের দিকে অগ্রসর হতে শুরু করে এবং এটি\
একটি হয়ে যায়/
।
- উদাহরণস্বরূপ, আইপি যদি একটিতে রেখে যায় তবে
<
,>
,^
, এবংV
তীর হয়। তারা আইপিটিকে যে দিকে নির্দেশ করেছে সে দিকে পুনর্নির্দেশ করে, তারপরে তারা একটি তীরতে পরিবর্তিত হয় যা আইপিটি যে দিক থেকে এসেছিল নির্দেশ করে (আইপিটি যে দিকে চলছিল তার বিপরীতে) ।- উদাহরণস্বরূপ, আইপি যদি নীচের দিকে চলে যায় তবে এটি নীচের
>
দিকে ডানদিকে চলতে শুরু করে এবং আইপিটি যে দিক থেকে এসেছিল সে কারণ>
হয়ে যায়^
।
- উদাহরণস্বরূপ, আইপি যদি নীচের দিকে চলে যায় তবে এটি নীচের
একটি ব্যাকফ্ল্যাপ প্রোগ্রাম সমাপ্ত হয় যখন আইপি সীমার বাইরে চলে যায়, অর্থাত্ গ্রিড বন্ধ হয়ে যায়। এটি সব দেখা যাচ্ছে ব্যাকফ্ল্যাপ প্রোগ্রামগুলি অবশেষে শেষ হয় কারণ অসীম লুপগুলি অসম্ভব। (আপনি ধরে নিতে পারেন এটি সত্য।)
এই চ্যালেঞ্জের আপনার লক্ষ্যটি এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা ব্যাকফ্লিপ প্রোগ্রামে লাগে এবং প্রোগ্রামটি শেষ হওয়ার আগে নির্দেশ পয়েন্টারটির যে সংখ্যাটি চালিয়ে যায় তার আউটপুট দেয়। এটাই, কোনও প্রোগ্রাম চালানোর সময় আইপি কত পদক্ষেপ গ্রহণ করে? এর মধ্যে গ্রিডের প্রাথমিক পদক্ষেপ এবং এর চূড়ান্ত পদক্ষেপ অন্তর্ভুক্ত রয়েছে।
উদাহরণস্বরূপ, নির্দেশ পয়েন্টারটি তুচ্ছ গ্রিডে 5 টি পদক্ষেপ নেয় ....
:
.... <- empty 4×1 grid
012345 <- step number of the IP
সুতরাং আউটপুট ....
হয় 5
।
আরও জটিল 4 × 2 গ্রিডে
\...
\.><
আইপি তার নবম ধাপে গ্রিড থেকে প্রস্থান করে, তাই আউটপুটটি হ'ল 9
:
step grid IP position (@)
0 \... @....
\.>< ....
1 \... @...
\.>< ....
2 /... ....
\.>< @...
3 /... ....
/.>< .@..
4 /... ....
/.>< ..@.
5 /... ....
/.<< ...@
6 /... ....
/.<< ..@.
7 /... ....
/.>< .@..
8 /... ....
/.>< @...
9 /... ....
\.>< ....
@
বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।
আপনি চাইলে মাল্টলাইন স্ট্রিংয়ের পরিবর্তে লাইনগুলির অক্ষরের ম্যাট্রিক্স বা ম্যাট্রিক্স হিসাবে ইনপুট নিতে পারেন, তবে আপনাকে অবশ্যই অক্ষরগুলি ব্যবহার করতে হবে ./\<>^V
(পূর্ণসংখ্যার অপকড নয়)। আপনি .
পছন্দ হলে পরিবর্তে স্থান ব্যবহার করতে পারেন । চরিত্রগুলি পছন্দ করলে এটি ঠিক আছে\
যদি ইনপুট থেকে পালাতে হয় তবে তা ঠিক। আউটপুট সর্বদা একের বেশি একটি পূর্ণসংখ্যা হয়।
পরীক্ষার কেস
....
5
\...
\.><
9
.
2
..
3
.
.
2
\
2
^
2
.^.
3
<.
2
\\
\/
7
>V
^<
6
>\
>/
6
\><
2
\><
\><
7
\><
\><
\><
12
\.V.
\.\<
5
\.V.
\./<
9
V./\
V./\
>./<
..\/
14
\V..
.^..
\/><
.V..
.^..
20
\.V.V.
\./.\<
.>\<..
..^.^.
31
\.V.V.V.
\./>/.\<
.>\>\<..
..^.^.^.
69
\.V.V.V.V.
\./>/>/.\<
.>\>\>\<..
..^.^.^.^.
145
\.V.V.V.V.V.V.V.V.V.V.
\./>/>/>/>/>/>/>/>/.\<
.>\>\>\>\>\>\>\>\>\<..
..^.^.^.^.^.^.^.^.^.^.
9721
/
শিরোনামে আইপি উপরে উঠবে এবং উপরের দিকে যেতে শিরোনাম /
আইপিটি ডানদিকে যাবে, যেন এটি কোনও প্রাচীরের উপরের দিকে ঝাঁকানো বল। (তবে /
আইপিটি স্পর্শ করার পরে ব্যাকস্ল্যাশের পরিবর্তনগুলি মনে রাখবেন ))