एक प्रवाह नाग, यह भी एक Gosper वक्र रूप में जाना जाता है, एक भग्न वक्र, एक सरल प्रक्रिया के प्रत्येक आदेश / यात्रा के साथ आकार में तेजी से बढ़ रही है। निर्माण के बारे में विवरण और विभिन्न आदेशों के लिए कुछ उदाहरण नीचे दिए गए हैं:
ऑर्डर 1 फ्लो स्नेक :
____
\__ \
__/
ऑर्डर 2 फ्लो स्नेक :
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \
/ __ \__ \ \/
\ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
आदेश 3 प्रवाह नाग :
____
____ \__ \
\__ \__/ / __
__/ ____ \ \ \ ____
/ __ \__ \ \/ / __ \__ \
____ \ \ \__/ / __ \/ / __/ / __
____ \__ \ \/ ____ \/ / __/ / __ \ \ \
\__ \__/ / __ \__ \__/ / __ \ \ \ \/
__/ ____ \ \ \__/ ____ \ \ \ \/ / __
/ __ \__ \ \/ ____ \__ \ \/ / __ \/ /
\ \ \__/ / __ \__ \__/ / __ \ \ \__/
\/ ____ \/ / __/ ____ \ \ \ \/ ____
\__ \__/ / __ \__ \ \/ / __ \__ \
__/ ____ \ \ \__/ / __ \/ / __/ / __
/ __ \__ \ \/ ____ \/ / __/ / __ \/ /
\/ / __/ / __ \__ \__/ / __ \/ / __/
__/ / __ \ \ \__/ ____ \ \ \__/ / __
/ __ \ \ \ \/ ____ \__ \ \/ ____ \/ /
\ \ \ \/ / __ \__ \__/ / __ \__ \__/
\/ / __ \/ / __/ ____ \ \ \__/
\ \ \__/ / __ \__ \ \/
\/ \ \ \__/ / __
\/ ____ \/ /
\__ \__/
__/
निर्माण
7 किनारों और 8 कोने (नीचे लेबल) युक्त पथ के निर्माण के लिए ऑर्डर 1 फ्लो स्नेक पर विचार करें। व्यवहार्यता के लिए बढ़े हुए:
4____5____6
\ \
3\____2 7\
/
0____1/
अब प्रत्येक अगले आदेश के लिए, आप किनारों को इस मूल क्रम 1 पैटर्न के घुमाए गए संस्करण से बदल देंगे। किनारों को बदलने के लिए निम्नलिखित 3 नियमों का उपयोग करें:
1 एक क्षैतिज किनारे के लिए, इसे मूल आकार के साथ बदलें:
________
\ \
\____ \
/
____/
2 एक /
किनारे के लिए ( 12
उपरोक्त निर्माण में), इसे निम्न घुमाए गए संस्करण से बदलें:
/
/ ____
\ / /
\/ /
/
____/
3 एक \
किनारे के लिए ( 34
और 67
ऊपर), इसे निम्नलिखित घुमाए गए संस्करण के साथ बदलें:
/
/ ____
\ \ \
\ \ \
\ /
\/
उदाहरण के लिए, ऑर्डर 1 लेबल से कोने के साथ क्रम 2 जैसा दिखेगा
________
\ \
________ \____ \6
\ \ / /
\____ \5___/ / ____
/ \ \ \
4___/ ________ \ \ \7
/ \ \ \ /
/ ____ \____ \2 \/
\ \ \ / /
\ \ \3___/ / ____
\ / \ / /
\/ ________ \/ /
\ \ /
\____ \1___/
/
0___/
अब किसी भी उच्च क्रम के लिए, आप वर्तमान स्तर को लंबाई 1 /
, 1 \
या 2 के किनारों में तोड़ते हैं _
और प्रक्रिया को दोहराते हैं। ध्यान दें कि प्रतिस्थापित करने के बाद भी, किसी भी दो लगातार किनारों के बीच के सामान्य कोने अभी भी मेल खा रहे हैं।
चुनौती
- आपको एक पूर्ण कार्यक्रम का एक फ़ंक्शन लिखना होगा जो
N
STDIN / ARGV / फ़ंक्शन तर्क के माध्यम से एक पूर्णांक प्राप्त करता है या निकटतम समकक्ष औरN
STDOUT पर ऑर्डर फ़्लो स्नेक को प्रिंट करता है । - इनपुट पूर्णांक हमेशा से अधिक होता है
0
। - कोई भी अग्रणी स्थान नहीं होना चाहिए जो पैटर्न का हिस्सा नहीं हैं।
- न्यूनतम बाउंडिंग आयत को पूरी तरह से भरने के लिए पैटर्न को पैड करने के लिए या तो कोई अनुगामी स्थान या पर्याप्त अनुगामी स्थान नहीं होना चाहिए।
- अनुगामी न्यूलाइन वैकल्पिक है।
मजेदार तथ्य
- फ्लो स्नेक स्नो फ्लेक्स का एक शब्द प्ले है, जो यह पैटर्न ऑर्डर 2 और इसके बाद के संस्करण जैसा दिखता है
- फ्लो और स्नेक्स वास्तव में पैटर्न में एक भूमिका निभाते हैं क्योंकि पैटर्न पूरे एकल प्रवाह से बना होता है।
- यदि आप ध्यान से देखते हैं, तो क्रम 2 (और उच्चतर) पैटर्न में वर्तमान 1 पैटर्न के घुमाव शामिल होते हैं जो वर्तमान और पिछले किनारे के आम शीर्ष पर होते हैं।
- फ्लो स्नेक का एक नॉन ASCII वैरिएंट है जो यहां और कई अन्य स्थानों पर पाया जा सकता है ।
यह बाइट्स जीत में कोड-गोल्फ इतना छोटा कोड है!
लीडरबोर्ड
श्रृंखला की पहली पोस्ट एक लीडरबोर्ड उत्पन्न करती है।
यह सुनिश्चित करने के लिए कि आपके उत्तर दिखाए गए हैं, कृपया प्रत्येक मार्कलाइन के साथ निम्नलिखित मार्केड टेम्प्लेट का उपयोग करके प्रत्येक उत्तर को शुरू करें:
# Language Name, N bytes
N
आपके सबमिशन का आकार कहां है। यदि आप अपने स्कोर में सुधार करते हैं, तो आप पुराने अंकों को हेडलाइन में रख सकते हैं , उनके माध्यम से स्ट्राइक करके। उदाहरण के लिए:
# Ruby, <s>104</s> <s>101</s> 96 bytes