हैलो वर्ल्ड रेनबो


11

गैर-मार्कअप भाषाओं में रंगों से निपटना अक्सर चीजों को जटिल बनाता है। मैं कुछ विविधताओं को देखना चाहता हूं कि विभिन्न भाषाओं में रंग का उपयोग कैसे किया जाता है।

इस प्रतियोगिता का उद्देश्य इंद्रधनुष के सात रंगों में 'हैलो वर्ल्ड' का उत्पादन करना है।

विकिपीडिया के अनुसार, ये 7 रंग हैं।

Red      #FF0000 (RGB: 255, 0, 0)
Orange   #FF7F00 (RGB: 255, 127, 0)
Yellow   #FFFF00 (RGB: 255, 255, 0)
Green    #00FF00 (RGB: 0, 255, 0)
Blue     #0000FF (RGB: 0, 0, 255)
Indigo   #6600FF (RGB: 111, 0, 255)
Violet   #8B00FF (RGB: 143, 0, 255)

नियम

  1. कार्यक्रम का उत्पादन 'हैलो वर्ल्ड' होना चाहिए। (पाठ की आवश्यकता नहीं है, लेकिन यह 'हैलो वर्ल्ड' के रूप में व्याकुल होना चाहिए)
  2. प्रत्येक अक्षर का एक अलग रंग होना चाहिए।
  3. रंग किसी भी क्रम में हो सकते हैं।
  4. आपको कम से कम एक बार सात रंगों में से प्रत्येक का उपयोग करना चाहिए। (आप दिए गए रंगों से अधिक उपयोग कर सकते हैं)
  5. किसी भी मामले में मार्कअप भाषाओं का उपयोग नहीं ।

विजेता वह है जिसके पास सबसे कम वर्ण हैं और नियमों का पालन करता है

बोनस -1 वर्ण यदि यह DART में लिखा गया है

मैं 11 जनवरी को विजेता चुनूंगा (यदि मुझे याद है; डी)।

सौभाग्य

विजेता (रों)

मैंने एक गलती की D :, अद्यतन विजेता।

1। अजनबी - अजगर, 60 चरस

2। इल्मारी - करोनन पर्ल + जीडी, 146 चार्ट

सभी नियमों का पालन करने के लिए सबसे कम लंबाई।

ब्राउनी DART के उत्तर के लिए JiminP को इंगित करती है

जवाबों:


7

अजगर, 60 चरस

अब 7 रंगों का उपयोग कर रहे हैं, और "सही" वाले।

एनी एस्केप सीक्वेंस का उपयोग करता है। अंडरस्कोर सिर्फ इतना है कि यह एक अदृश्य स्थान नहीं है।

यह संस्करण कुछ अतिरिक्त स्थानों को प्रिंट करता है, क्योंकि जिस तरह से अजगर का प्रिंट काम करता है, लेकिन वे रिक्त स्थान काफी कुछ चार्ट बचाते हैं, इसलिए मैं उनके साथ ठीक हूं।

for p in zip(range(7)*2,'Hello_World'):print'\033[3%im%s'%p,

और MrZander द्वारा आवश्यक के रूप में एक स्क्रीनशॉट: यहाँ छवि विवरण दर्ज करें


क्या मैंने कोई त्रुटि की है? कृपया एक स्क्रीनशॉट पोस्ट करके साबित करें कि आपने सभी रंगों का सही उपयोग किया है। "8 रंग काले से सफेद तक" ध्वनि नहीं करता है जैसे कि यह 7 आवश्यक रंगों का उपयोग करता है।
श्रीजेंडर

@ मॉरजेंडर: मैंने अपना उत्तर अपडेट कर दिया है, और आशा है कि अब यह आपको प्रसन्न करेगा। Btw, क्या आप सुनिश्चित हैं कि आपके द्वारा प्रदान किया गया 6 वां रंग सही है? यह 7 वें के रूप में बहुत ज्यादा है।
गलास

इसे सीधे विकिपीडिया पर ले गए ... मैं कोई रंग विशेषज्ञ नहीं हूं।
श्रीजेंडर १२'१२

2
यह काम करने के लिए एक कस्टम पैलेट पर निर्भर करता है। उदाहरण के लिए, Hब्लैक के लिए एस्केप कोड का उपयोग करके मुद्रित किया जाता है, इसलिए यह अधिकांश टर्मिनलों पर दिखाई नहीं देता है।
हमार

12

मेथेमेटिका

ImageMultiply[ColorNegate[Graphics[Text[Style["Hello World",30]],ImageSize->190]],ColorData["Rainbow","Image"]]

मुझे पता है, मुझे पता है, यह नियमों का अनुपालन नहीं करता है .. लेकिन मुझे गणितज्ञ की छवि प्रसंस्करण कार्यों के साथ खेलने की कोशिश करनी थी।

स्क्रीनशॉट:

नमस्ते दुनिया!!!!!!!


10

हास्केल, 88 वर्ण

f(c,n)=putStr$"\27["++show n++"m"++[c]
main=mapM_ f$zip"Hello World\n"$35:cycle[31..36]

स्क्रीनशॉट

ध्यान दें कि यह एएनएसआई टर्मिनल रंगों का उपयोग करता है, जिनमें से केवल 6 हैं और वे दिए गए सटीक लोगों से मेल नहीं खा सकते हैं (यह टर्मिनल सेटिंग्स पर निर्भर करता है), इसलिए मैं यहां नियमों को थोड़ा झुक रहा हूं।

लगभग सही रंग, 107 वर्णों के साथ थोड़ा लंबा संस्करण

यह संस्करण ANSI वाले के बजाय xterm रंगों का उपयोग करता है। यह किसी भी कस्टम पैलेट पर निर्भर नहीं करता है, और निकटतम रंगों का उपयोग करता है जो मुझे 256-रंग के एक्सटरम पैलेट में मिल सकते हैं।

f(c,n)=putStr$"\27[38;5;"++show n++"m"++[c]
main=mapM_ f$zip"Hello World\n"$cycle[196,208,226,46,21,57,93]

यहाँ छवि विवरण दर्ज करें


7

अजगर, 261 चरस

C=((255,0,0),(255,127,0),(255,255,0),(0,255,0),(0,0,255),(111,0,255),(143,0,255))
print'P3 67 5 255'
for i in range(335):print'%d %d %d'%(C+C[2:])[i%67/6]if 0x4f7c938a00e7df7d12208a8aa0220820a34413d154044105f7e8828a28808820828cf04f39100e0417d1>>i&1 else'0 0 0'

एक पीपीएम छवि पैदा करते हुए, वास्तव में कल्पना को लागू करता है। यहाँ परिणाम है, gif में परिवर्तित किया गया और 4 के एक कारक द्वारा बढ़ाया गया:

यहाँ छवि विवरण दर्ज करें


हे, अच्छा। समझने के लिए मुझे एक शर्मिंदगी भरा लम्बा समय लगा।
cemper93

2
n=255;C=((n,0,0),(n,127,0),(n,n,0),(0,n,0),(0,0,n),(111,0,n),(143,0,n))
स्टीवन रूंबाल्की 16

7

पर्ल -> एएनएसआई टर्मिनल, 53 चार्ट

s//Hello World/;s/./\e[3${[5,(1..6)x2]}[pos]m$&/g;say

यह हैमर के हास्केल समाधान के समान सटीक आउटपुट का उत्पादन करता है । यह उपयोग करता है say, इसलिए perl 5.10+ और -M5.010(या -E) स्विच की जरूरत है। पुराने पर्ल्स के लिए, के sayसाथ बदलें print। एक \eशाब्दिक ईएससी चरित्र की जगह एक तुच्छ एक-चरित्र की कमी को प्राप्त किया जा सकता है , लेकिन यह कोड को पढ़ने और संपादित करने के लिए बहुत कठिन बना देगा।

संपादित करें: हमार के आउटपुट से पूरी तरह से मेल खाने के लिए दो चार्ट जोड़े गए, और वास्तव में सभी छह संभव टर्मिनल रंगों को दिखाने के लिए। (पहले संस्करण में, रंग 6 = सियान में छपा एकमात्र स्थान था।)

स्क्रीनशॉट:

नमस्ते दुनिया


संपादित करें 2: यदि कस्टम टर्मिनल पैलेट (और अंतरिक्ष के लिए अंडरस्कोर) का उपयोग करने की अनुमति है, तो मैं आसानी से सिर्फ 50 वर्णों के साथ कल्पना में दिए गए सटीक रंगों को पुन: पेश कर सकता हूं:

$_=Hello_World;s/./\e[3${[(0..6)x2]}[pos]m$&/g;say

स्क्रीनशॉट:

नमस्ते दुनिया


3

पर्ल -> एचटीएमएल, 99 वर्ण

@c=(("00")x5,77,(ff)x5,77)x2;print"<font color=#",@c[$i+8,$i+4,$i++],">$_"for split//,"Hello World"

स्क्रीनशॉट:

नमस्ते दुनिया

HTML शायद किसी भी सत्यापनकर्ता को पास नहीं करेगा, लेकिन इसे सभी ब्राउज़रों के बारे में समझना चाहिए। यह कोड आपके द्वारा सूचीबद्ध सटीक आरजीबी रंगों का उत्पादन नहीं करता है , लेकिन यह बहुत करीब है। विशेष रूप से, अक्षरों के रंग हैं:

H  Red           #FF0000
e  Orange        #FF7700
l  Yellow        #FFFF00      
l  Chartreuse    #77FF00
o  Green         #00FF00
  (Spring green  #00FF77)
W  Cyan          #00FFFF
o  Sky blue      #0077FF
r  Blue          #0000FF
l  Indigo        #7700FF
d  Violet        #FF00FF

आउटपुट एक काले रंग की पृष्ठभूमि पर बहुत अच्छा लग रहा है, लेकिन स्पष्ट रूप से मुद्रण के लिए <body bgcolor=black>मुझे 28 अतिरिक्त पात्रों की लागत आएगी। इसके बजाय समान प्रभाव प्राप्त करने के लिए आप अपनी ब्राउज़र सेटिंग्स समायोजित कर सकते हैं। :-)


3
मैं नियम 5 के साथ पर्याप्त विशिष्ट नहीं हो सकता हूं। मैं किसी अन्य भाषा के साथ संयोजन में उपयोग किए गए मार्कअप को नहीं देखना चाहता था। लेकिन किसी भी मामले में, बहुत रचनात्मक कोड।
श्रीजेंडर

3

पर्ल + जीडी, 146 चार्ट

मेरे अन्य उत्तर के लिए टिप्पणियों के अनुसार , यहां एक समाधान है जो सीधे जीडी लाइब्रेरी का उपयोग करके एक छवि फ़ाइल का उत्पादन करता है:

use GD'Simple;move{$m=new GD'Simple 70,12}2,12;s//Hello World/;s/./fgcolor$m(((0)x5,127,(255)x5,127)x2)[$i+8,$i+4,$i++];string$m$&/eg;print$m->png

और यहाँ उत्पादन है:

नमस्ते दुनिया

फिर, एक काले रंग की पृष्ठभूमि का उपयोग करना बेहतर लगेगा, लेकिन मुझे 29 वर्ण ( $m->bgcolor(0,0,0);$m->clear;) खर्च होंगे ।

संपादित करें: अप्रत्यक्ष वस्तु संकेतन और कुछ अन्य ट्वीक्स का उपयोग करके (एबी) 20 वर्णों को शेव करने का तरीका जानें। नया कोड एक चेतावनी का उत्सर्जन करता है, लेकिन फिर भी ठीक चलता है।


यह अधिक पसंद है;)
मेज़ैंडर

अब तक, यह सबसे कम वर्ण गणना है जो डॉट के सभी नियमों का पालन करती है।
श्रीजेंडर ander

3

पोस्टस्क्रिप्ट 155 143

यह घोस्टस्क्रिप्ट की "फिगर-आउट" करने की क्षमता पर निर्भर करता है कि पैलेटिनो, पैलेटिनो-रोमन के लिए छोटा है।

/h{c 1 1 sethsbcolor}def/c 0 def
200 400 moveto/Palatino 36 selectfont
h{32 ne{/c c .14 add dup 1 gt{1 sub}if def}if pop
h}(Hello World!)kshow

1
मुझे लगता है कि "टाइम्स" छोटा है, लेकिन ... ऊ।
लूज़र ने

आपके कुछ विचारों को चुरा लिया ...
थॉमस डब्ल्यू।

3

इसके साथ कुछ अलग दृष्टिकोण

परिशिष्ट भाग

पहला: सबसे छोटा ( 89 ):

9 9 moveto/Courier 9 selectfont
0{pop pop 
dup 1 1 sethsbcolor
.07 add}( Hello World)kshow

परिणाम प्रस्तुत किया

संयुक्त राष्ट्र के golfed:

9 9 moveto
/Courier 9 selectfont
0                       % hue
{                       % hue c1 c2
  pop pop               % hue
  dup 1 1 sethsbcolor   % hue
  .07 add               % newHue
}( Hello World)kshow

यह hsb रंग स्थान का उपयोग करके x दिशा में लगातार रंग बदल रहा है। (Hsb रंग और kshow का उपयोग करने के लिए आइडिया का श्रेय luser droog को दिया जाता है - उसकी प्रविष्टि देखें!) यह MrZander द्वारा दिए गए सटीक सात रंगों का उपयोग नहीं करता है।

मिस्टरैंडर के रंगों के लिए खुद को प्रतिबंधित करते समय, मैं 141 वर्णों का उपयोग कर वहां पहुंचता हूं :

9 9 moveto/Courier 9 selectfont(H e*l4l4oI  WIosrsl{d~)dup
0 2 20{2 copy
1 add get 32 sub 166 div 1 1 sethsbcolor
1 getinterval show
dup}for

परिणाम प्रस्तुत किया

यह मुद्रण योग्य ASCII रेंज में एक बाइट के रूप में MrZander के रंगों के ह्यू मूल्य को एन्कोड करता है। इस बाइट का अनुवाद 0 से 1 के बीच की सीमा में 32 और घटाकर 166 से विभाजित करने पर किया जाता है। "हेलो वर्ल्ड" स्ट्रिंग के प्रत्येक चरित्र को इसके एन्कोडेड ह्यु मान द्वारा अनुसरण किया जाता है।

संयुक्त राष्ट्र के golfed:

9 9 moveto
/Courier 9 selectfont
(H e*l4l4oI  WIosrsl{d~)dup     % string string
0 2 20{                         % string string index
  2 copy                        % string string index string index
  1 add get                     % string string index hueChar
  32 sub 166 div                % string string index hueValue
  1 1 sethsbcolor               % string string index 
  1 getinterval                 % string substring
  show                          % string
  dup                           % string string
}for

TODO : रंगों के साथ कुछ सही नहीं है।


2

कुछ धोखा लेकिन समस्या का समाधान

बैश + रूबी ( lolcatमणि की जरूरत है )

echo Hello World | lolcat -p 0.25

इंद्रधनुष हैलो वर्ल्ड


1

डार्ट टू HTML, 135 134-1 = 133

main(){for(var s="Hello World",i=0;i<11;print("<font color=#${'F00F60FB0FF06F00F00B606B00F60F90F'.substring(i*3,i*3+3)}>${s[i++]}"));}

क्या मार्कअप भाषा का उपयोग किए बिना ग्रंथों को रंग देने का कोई तरीका है? मैं परीक्षण नहीं कर सकता ...


Oooo ... +1 HTML के साथ भी
MrZander

1

मुझे पता है कि यह "किसी भी मामले में कोई मार्कअप नहीं" कहता है, लेकिन मैं इस सीएसएस को 468 अक्षरों में प्रस्तुत करना चाहता हूं:

<style>b{font-weight:normal}i{font-style:normal}u{text-decoration:none}b:after{content:'e';color:orange}b:before{content:'H';color:red}i:after,i:before{content:'l'}i:before{color:#ff0}i:after{color:#0f0}u:before{content:'o ';color:#66f}u:after{content:'W';color:blue}s{text-decoration:none}s:before{content:'o';color:#006}s:after{content:'r';color:#60f}p{display:inline}p:before{content:'l';color:#8b00ff}p:after{content:'d'}</style><b></b><i></i><u></u><s></s><p></p>

मार्कअप के साथ कोई भी स्टाइल नहीं किया जाता है।


0

माणिक

242 अधिक प्रक्रियात्मक तरीका:

require 'paint'

s = "HelloWorld"
out = ""
[
  '#FF0000',
  '#FF7F00',
  '#FFFF00',
  '#00FF00',
  "#00FFFF",
  "#5555FF",
  '#0000FF',
  '#000077',
  '#6600FF',
  '#8B00FF'
].each_with_index { |c, i| out << "#{Paint[s[i], c.dup]}" }
puts out

अगर मैं रंगों को उत्पन्न करने के लिए बेहतर तरीके से सोचने का प्रबंधन करता हूं। बीच में से कुछ मैंने सिर्फ रंगों को पास करने के लिए कुछ परीक्षण और त्रुटि की।

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