একটি ফ্লো স্নেক, যা গস্পার বক্র হিসাবে পরিচিত , এটি একটি ফ্র্যাক্টাল বক্ররেখা, একটি সাধারণ প্রক্রিয়ার প্রতিটি ক্রম / পুনরাবৃত্তির সাথে আকারে তাত্পর্যপূর্ণভাবে বৃদ্ধি পাচ্ছে। নীচে নির্মাণ সম্পর্কিত বিবরণ এবং বিভিন্ন আদেশের কয়েকটি উদাহরণ দেওয়া হল:
1 প্রবাহ সাপ অর্ডার করুন :
____
\__ \
__/
অর্ডার 2 ফ্লো সাপ :
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \
/ __ \__ \ \/
\ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
অর্ডার 3 ফ্লো সাপ :
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \ ____
/ __ \__ \ \/ / __ \__ \
____ \ \ \__/ / __ \/ / __/ / __
____ \__ \ \/ ____ \/ / __/ / __ \ \ \
\__ \__/ / __ \__ \__/ / __ \ \ \ \/
__/ ____ \ \ \__/ ____ \ \ \ \/ / __
/ __ \__ \ \/ ____ \__ \ \/ / __ \/ /
\ \ \__/ / __ \__ \__/ / __ \ \ \__/
\/ ____ \/ / __/ ____ \ \ \ \/ ____
\__ \__/ / __ \__ \ \/ / __ \__ \
__/ ____ \ \ \__/ / __ \/ / __/ / __
/ __ \__ \ \/ ____ \/ / __/ / __ \/ /
\/ / __/ / __ \__ \__/ / __ \/ / __/
__/ / __ \ \ \__/ ____ \ \ \__/ / __
/ __ \ \ \ \/ ____ \__ \ \/ ____ \/ /
\ \ \ \/ / __ \__ \__/ / __ \__ \__/
\/ / __ \/ / __/ ____ \ \ \__/
\ \ \__/ / __ \__ \ \/
\/ \ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
নির্মাণ
7 প্রান্ত এবং 8 টি শীর্ষ কোণ (নীচে লেবেলযুক্ত।
4____5____6
\ \
3\____2 7\
/
0____1/
এখন প্রতিটি পরবর্তী অর্ডারের জন্য, আপনি কেবলমাত্র মূল মূল 1 প্যাটার্নের ঘোরানো সংস্করণ দিয়ে প্রান্তগুলি প্রতিস্থাপন করুন। প্রান্তগুলি প্রতিস্থাপনের জন্য নিম্নলিখিত 3 টি নিয়ম ব্যবহার করুন:
1 একটি অনুভূমিক প্রান্তের জন্য, এটি মূল আকারের সাথে প্রতিস্থাপন করুন:
________
\ \
\____ \
/
____/
2 একটি /
প্রান্তের জন্য ( 12
উপরের নির্মাণে), নিম্নলিখিত ঘোরানো সংস্করণ দিয়ে এটি প্রতিস্থাপন করুন:
/
/ ____
\ / /
\/ /
/
____/
3 একটি \
প্রান্তের ( 34
এবং 67
উপরে) জন্য, এটি নীচের ঘোরানো সংস্করণ দিয়ে প্রতিস্থাপন করুন:
/
/ ____
\ \ \
\ \ \
\ /
\/
সুতরাং উদাহরণস্বরূপ, 1 লেবেলযুক্ত অর্ডার থেকে শীর্ষ 2 দিয়ে অর্ডার 2 এর মতো দেখাবে
________
\ \
________ \____ \6
\ \ / /
\____ \5___/ / ____
/ \ \ \
4___/ ________ \ \ \7
/ \ \ \ /
/ ____ \____ \2 \/
\ \ \ / /
\ \ \3___/ / ____
\ / \ / /
\/ ________ \/ /
\ \ /
\____ \1___/
/
0___/
এখন যে কোনও উচ্চতর অর্ডারের জন্য, আপনি কেবলমাত্র বর্তমান স্তরটি 1 /
, 1 \
বা 2 দৈর্ঘ্যের প্রান্তে বিভক্ত করুন _
এবং প্রক্রিয়াটি পুনরাবৃত্তি করুন। মনে রাখবেন যে প্রতিস্থাপনের পরেও, যে কোনও দুটি ধারাবাহিক প্রান্তের মধ্যে সাধারণ উল্লম্বগুলি এখনও মিলছে।
চ্যালেঞ্জ
- আপনাকে একটি সম্পূর্ণ প্রোগ্রামের একটি ফাংশন লিখতে হবে যা
N
STDIN / ARGV / ফাংশন আর্গুমেন্ট বা নিকটতম সমতুল্য হয়ে একটি একক পূর্ণসংখ্যা পায় এবং STDOUT এ অর্ডারN
ফ্লো সাপ প্রিন্ট করে । - ইনপুট পূর্ণসংখ্যা সবসময় এর চেয়ে বড়
0
। - এমন কোনও শীর্ষস্থানীয় স্থান থাকা উচিত যা প্যাটার্নের অংশ নয়।
- সর্বনিম্ন বাউন্ডিং আয়তক্ষেত্রটি সম্পূর্ণরূপে পূরণ করার জন্য প্যাটার্নটি প্যাড করার জন্য কোনও ট্রেলিং স্পেস বা পর্যাপ্ত পরিমাণ ট্রেলিং স্পেস থাকতে হবে না।
- ট্রেলিং নিউলাইন optionচ্ছিক।
মজার ঘটনা
- ফ্লো সাপ হ'ল স্নো ফ্লেক্সের একটি শব্দ খেলা, যা এই প্যাটার্নটি 2 বা তদুর্ধের ক্রমের সাথে সাদৃশ্যপূর্ণ
- প্যাটার্নটি জুড়ে প্রবাহিত একক পথ দিয়ে তৈরি হওয়ায় প্রকৃতপক্ষে প্রবাহ এবং সাপগুলি প্যাটার্নে একটি অংশ খেল।
- আপনি যদি যত্ন সহকারে লক্ষ্য করেন, ক্রম 2 (এবং উচ্চতর পাশাপাশি) প্যাটার্নটিতে ক্রম 1 এবং প্যাটার্নের ঘূর্ণনগুলি বর্তমান এবং পূর্ববর্তী প্রান্তের সাধারণ ভার্টেক্সে আঁকা রয়েছে।
- ফ্লো সাপের একটি নন এএসসিআইআই বৈকল্পিক রয়েছে যা এখানে এবং অন্যান্য বেশ কয়েকটি স্থানে পাওয়া যাবে ।
এটি কোড-গল্ফ তাই বাইট জিতে সংক্ষিপ্ততম কোড!
লিডারবোর্ড
সিরিজের প্রথম পোস্টটি লিডারবোর্ড উত্পন্ন করে।
আপনার উত্তরগুলি প্রদর্শিত হবে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে প্রতিটি উত্তর শিরোনাম দিয়ে শুরু করুন:
# Language Name, N bytes
N
আপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:
# Ruby, <s>104</s> <s>101</s> 96 bytes