ভূমিকা
আমার কাছে প্রচুর ASCII শিলা রয়েছে। এগুলি ড্যাশ, পাইপ, বনাম, কেরেটস, কোণ বন্ধনী, স্ল্যাশ এবং স্পেস দিয়ে নির্মিত। উদাহরণ:
/--\
| |
| |
\--/
আমি এগুলি এড়াতে চাই:
/\
/ \
\ /
\/
কোণে সব গোল হয়ে গেছে। আরও জটিল উদাহরণ:
/----\
| \------\
| |
| |
\------------/
/--\
/ \------\
| \
\ /
\----------/
আরেকটি ক্ষয়ের পরে তা হয়ে উঠত
/\
/ \------\
< \
\ /
\--------/
এবং অন্য:
/\------\
< \
\ /
\------/
চ্যালেঞ্জ
আপনার চ্যালেঞ্জটি এমন একটি প্রোগ্রাম লিখুন যা একবারে কোনও ইনপুট ক্ষয় করতে পারে। আপনি ধরে নিতে পারেন যে কেবলমাত্র একটি শিলা রয়েছে এবং আপনি ধরে নিতে পারেন এটি একটি বন্ধ লুপ। ইনপুটটিতে কেবল অক্ষর থাকবে /\ -| <> ^V \nএবং একটি আয়তক্ষেত্র তৈরি করতে পিছনে স্থান থাকবে। প্রোগ্রামটি হয় STDIN এবং আউটপুট থেকে STDOUT এ ইনপুট পেতে পারে বা কোনও ফাংশন হতে পারে। প্রতিটি সারির শেষে একটি নতুন লাইন চরিত্র। ক্ষয় অবশ্যই নীচে বর্ণিত বিধিগুলি অনুসরণ করবে (দ্রষ্টব্য: উদাহরণগুলিতে শিলাটি সম্পন্ন হয়নি, এটি ব্যাখ্যা করার জন্য সহজ)। আউটপুট অবশ্যই ইনপুট হিসাবে একই আকারে, ইনপুট হিসাবে একই আকারে থাকতে হবে। তবে পিছনের জায়গাগুলি বাদ দেওয়া যেতে পারে।
স্ল্যাশগুলি পাইপলাইন এবং ড্যাশগুলিতে ছড়িয়ে পড়বে এবং জুড়ে চলে যাবে।
/---
|
|
/--
/
|
/-
/
/
যদি দুটি স্ল্যাশ একসাথে একত্রিত হয় তবে উপযুক্ত চরিত্রটি বাইরে <>^Vব্যবহার করা হবে।
/-----\
| |
| |
| |
\-----/
/---\
/ \
| |
\ /
\---/
/-\
/ \
< >
\ /
\-/
^
/ \
< >
\ /
V
শিলার একটি অংশ যদি মার্জ করতে পারে তবে তা হবে। দ্রষ্টব্য: যদি একটি অংশ একীভূত করতে পারে তবে অন্যটি (উদাহরণস্বরূপ, /\দ্বিতীয় পংক্তিতে) মার্জ করতে না পারে, তবে যেটি একীভূত করতে পারে সেটি (উদাহরণটি দেখুন)।
/\
/\-^-/\-/ \--
|
<
|
/
\
|
/
/
\
\
|
|
/-------/\--
/
|
|
|
|
|
|
/
\
|
|
|
অবশেষে, সমস্ত শিলা কিছুই হয়ে যাবে না।
<> ^ /\
V \/
পরীক্ষার মামলা
পরীক্ষা 1:
/----\
| \------\
| |
| |
\------------/
/--\
/ \------\
| \
\ /
\----------/
/\
/ \------\
< \
\ /
\--------/
/\------\
< \
\ /
\------/
/-----\
< \
\ /
\----/
/---\
< \
\ /
\--/
/-\
< \
\ /
\/
^
< \
\/
পরীক্ষা 2:
/----\
| |
| |
| |
| |
\----/
/--\
/ \
| |
| |
\ /
\--/
/\
/ \
/ \
\ /
\ /
\/
/\
/ \
\ /
\/
/\
\/
পরীক্ষা 3:
^ /\
/\--/\--/ \--/ \-\
\ |
| |
/ |
\ |
| |
| |
/ |
< |
\ |
| |
| |
/ |
/ |
\ |
\-----------------/
/-------^----/\-\
/ \
| |
| |
| |
| |
| |
| |
< |
| |
| |
| |
| |
/ |
\ /
\---------------/
/-------------\
/ \
/ \
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
\ /
\ /
\-------------/
/-----------\
/ \
/ \
/ \
| |
| |
| |
| |
| |
| |
| |
| |
\ /
\ /
\ /
\-----------/
/---------\
/ \
/ \
/ \
/ \
| |
| |
| |
| |
| |
| |
\ /
\ /
\ /
\ /
\---------/
/-------\
/ \
/ \
/ \
/ \
/ \
| |
| |
| |
| |
\ /
\ /
\ /
\ /
\ /
\-------/
/-----\
/ \
/ \
/ \
/ \
/ \
/ \
| |
| |
\ /
\ /
\ /
\ /
\ /
\ /
\-----/
/---\
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\---/
/-\
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
\ /
\-/
^
/ \
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
/ \
\ /
\ /
\ /
\ /
V
^
/ \
/ \
/ \
\ /
\ /
\ /
V
^
/ \
/ \
\ /
\ /
V
^
/ \
\ /
V
^
V
স্কোরিং
এটি কোড-গল্ফ , তাই বাইটের স্বল্প সংখ্যক প্রোগ্রাম সহ প্রোগ্রামটি!
স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়।
"\x20\x20\x20\x20\x20\x20/\\\n/-\\\x20\x20/\x20\x20\\-\\\n|\x20\x20\\/\x20\x20\x20\x20\x20|\n\\---------/\n"