आप छोटे भग्न प्रोग्राम बना सकते हैं, जिसमें सबसे छोटा प्रोग्राम लिखें। आप किसी भी विधि का उपयोग कर सकते हैं जो आपको लगता है कि नीचे दिए गए नियमों के समान परिणाम उत्पन्न करता है। आपको सुझाए गए तरीकों से किसी भी विचार का उपयोग करने की आवश्यकता नहीं है!
आपका प्रोग्राम दो इनपुट लेगा, पहला पैटर्न 074
को 0 से 7. तक तीन अंकों से बने प्रारूप में परिभाषित करना । दूसरा इनपुट आकार को परिभाषित 3
करेगा, 8x8 4
होगा , 16x16 और इसी तरह (2 ^ n) होगा। आपके प्रोग्राम को 0 (1x1) से सभी आकारों के लिए कम से कम 5 (32x32) के लिए सही परिणाम प्राप्त करना चाहिए। यदि यह उच्च संख्या के लिए कोई भी आउटपुट उत्पन्न करता है तो यह सही होना चाहिए, अर्थात यह एक निश्चित आकार तक सही आउटपुट का उत्पादन करता है, लेकिन यदि यह गलत होगा तो उस आकार के ऊपर कोई आउटपुट नहीं उत्पन्न करता है। आप अधिकतम 15 (32768x32768) आकार मान सकते हैं, क्योंकि ASCII कला (1GB) के लिए पहले से ही एक पागल आकार है!
8x8 पैटर्न नीचे (नियम 160
) जैसा कुछ दिखेगा । बाएं सबसे अधिक अंक ब्लॉक के लिए होगा A
, ब्लॉक के लिए मध्य अंक (कोई अशिष्ट विचार कृपया!) B
और ब्लॉक के लिए सबसे सही अंक होगा C
। भग्न का निर्माण करने के लिए, इसे दोनों आयामों में आधे से छोटा करें, और ब्लॉक के लिए रोटेशन / मिररिंग नियम लागू करें। पैटर्न को छोटा करने के लिए इसे 2x2 क्षेत्रों में समान रूप से विभाजित करें। प्रत्येक क्षेत्र में या तो 3 दृश्य वर्ण होंगे या कोई भी नहीं होगा। यदि दिखाई देने वाले वर्ण छोटे ब्लॉक में उचित स्थान पर एक वर्ण रखते हैं, तो एक स्थान रखें। नियम 0
- 3
दर्पण नहीं हैं, नियम 4
- 7
दर्पण हैं। नियम 0
और 4
घुमाए नहीं जाते हैं, 1
और 5
90 डिग्री पर दक्षिणावर्त घुमाए जाते हैं, 2
और6
180 डिग्री घुमाए जाते हैं, 3
और 7
270 डिग्री दक्षिणावर्त घुमाए जाते हैं। दिखाए गए क्रम में तीन ब्लॉकों को एक साथ सिलाई करें, A
ऊपर-बाएँ कोने में, B
नीचे-बाएँ और C
नीचे-दाएँ।
AAA
AA A
AA
A
BBB CC
B BBC
BBCCC
B CCC
नियम क्रमांक द्वारा सिकुड़ा, घुमाया और प्रतिबिंबित:
0 1 2 3 4 5 6 7
---- ---- ---- ---- ---- ---- ---- ----
AA BAA CCB C C BCC AAB AA
A BB A CBB CC CC BBC A BB A
BBC CC A A BB BB A A CC CBB
BCC C AA AAB BAA AA C CCB
नियम:
- प्रतिबिंबित नहीं, 90 डिग्री पर घुमाया गया
- प्रतिबिंबित नहीं, घुमाया गया 180 डिग्री दक्षिणावर्त
- प्रतिबिंबित नहीं, 270 डिग्री घुमाया गया
- मिरर किया लेकिन घुमाया नहीं गया
- मिरर किया गया तो 90 डिग्री दक्षिणावर्त घुमाया गया
- मिरर किया गया तो 180 डिग्री दक्षिणावर्त घुमाया गया
- मिरर किया गया तो 270 डिग्री दक्षिणावर्त घुमाया गया
- नियम ०: दर्पण नहीं, घुमाया नहीं गया
मिररिंग हमेशा पहले किया जाता है और तिरछे कोने के माध्यम से किया जाता है जैसे नियम 0 बनाम नियम 4:
0 4
---- ----
AA / C /
A / CC/
BBC BB A
/BCC /BAA
केवल नियम 1
, 6
और 0
उस क्रम में उपरोक्त पैटर्न में उपयोग किए जाते हैं। परिवर्तनों के लागू होने के बाद और एक साथ सिले हुए ब्लॉक नीचे की तरह दिखेंगे, सिवाय इसके कि मैं एक-एक स्थान से प्रत्येक ब्लॉक को एक-दूसरे से अलग कर दूं। आपके कोड में यह अतिरिक्त स्थान नहीं होगा। यदि आप इसकी तुलना "माता-पिता" की छवि से करते हैं, तो आप देखेंगे कि इसमें समान पदों पर दृश्यमान अक्षर हैं।
BAA
BB A
CC
C
AAB AA
A BB A
CC BBC
C BCC
सिकुड़ने के बिना छवि उत्पन्न करने का दूसरा तरीका इस प्रकार है: एक वर्ण से शुरू करें:
X
तीनों ब्लॉकों में से प्रत्येक के लिए परिवर्तनों को लागू करें (क्योंकि यह केवल एक चरित्र है) और ब्लॉकों को एक साथ सिलाई करें:
X
XX
तीन ब्लॉकों में से प्रत्येक के लिए परिवर्तनों को फिर से लागू करें:
1
--
XX
X
6 0
-- --
XX X
X XX
उन्हें एक साथ सिलाई करें:
XX
X
XXX
XXX
तीन ब्लॉकों में से प्रत्येक के लिए परिवर्तनों को फिर से लागू करें:
1
----
XXX
XX X
XX
X
6 0
---- ----
XXX XX
X XX X
XX XXX
X XXX
उन्हें एक साथ सिलाई करें:
XXX
XX X
XX
X
XXX XX
X XXX
XXXXX
X XXX
आप पैटर्न के दृश्य भाग के लिए किसी भी मुद्रण योग्य वर्ण या वर्ण (0x21 - 0x7E) का उपयोग कर सकते हैं, लेकिन केवल रिक्त स्थान के लिए वर्ण (0x20)। अनुगामी रिक्त स्थान की अनुमति है, लेकिन पूरे वर्ग के बाहर कोई रिक्त स्थान नहीं होना चाहिए (यानी 8x8 वर्ग के लिए 8 अंक से अधिक वर्ण नहीं हो सकते)।
512 विभिन्न नियम हैं, लेकिन उनमें से कुछ समान पैटर्न का उत्पादन करते हैं। साइड नोट के रूप में, किसी भी पैटर्न से युक्त 0
और 4
सिरिंपस्की त्रिकोण (8 अलग-अलग नियम) का उत्पादन करेगा।
आप वैकल्पिक रूप से अपने पसंदीदा पैटर्न और इसे बनाने वाले नियम को पोस्ट कर सकते हैं। यदि आप करते हैं, तो सुनिश्चित करें कि समान नियमों से इसे अलग करने के लिए आकार कम से कम 3 (8x8) है।