सारांश
इस चुनौती का लक्ष्य 15-पहेली / स्लाइडिंग पहेली का एक पूर्ववत छवि-संस्करण बनाना है जिसे फ्रेंच में टक्विन भी कहा जाता है ।
विवरण:
एक इनपुट से बना है:
- एक छवि,
- एक पूर्णांक
n
, - एक अन्य पूर्णांक
r
,
आपका कार्यक्रम, या फ़ंक्शन, या कुछ और जो फिट बैठता है, उसी छवि ( यानी समान आकार और प्रारूप) को इनपुट के रूप में आउटपुट करना होगा, लेकिन यह निम्न प्रक्रिया से गुजरता है:
- छवि को
n²
आयतों में विभाजित करें , - उन आयतों में से एक को हटा दें, बेतरतीब ढंग से,
- बिंदु (2.) से प्रभावित रेखा / स्तंभ से सन्निहित आयतों की एक यादृच्छिक संख्या को स्थानांतरित करें ताकि बनाया गया छेद भरा हो और एक अन्य इस रेखा / स्तंभ में उत्पन्न हो। यह संख्या हो सकती है
0
यदि रिक्त एक कोने या किनारे पर हो।
r
बार-बार (3.) बार।
स्पष्टीकरण:
- यदि आप चरण (3.) में रेखा से आयताकार ले गए हैं, तो आपको अगले पुनरावृत्ति में कॉलम से आयताकार को स्थानांतरित करना होगा,
- यदि आप एक पंक्ति-चरण में बाएँ-से-दाएँ आयतें स्थानांतरित करते हैं, तो उन्हें अगले पंक्ति-चरण में दाएँ-से-बाएँ ले जाया जाना चाहिए, जो स्तंभों के शीर्ष-से-नीचे और नीचे-से-शीर्ष के लिए समान हैं;
- आप मान सकते हैं कि
n
चुना जाएगा इसलिए यह चित्र के किनारों की लंबाई को विभाजित करता है।
एक अंतिम बिंदु:
.gif
पूरी प्रक्रिया को दिखाने वाले एक एनिमेटेड का बहुत स्वागत किया जाता है।
मैं निम्नलिखित चित्र (जो है 1024x768
), के साथ n=16
और r=100
एक मॉडल के रूप में उपयोग करने का प्रस्ताव करता हूं , आप किसी अन्य चित्र का उपयोग कर सकते हैं (जब तक यह प्रासंगिक है और एसई के नियमों का अनुपालन करता है, निश्चित रूप से)।
ध्यान दें कि मानकों में खामियां लागू होती हैं।
यह कोड-गोल्फ है , इसलिए छोटी सबमिशन जीत जाती है!
चूंकि एक उदाहरण का अनुरोध किया गया था, यहां एक है, "हाथ से", के साथ n=4
औरr=1
चरण 1 और 2
चरण 3 : पंक्ति-वार, बाईं ओर 2 आयताकार
move a random number of contiguous rectangles
क्या यह 0 आयतें हो सकती हैं? (यह एक बदलाव होगा जब कार्यक्रम एक किनारे / कोने पर हो, तब व्यवहार को बदलने के लिए दर्द होगा)