256-रंग Xterm- संगत टर्मिनल सामान्य 16 सिस्टम रंगों के शीर्ष पर 240 रंग जोड़ते हैं। रंग 16-231 लाल, हरे और नीले रंग के 6 स्तरों (0, 95, 135, 175, 215, 255) का उपयोग करते हैं और नीले रंग से क्रमबद्ध होते हैं। रंग 232-255 ग्रे के 24 स्तर (8 ... 238 10 के स्तर पर) हैं। मैं किस बारे में बात कर रहा हूं इसका एक बेहतर विचार प्राप्त करने के लिए, इस तालिका को देखें ।
चुनौती
आपका लक्ष्य एक प्रोग्राम या फ़ंक्शन बनाना है जो इनपुट, आरजीबी मानों के रूप में लेता है, और उस आरजीबी मूल्य के निकटतम Xterm रंग के साथ इसी संख्या को आउटपुट करता है। चूंकि 16 सिस्टम रंग (0-15 रंग) अक्सर अनुकूलन योग्य होते हैं, इसलिए आप उन्हें इस रूपांतरण से बाहर कर देंगे।
बेहतर रूप से परिभाषित करने के लिए कि "निकटतम" रंग क्या है, लाल, हरे और नीले घटकों के साथ मैनहट्टन दूरी का उपयोग करें । उदाहरण के लिए, rgb(10, 180, 90)20 इकाइयों rgb(0, 175, 95)(रंग 35) से दूर है क्योंकि abs(10 - 0) + abs(180 - 175) + abs(90 - 95) == 20। यदि इनपुट रंग समान रूप से दो या अधिक Xterm रंगों के बीच है, तो उच्चतम सूचकांक के साथ Xterm रंग का उत्पादन करें।
उदाहरण
R G B Xterm
0 0 0 ==> 16
95 135 0 ==> 64
255 255 255 ==> 231
238 238 238 ==> 255
90 133 140 ==> 66
218 215 216 ==> 188
175 177 178 ==> 249
175 0 155 ==> 127
75 75 75 ==> 239
23 23 23 ==> 234
115 155 235 ==> 111
नियम
- मानक खामियों को मना किया जाता है
- आपके प्रोग्राम या फ़ंक्शन को किसी भी उचित प्रारूप में आरजीबी मान लेने की अनुमति है, जिसमें शामिल हैं:
- लाल, हरे और नीले रंग के लिए अलग-अलग तर्क
- एक सूची, टपल, शब्दकोश, या इसी तरह की
- सीमांकित-पृथक स्ट्रिंग या स्टड
- हेक्स रंग (जैसे
#ff8000)
- आप मान सकते हैं कि सभी r, g, और b, मान 0 और 255 के बीच पूर्णांक होंगे।
- चूंकि 16 सिस्टम रंगों को मैपिंग से बाहर रखा जाना है, सभी आउटपुट 16 ... 255 की सीमा में होने चाहिए।
यह कोड-गोल्फ है , इसलिए सबसे छोटा कोड जीतता है।