मैं हाल ही में ' द वीवर ' के माध्यम से खेल रहा हूं और मुझे लगता है कि यह कोड-गोल्फ के लिए एक दिलचस्प चुनौती प्रस्तुत करता है ।
परिसर:
वीवर्स एक ऐसा गेम है जिसमें आपको 2 दिशाओं से 90 डिग्री अलग से आने वाले कई रिबन दिए जाते हैं और आपका लक्ष्य एक वांछित आउटपुट प्राप्त करने के लिए उन्हें कुछ चौराहों पर स्वैप करना है।
इस तरह: यह एक स्वैप है: यह नहीं है:
इनपुट:
3 सरणियाँ:
- शीर्ष रिबन (बाएं से दाएं)
- बाएँ रिबन (ऊपर से नीचे)
- चौराहों के निर्देशांक स्वैप करने के लिए
आउटपुट:
2 सरणियाँ:
- निचला रिबन (बाएं से दाएं)
- सही रिबन (ऊपर से नीचे)
उदाहरण:
मैं पहले उदाहरण के रूप में उपरोक्त छवि का उपयोग करूंगा:
इनपुट: [r, y, b], [r, y, b], [(0, 1), (2, 1), (2, 2)]
क्या होता है:
r y b
r y b
r r r r•y y y y
r r b
y y y y y y y y
r r b
b b b b•r r•b b
r b r
r b r
जहाँ •एक अदला-बदली का प्रतिनिधित्व करता है।
आउटपुट: [r, b, r], [y, y, b]
इनपुट: [a, b, c], [d, e, f], [(0, 0), (2, 1)]
क्या होता है:
a b c
a b c
d d•a a a a a a
d b c
e e e e e e e e
d b c
f f f f•b b b b
d f c
d f c
आउटपुट: [d, f, c], [a, e, b]
इनपुट: [a, b], [a, b, c], [(0, 1), (1, 0), (1, 1), (2, 0), (2, 1), (3, 1)]
क्या होता है:
a b
a b
a a a a•b b
a a
b b•a a•a a
b a
c c•b b•a a
c b
c b
आउटपुट: [c, b], [b, a, a]
टिप्पणियाँ:
- उदाहरण दिए गए निर्देशांक दिखाते हैं
(row, column)जैसे आप उन्हें ले सकते हैं(column, row)। - शीर्ष पंक्ति और बाएं स्तंभ में एक ही रंग के रिबन हो सकते हैं
- बोर्ड आयताकार हो सकता है
- यदि आप 1-अनुक्रमण चुनते हैं तो सभी निर्देशांक गैर-ऋणात्मक (
>=0) या (सख्ती से सकारात्मक>=1) होंगे - किसी भी स्वैप को अनदेखा करें जो बोर्ड के बाहर हैं
- आप अक्षरों (
[a-zA-Z]), पूर्णांक ([0-9]) या दोनों के साथ काम करना चुन सकते हैं - आपके आउटपुट में रिबन इनपुट में बिल्कुल रिबन से मेल खाना चाहिए (
a -> a) - आप मान सकते हैं कि स्वैप की सूची किसी भी तरह से आप चाहते हैं, जब तक यह सुसंगत है (यदि आप करते हैं, तो कृपया निर्दिष्ट करें कि इसे कैसे सॉर्ट किया जाना चाहिए)
- आप 0 या 1-अनुक्रमित के रूप में स्वैप निर्देशांक ले सकते हैं
- डिफ़ॉल्ट कमियां निषिद्ध हैं
और ज्यादा उदाहरण:
Input:
[b], [r], []
Output:
[b], [r]
Input:
[b], [r], [(0, 0)]
Output:
[r], [b]
Input:
[r, p, y], [r, y, p], [(0, 0), (1, 2), (2, 1), (3, 2)]
Output:
[r, p, y], [r, y, p]
Input:
[b, y, o, r],
[r, o, b, y],
[(0, 0), (2, 0), (3, 2)]
Output:
[b, y, y, r],
[b, o, r, o]
अंतिम उदाहरण इस मामले से संबंधित है (यदि यह कल्पना करना आसान बनाता है):
यह कोड-गोल्फ है इसलिए प्रत्येक भाषा की जीत के लिए बाइट्स में सबसे छोटा उत्तर है।



