चार रंगों वाले ट्रायमिनो के साथ शतरंज की बिसात बिछाएं


12

कार्य:

समस्या पर विचार करें: "एक चौकोर लापता के साथ एक बिसात दी गई है, इसे 21 एल-ट्रायोमिनो में काटें"। एक प्रसिद्ध रचनात्मक प्रमाण है कि यह किसी भी वर्ग शतरंज के आकार के लिए किया जा सकता है जो दो की शक्ति है। यह छेद में छेद और एक बड़े ट्रायोमिनो के साथ एक छोटे से बिसात में शतरंज की चौकी को विभाजित करके काम करता है और फिर यह देखते हुए कि ट्रायोमिनो को पुन: चार ट्रायोमिनो में काट दिया जा सकता है।

इस कार्य में, आपको एल-आकार के ट्रायोमिनो में 8x8 शतरंजबोर्ड को काटने और फिर उन्हें चार रंगों के साथ रंगने के लिए आवश्यक है ताकि किसी भी दो आसन्न ट्रायोमिनो में एक ही रंग न हो।

विशिष्टता:

आपका इनपुट छेद की स्थिति है, जो पूर्णांक की एक जोड़ी के रूप में दी गई है। आप चुन सकते हैं कि कौन सा कॉलम इंडेक्स है और कौन सा एक पंक्ति इंडेक्स है। आप चुन सकते हैं कि प्रत्येक 0 या 1 से शुरू होता है और किस कोने से बढ़ता है। आपको 0..7 या 1..8 के बजाय पहले समन्वय के रूप में A..H की आवश्यकता हो सकती है। आप एक ही पूर्णांक 0..63 या 1..64 में पैक किए गए दोनों निर्देशांक को शाब्दिक क्रम में स्वीकार कर सकते हैं (पंक्ति-प्रमुख या स्तंभ-प्रमुख, बाएं से दाएं या दाएं से बाएं, ऊपर से नीचे या ऊपर से नीचे)। आप एक पूर्ण कार्यक्रम, या एक समारोह लिख सकते हैं।

आप ASCII के रूप में, ASCII के रूप में या चित्रमय आदिम के रूप में टाइलिंग का उत्पादन कर सकते हैं। यदि आप ASCII आउटपुट चुनते हैं, तो आप चार रंगों को दर्शाने के लिए कोई भी चार मुद्रण योग्य ASCII वर्ण चुन सकते हैं। यदि आप रंगीन ASCII चुनते हैं, तो आप किसी भी चार मुद्रण योग्य ASCII वर्ण या अंतरिक्ष के अलावा केवल एक वर्ण चुन सकते हैं। छेद को अंतरिक्ष वर्ण द्वारा दर्शाया जाना चाहिए। यदि आपका कोई पात्र अंतरिक्ष वर्ण है, तो छेद से सटे या शतरंज के किनारे पर कोई भी ट्रिओमिनो इस रंग का नहीं हो सकता है।

यदि आप रंगीन ASCII या चित्रमय आउटपुट चुनते हैं, तो आप अपने वातावरण में उपलब्ध # 000, # 00F, # 0F0, # 0FF, # F00, # F0F, # FF0, #FFF या उनके निकटतम रंगों में से किसी भी चार रंगों को चुन सकते हैं। यदि आप ग्राफ़िकल आउटपुट चुनते हैं, तो आपके ग्राफ़िकल प्राइमेटिव्स को आकार में कम से कम 32x32 पिक्सेल से भरा होना चाहिए और दो पिक्सेल से अधिक नहीं होना चाहिए। यदि उपरोक्त आपके वातावरण के स्क्रीन रिज़ॉल्यूशन से अधिक है, तो न्यूनतम आकार की आवश्यकता को सबसे बड़े वर्ग आकार में आराम दिया जाता है जो अभी भी स्क्रीन पर फिट बैठता है।

आप दिए गए शतरंज की बिसात के किसी भी मान्य टाइलिंग को चुन सकते हैं। आप अपने द्वारा चुने गए टाइलिंग के किसी भी चार-रंग का चयन कर सकते हैं। चार रंगों में से आपकी पसंद सभी आउटपुट में समान होनी चाहिए, लेकिन आपको हर आउटपुट में हर रंग का उपयोग करने की आवश्यकता नहीं है।

उदाहरण:

इनपुट के लिए संभावित आउटपुट = [0, 0] (ऊपरी बाएं कोने)

 #??##??
##.?#..?
?..#??.#
??##.?##
##?..#??
#.??##.?
?..#?..#
??##??##

उसी कार्यक्रम का एक और संभावित आउटपुट (इनपुट = [0, 7]):

??#??#?
?##?##??
..xx..xx
.?x#.?x#
??##??##
..xx..xx
.?x#.?x#
??##??##

"D1" के इनपुट के लिए एक अलग प्रोग्राम भी उत्पादन कर सकता है (नोट नॉनस्टैंडर्ड लेकिन अनुमत चेसबोर्ड ओरिएंटेशन),

AABBCCAA
ACBACBAC
CCAABBCC
 ABBAADD
AABDABDC
BBDDBBCC
BABBACAA
AABAACCA

4
यदि इनपुट है तो यह वास्तव में कोलमोगोरोव जटिलता नहीं है
जोनाथन एलन

@JonathanAllan टैग विवरण का उपयोग करता है कि कोल्मोगोरोव जटिलता के उदाहरण के रूप में पोकेमॉन कौन है जो इनपुट लेता है। यदि आप 64 स्थिर समाधानों के एक सेट को संपीड़ित करना चाहते हैं या आप शतरंजबोर्ड पर टाइल लगाने की प्रक्रिया को लागू करना चाहते हैं तो यह आपके ऊपर है और फिर इसे रंग दें।
जॉन ड्वोरक


1
तीन रंग पर्याप्त नहीं हैं?
अरनौलड

1
@Arnauld मैं इसकी अनुमति दूंगा। मैं संपादित करूँगा।
जॉन ड्वोरक

जवाबों:


22

जावास्क्रिप्ट (ईएस 6),  184 ... 171  163 बाइट्स

(x)(y)0एक्स70y7012

h=>v=>(a=[...'3232132031021010'],a[5+(v&4|h>3)]^=3,a[v/2<<2|h/2]=v%2*2+h%2,g=x=>y&8?'':(x<8?x-h|y-v?a[y/2<<2|x/2]^y%2*2+x%2?(x^y)&2:1:' ':`
`)+g(-~x%9||!++y))(y=0)

इसे ऑनलाइन आज़माएं!

तरीका

4×4

(टी0टी1टी2टी3टी4टी5टी6टी7टी8टी9टी10टी1 1टी12टी13टी14टी15)

प्रत्येक ट्रायमिनो इनमें से एक है:

triominoes

मैट्रिक्स का प्रारंभिक विन्यास इस प्रकार है:

(3232132031021010)

हम पहले 2 रंगों को वैकल्पिक रूप से ठीक वैसे ही करते हैं जैसे हम किसी भी बिसात पर रखते हैं, जो देता है:

matrix0

अगले चरण हैं:

  1. टी5टी6टी9टी10
  2. हम ट्राइमिनो को घुमाते हैं, जिस पर छेद स्थित है (यह चरण 1 के रूप में एक ही ट्रायोमिनो हो सकता है), ताकि यह छेद को कवर न करे।
  3. हम छेद को तीसरे रंग से भरते हैं ('असली' छेद को छोड़कर)।

(3,0)

matrix1

और यह मामला है, अंतिम मैट्रिक्स है:

(3132102031021010)

टिप्पणी की गई

h => v => (                       // (h, v) = hole coordinates
  a = [...'3232132031021010'],    // a[] = flat representation of the 4x4 matrix
  a[5 + (v & 4 | h > 3)] ^= 3,    // first rotation, achieved by XOR'ing with 3
  a[v / 2 << 2 | h / 2] =         // second rotation according to the
    v % 2 * 2 + h % 2,            // position of the hole within the triomino's square
  g = x =>                        // g is a recursive function that converts the 4x4
                                  // matrix into a 8x8 ASCII art
    y & 8 ?                       // if y = 8:
      ''                          //   stop recursion and return an empty string
    :                             // else:
      ( x < 8 ?                   //   if this is not the end of the row:
          x - h | y - v ?         //     if this is not the position of the hole:
            a[y / 2 << 2 | x / 2] //       if this part of the triomino located at this
            ^ y % 2 * 2 + x % 2 ? //       position is 'solid':
              (x ^ y) & 2         //         use either color #0 or color #2
            :                     //       else:
              1                   //         use color #1
          :                       //     else:
            ' '                   //       the hole is represented with a space
        :                         //   else:
          `\n`                    //     append a linefeed
      ) + g(-~x % 9 || !++y)      //   append the result of a recursive call
)(y = 0)                          // initial call to g with x = y = 0

आलेखीय उत्पादन

छेद की स्थिति निर्धारित करने के लिए चित्र पर क्लिक करें।


रचनात्मक सबूत कि तीन रंग हमेशा पर्याप्त होते हैं, बहुत अच्छा!
जॉन ड्वोरक

6
क्लिक करने योग्य चित्रमय आउटपुट से प्यार करें!
केविन क्रूज़सेन 16

3

चारकोल , 78 बाइट्स

NθNη”{⊞⊟¦≦⁶q×fΣ\⊙t×_⊟✳-Y⁴℅=⁶υ”≔›θ³ζ≔›η³εFζ≦⁻⁷θFε≦⁻⁷ηJ⊕÷θ²⊕÷粧#$⁺ⅈⅉJθη Fζ‖Fε‖↓

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। #$%पात्रों का उपयोग कर आउटपुट । स्पष्टीकरण:

NθNη

रिक्त वर्ग के निर्देशांक इनपुट करें।

”{⊞⊟¦≦⁶q×fΣ\⊙t×_⊟✳-Y⁴℅=⁶υ”

एक संपीड़ित स्ट्रिंग आउटपुट। इसमें नई रूपरेखाएँ हैं ताकि इस स्पष्टीकरण के प्रवाह को तोड़ने से बचने के लिए आपको उत्तर के अंत में स्ट्रिंग मिल जाएगी।

≔›θ³ζ≔›η³εFζ≦⁻⁷θFε≦⁻⁷η

यदि या तो समन्वय अधिक से अधिक है 3तो उस तथ्य को याद रखें और सह-समन्वय को 7 से घटाएं।

J⊕÷θ²⊕÷粧#$⁺ⅈⅉ

S %के शीर्ष-बाएँ वर्ग के निकटतम पर जायें %और इसे एक #या $उचित के साथ अधिलेखित करें । (लेकिन अगर यह पहले से ही इस वर्ग में है तो यह खाली हो जाएगा।)

Jθη Fζ‖Fε‖↓

कम समन्वय पर वर्ग को खाली करें और फिर मूल स्थिति को रिक्त करने के लिए आउटपुट को आवश्यक रूप से प्रतिबिंबित करें।

##$$##$$
#%%$#%%$
$%%#$$%#
$$##%$##
##$%%#$$
#%$$##%$
$%%#$%%#
$$##$$##

मैंने %केंद्र में s के वर्ग के साथ शुरुआत करने की कोशिश की और वांछित सह-निर्देशकों के लिए अपना काम करना शुरू कर दिया लेकिन 90 बाइट्स ले लिया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.