5 दिन मौसम का पूर्वानुमान


21

मौसम का पूर्वानुमान: गलत पर भरोसा करने के लिए अक्सर गलत, बहुत बार सही।

एक उच्च और निम्न तापमान और प्रति दिन चार मौसम की स्थिति को देखते हुए, एक ASCII- कला चित्रमय पांच दिन का मौसम पूर्वानुमान। चार ग्राफिकल संकेतकों की संरचना नीचे दी गई है।

 \ /
 -O-       Sunny
 / \


\ /
-O(==)     Partly Cloudy
(====)


  (==)     Cloudy
(====)


  (==)
(====)     Rainy
/////

पूर्वानुमान चार्ट निम्नानुसार है: प्रत्येक ग्राफिकल इंडिकेटर अपने 9x5 बॉक्स में केंद्रित है, चार्ट में 5 बॉक्स हैं। प्रत्येक बॉक्स |वर्णों द्वारा अलग किया गया है। चित्रमय सूचक के नीचे सप्ताह के दिन के लिए तीन-अक्षर का संक्षिप्त नाम ( MON, TUE, WED, THU, FRI, SAT, SUN) अपने स्वयं के 9x1 बॉक्स में केंद्रित है। तापमान अपने 9x2 बॉक्स में केंद्रित सप्ताह के दिन से नीचे हैं। एक उदाहरण नीचे दिया गया है।

---------------------------------------------------
|         |         |         |         |         |
|    (==) |    (==) |  \ /    |   \ /   |   \ /   |
|  (====) |  (====) |  -O(==) |   -O-   |   -O-   |
|         |  /////  |  (====) |   / \   |   / \   |
|         |         |         |         |         |
---------------------------------------------------
|   MON   |   TUE   |   WED   |   THU   |   FRI   |
---------------------------------------------------
|  H 75   |   H 69  |  H 77   |   H 80  |  H 85   |
|  L 57   |   L 53  |  L 61   |   L 63  |  L 66   |
---------------------------------------------------

ध्यान दें कि "केंद्रित" को शिथिल रूप से लिया जा सकता है - उदाहरण में देखें कि चित्रमय संरेखण और तापमान क्षैतिज संरेखण कुछ लचीले कैसे हैं।

इसके अतिरिक्त, चूंकि मैं अमेरिका से हूं और इसलिए फारेनहाइट का उपयोग करता हूं, आप सुरक्षित रूप से यह मान सकते हैं कि तापमान सभी दोहरे अंकों में हैं, इसलिए 9 < t < 100

I / O और नियम

यहाँ I / O उदाहरण उपरोक्त उदाहरण चार्ट के प्रदर्शनकारी हैं।

  • इनपुट को किसी भी उचित प्रारूप में और किसी भी सुविधाजनक विधि द्वारा लिया जा सकता है । उदाहरण के लिए,
    1) आप सप्ताह के दिनों के लिए संख्याओं का उपयोग कर सकते हैं, उच्च और निम्न तापमान, और चार स्थितियां, और इनपुट को पांच tuples के रूप में ले सकते हैं, जैसे [0, 75, 57, 2], [1, 69, 53, 3], ...
    2) आप शब्दों के उपयोग से पांच tuples के रूप में इनपुट ले सकते हैं, जैसे ['MON', 75, 57, 'CLOUDY'], ['TUE', 69, 53, 'RAINY'] ...
    3) आप पहले दिन के रूप में इनपुट ले सकते हैं, और उच्च तापमान की एक सूची, कम तापमान की एक सूची, और शर्तों की एक सूची, जैसे 1, [75, 69, ...], [57, 53, ...], [2, 3, ...]
    4 महीने आदि।

  • लीडिंग / ट्रेलिंग न्यूलाइन्स या अन्य व्हाट्सएप वैकल्पिक हैं, बशर्ते कि वर्ण उचित रूप से पंक्तिबद्ध हों।

  • या तो एक पूर्ण कार्यक्रम या एक समारोह स्वीकार्य हैं। यदि कोई फ़ंक्शन है, तो आप इसे प्रिंट करने के बजाय आउटपुट वापस कर सकते हैं।
  • आउटपुट कंसोल के लिए हो सकता है, स्ट्रिंग्स की सूची के रूप में लौटाया जाता है, एकल स्ट्रिंग के रूप में लौटाया जाता है, आदि।
  • मानक खामियों को मना किया जाता है।
  • यह इसलिए सभी सामान्य गोल्फिंग नियम लागू होते हैं, और सबसे छोटा कोड (बाइट्स में) जीतता है।

11
-1 ° F ಠ_ಠ का उपयोग करने के लिए
betseg

6
-1 संयुक्त राज्य अमेरिका में मेरे राज्य के लिए काम नहीं करने के लिए (यह आज 9 ° F है)।
मैजिक ऑक्टोपस Urn

@MagicOctopusUrn मुझे लगता है कि इस रेंज के बाहर भी काम करने वाले कार्यक्रम स्वीकार किए जाते हैं।
पाओलो एबरमन

जवाबों:


5

इमोजीकोड , 1202 974 बाइट्स

🍇a🍨🐚🍨🐚🚂🍮f🔷🍨🐚🍨🐚🔡🐸🍦D🍨🔤 MON  🔤🔤 TUE  🔤🔤 WED  🔤🔤 THU  🔤🔤 FRI  🔤🔤 SAT  🔤🔤 SUN  🔤🍆🍮f🍨🍨🔤 / \  🔤🔤 \ /  🔤🔤 -O-  🔤🍆🍨🔤(====)🔤🔤\ /   🔤🔤-O(==)🔤🍆🍨🔤      🔤🔤  (==)🔤🔤(====)🔤🍆🍨🔤///// 🔤🔤  (==)🔤🔤(====)🔤🍆🍆🍦l🔤 ---------------------------------------------------🔤🍦u🔤      🔤🍦s🔤 |  🔤🍦S🔤  |   🔤🍦w🍨🔤🔤🔤🔤🔤H 🔤🔤L 🔤🍆😀l🍦L🍪s u s u s u s u s u s🍪😀L🍮o🔤🔤🔂i⏩-2 4🍇🍮o s🍊◀️1i🍇🍮o🍪s🔤 🔤🍪🍉🔂j⏩0 5🍇🍊▶️1i🍇🍮o🍪o🍺🐽🍺🐽f🍺🐽🍺🐽a j 0i s🍪🍉🍋◀️1i🍇🍮o🍪o🍺🐽w i🔡🍺🐽🍺🐽a j i 10S🍪🍉🍓🍇🍮o🍪o🍺🐽D🍺🐽🍺🐽a j 1 s🍪🍉🍉😀o🍊🎉😛0i😛1i🍇🍊😛0i🍇😀L🍉😀l🍉🍉😀l🍉

इनपुट को पूर्णांक की सूचियों की सूची के रूप में लेता है, condition day high lowजहां प्रारूप में 0 और 4 के बीच पूर्णांक है। इसे ऑनलाइन आज़माएं!


4

जावास्क्रिप्ट (ईएस 8), 304 263 222 बाइट्स

5 [w,d,h,l]प्रविष्टियों की एक सरणी के रूप में इनपुट लेता है , जहां d एक स्ट्रिंग के रूप में दिन है और w , h , l क्रमशः मौसम का प्रतिनिधित्व करने वाले पूर्णांक हैं (0-अनुक्रमित, क्रमशः 0 = सनी), उच्च तापमान और कम तापमान। स्ट्रिंग्स की एक सरणी देता है।

a=>',0,04,05,06,0,,01,,0H 2,0L 3,'.split`,`.map(s=>(s=a.map(p=>s.replace(/\d/g,n=>+n?p[n]||'  (==),(====),/////,\\ /,-O(==), \\ /, -O-, / \\,'.split`,`['765143810210'[p[0]*3-n+6]]:'|  ').padEnd(10,' -'[+!s])).join``)+s[0])

डेमो

कैसे?

हम परिभाषित करते हैं:

  • L = ',0,04,05,06,0,,01,,0H 2,0L 3,'.split(',')

    बोर्ड की प्रत्येक पंक्ति का वर्णन करने वाले तार की एक सरणी, जिसमें:

    • 0 = उपसर्ग स्ट्रिंग: "| "
    • सप्ताह का 1 = दिन
    • 2 = उच्च तापमान
    • 3 = कम तापमान
    • ग्राफिकल इंडिकेटर का 4 = शीर्ष पैटर्न
    • ग्राफिकल इंडिकेटर का 5 = मध्य पैटर्न
    • ग्राफिकल इंडिकेटर का 6 = निचला पैटर्न
  • W = ' (==),(====),/////,\\ /,-O(==), \\ /, -O-, / \\,'.split(',')

    चित्रमय संकेतकों के पैटर्न का वर्णन करते हुए तार की एक सरणी।

  • P = '765143810210'

    प्रत्येक ग्राफिकल इंडिकेटर के लिए W में पैटर्न के सूचकांकों का वर्णन करने वाली एक स्ट्रिंग , जिसे 3 द्वारा समूहीकृत किया गया है और रिवर्स ऑर्डर में संग्रहीत किया गया है।

मुख्य कार्य अब इस प्रकार है:

a => L.map(s =>                   // for each substring s in L
  (s = a.map(p =>                 //   for each array of parameters p in a:
    s.replace(                    //     replace in s
      /\d/g, n =>                 //       each digit n with:
        +n ?                      //         if n is non-zero:
          p[n] ||                 //           the n-th parameter in p, if defined
          W[P[p[0] * 3 - n + 6]]  //           or a graphical indicator pattern
        :                         //         else:
          '|  '                   //           the prefix string '|  '
    )                             //     end of replace()
    .padEnd(10, ' -'[+!s])        //     pad the result with either spaces or '-'
  ).join``)                       //   end of inner map(); join the results and save in s
  + s[0]                          //   append the first character
)                                 // end of outer map()

3

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

↑χF⁵«Nθ↘→↘P⎇θ⁺⁺⎇⊖θ  ¦\ /¶-o“⎇)D№⸿≡⬤»”×/×⁵⁼賓2⸿φ*EC+@OΠ≦”M¹¦⁵PS¶¶EHL⁺⁺κ SM⁶±¹↑χ»F6231«P←⁵¹MIι↓

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

↑χ

बाएं हाथ के कॉलम को प्रिंट करें |

F⁵«

5 दिनों के लिए लूप।

Nθ

मौसम की स्थिति को इनपुट करें, प्रश्न के समान क्रम का उपयोग करके 0 से 3 तक गिने।

↘→↘P⎇θ

यदि मौसम की स्थिति धूप नहीं है:

⁺⁺⎇⊖θ  ¦\ /¶-o

यदि मौसम की स्थिति आंशिक रूप से बादल है तो आंशिक सूर्य को प्रिंट करें।

“⎇)D№⸿≡⬤»”

एक बादल प्रिंट करें।

×/×⁵⁼θ³

अगर मौसम बारिश का है तो उसे प्रिंट कर लें।

“2⸿φ*EC+@OΠ≦”

नहीं तो सूरज को छापो।

M¹¦⁵PS

दिन पढ़ें और प्रिंट करें।

¶¶EHL⁺⁺κ S

लूप ओवर और इनपुट और तापमान प्रिंट करें।

M⁶±¹↑χ»

|S के अगले कॉलम को प्रिंट करें ।

F6231«

लूप से अधिक अक्षर 6, 2, 3और 1

P←⁵¹

की एक पंक्ति प्रिंट करें -

MIι↓

वर्ण को पूर्णांक पर ले जाएं और अगली पंक्ति को प्रिंट करने के लिए तैयार हो जाएं।


2

पायथन 3, 636 610 534 464 379 बाइट्स

def w(s,l,h,a):
 g='|';A='   ';p,q,r=[A+'\ /'+A,'  \ / '+A,A+' (==) ',A+' (==) '],[A+'-O-'+A,'  -O(==) ','  (====) ','  (====) '],[A+'/ \\'+A,'  (====) ',A*3,'  /////  '];n='-'*51;R=n,;w=x=y=z=''
 for e in s:x+=g+p[e];y+=g+q[e];z+=g+r[e];w+=g+A*3
 R+=x+g,y+g,z+g,w+g;x=u=v=''
 for i in range(5):x+=g+a[i];v+='|  H '+h[i]+A;u+='|  L '+l[i]+A
 print('\n'.join(R+(x+g,n,u+g,v+g,n)))  

इनपुट प्रारूप: - पहली सूची मौसम की स्थिति को दिन-प्रतिदिन लेती है -
0 - धूप
1 - आंशिक रूप से
2 बादल छाए रहेंगे
3 - बारिश।

दूसरी और तीसरी सूची क्रमशः उच्चतम और निम्नतम तापमान लेती है (स्ट्रिंग्स के रूप में)। चौथी सूची के साथ कुछ भी मत करो - मुख्य रूप से सप्ताह के दिनों को संग्रहीत करने के लिए।

यह ऑनलाइन की कोशिश करो

नोट: - बहुत से बाइट्स को कम करने में मदद के लिए Mr.XCoder, ovs और pizzapants184 का बहुत विशेष धन्यवाद।


0

साफ , 328 बाइट्स

import StdEnv,Text
s="----------"
u=" (====)"
v="(==)"
j=['-|||||-|-||-']
$[[d,h,l,w]:t]=[[z:cjustify 10(fromString x)]%(0,9)<+y\\x<-[s,"":[["\\ /","-O-","/ \\"],["\\ /  "," -O"+v,u]:map((++)["   "+v,u])[[""],["/////"]]]!!w]++["",s,"MONTUEWEDTHUFRI"%(d*3,d*3+2),s,"H "<+h,"L "<+l,s]&y<-if(t>[])($t)(map((<+)"")j)&z<-j]

join"\n"o$

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

आंशिक कार्य शाब्दिक के रूप में, लेना [[Int]]और वापस आना String

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