अनुरोधित मौसम के लिए जनजातीय कुलदेवता को सेटअप करें


11

एक सिउक्स गाँव है। यह एक कुलदेवता है:

             __
         ___|  |___
   \/    \        /    \/
   /\     ``|  |``     /\
  /^^\      |  |      /^^\
 / /\ \     |  |     / /\ \
''''''''''''''''''''''''''''

टोटेम अपने अलग-अलग कार्यों में मदद करने के लिए सिओक्स को मौसम में महारत हासिल करने देता है। पर्याप्त मौसम को लागू करने के लिए कुलदेवता को ठीक से सजाने में ग्रामीणों की मदद करें। कुलदेवता के कई अंग हैं:

             __
         ___|AA|___
   \/    \BBBBBBBB/    \/
   /\     ``|CC|``     /\
  /^^\      |DD|      /^^\
 / /\ \  13 |EE| 42  / /\ \
''''''''''''''''''''''''''''
  • Aके लिए है सूर्य () या बादल ww
  • Bके लिए है बारिश """""""" या बर्फ ::::::::
  • Cके लिए है गरज़ zz
  • Dके लिए है हवा ~~
  • Eके लिए है कोहरा ==

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

मौसम नर्तकियों को क्रम में दिखाई देना चाहिए 1234। उदाहरण के लिए अगर वहाँ दो नर्तकियों, स्लॉट हैं 1और 2कब्जा कर लिया जाना चाहिए। इसके अलावा, प्रत्येक नर्तक एक अलग आकृति प्रदर्शित करता है:

  • 1 है T
  • 2 है Y
  • 3 है K
  • 4 है X

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

चुनौती

एक प्रोग्राम लिखें जो इनपुट के रूप में एक स्ट्रिंग लेता है, वाक्य में तत्वों ( सूरज , बारिश ,…) से मेल खाता है , और टोटेम के साथ पूरे गांव को ठीक से सेट और उसके नर्तकियों को आउटपुट करता है। आपके प्रोग्राम को इनपुट स्ट्रिंग की शुद्धता की जांच करने की आवश्यकता नहीं है (जैसे इसमें सूरज और बादल दोनों शामिल नहीं होंगे )। यह शब्दों से मेल खाना चाहिए (शाब्दिक अर्थ में):

  • इनपुट स्ट्रिंग हवा सेX says: "I like the wind, it blows the worries away" मेल खाती है , क्योंकि अल्पविराम शब्द का हिस्सा नहीं है
  • इनपुट स्ट्रिंग हवा सेY says: "I hope the weather won't get too windy" मेल नहीं खाती है , क्योंकि हवा और हवा दो अलग-अलग शब्द हैं

मैच करने के लिए शब्द (s) इनपुट स्ट्रिंग के उद्धृत भाग में होने की गारंटी है (पहला भाग जो यह बात कर रहा है जिसमें कभी भी ऐसा शब्द नहीं होगा जिसे मिलान किया जा सके)।

उदाहरण

The squaw says: "I want sun and wind for drying the clothes"
             __
         ___|()|___
   \/    \        /    \/
   /\     ``|  |``     /\
  /^^\      |~~|      /^^\
 / /\ \  T  |  |  Y  / /\ \
''''''''''''''''''''''''''''

The warrior thinks: "A good thunderstorm will afraid the invaders. Or a snow storm. Or an impenetrable fog. Or an oppressive sun."
             __
         ___|()|___
   \/    \::::::::/    \/
   /\     ``|zz|``     /\
  /^^\      |  |      /^^\
 / /\ \  TK |==| XY  / /\ \
''''''''''''''''''''''''''''

The papoose shouts: "I WANNA GO OUTSIDE PLAY UNDER THE SUN!"
             __
         ___|()|___
   \/    \        /    \/
   /\     ``|  |``     /\
  /^^\      |  |      /^^\
 / /\ \  T  |  |     / /\ \
''''''''''''''''''''''''''''

The wise grandma whispers: "The totem is an illusion"
             __
         ___|  |___
   \/    \        /    \/
   /\     ``|  |``     /\
  /^^\      |  |      /^^\
 / /\ \     |  |     / /\ \
''''''''''''''''''''''''''''

The shaman confides: "I perform my magic hidden in the fog, under the rain or at least under heavy clouds"
             __
         ___|ww|___
   \/    \""""""""/    \/
   /\     ``|  |``     /\
  /^^\      |  |      /^^\
 / /\ \  TK |==|  Y  / /\ \
''''''''''''''''''''''''''''

The village chief claims: "The meat of bison is better preserved in the snow, or dried under a burning sun. My Pa' used to say that heavy wind and a thunderstorm could help too, but I have no clue how. And despite everyone contradicting me, I am persuaded a good fog will do as well"
             __
         ___|()|___
   \/    \::::::::/    \/
   /\     ``|zz|``     /\
  /^^\      |~~|      /^^\
 / /\ \  TK |==| XY  / /\ \
''''''''''''''''''''''''''''

यह इसलिए बाइट्स जीत में सबसे छोटा जवाब है। स्पष्टीकरण को प्रोत्साहित किया जाता है।


क्या हम मान सकते हैं कि हम दोनों sunऔर clouds, या दोनों rainऔर नहीं मिलेंगे snow?
२३:५० पर HyperNeutrino

@HyperNeutrino यह पहले से ही चुनौती में निर्दिष्ट है।
जिम

आह। मैंने ऐसा कई बार किया है (चुनौती के लापता हिस्से)। क्षमा करें: P
HyperNeutrino

lol +1 के लिए The papoose shouts: "I WANNA GO OUTSIDE PLAY UNDER THE SUN!"। इसके अलावा यह चुनौती बहुत कम दर्दनाक और बहुत अधिक मजेदार थी जितना मैंने सोचा था कि यह चुनौती के लिए बहुत धन्यवाद होगा: पी :)
हाइपरन्यूट्रीनो

मैं इस तरह की चुनौतियों को याद करता हूं। बहुत कठिन नहीं, बहुत FGITW नहीं, बहुत अधिक गोल्फ भाषा नहीं और वास्तव में आपको एक छोटे 4-बाइट खोजने की बजाय कोड करना होगा
Uriel

जवाबों:


2

पायथन, 527 524 508 504 481 474 462 461 बाइट्स

from re import*
a=r"""!!! __
!! ___|AA|___
   \/!\BBBBBBBB/!\/
   /\! ``|CC|``! /\
  /^^\!  |DD|!  /^^\
 / /\ \  02 |EE| 31  / /\ \
""";s={'sun':'A2()','clouds':'A2w','rain':'B2"','snow':'B2:','thunderstorm':'C2z','wind':'D2~','fog':'E2='};i=0
for y in[w for w in split('\W+',input().lower())if w in s]:i+=1;z=s[y];w=int(z[1]);a=sub(z[0]*w,(z[2:]*w)[:w],a)
for y in range(min(i,4)):a=sub(str(y),'TYKX'[y],a)
print(sub('!',' '*4,sub('[ABCDE0123]',' ',a))+"'"*28)

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


अपनी आखिरी चुनौती में मैं निराश था कि कैसे सभी ने रेगेक्स का इस्तेमाल किया। मैंने सोचा कि इस एक के साथ, मेरे पास कोई नहीं होगा। खैर, मैं बहुत हैरान हूँ ...
जिम

@ अच्छी तरह से, वे निश्चित रूप से समारोह का मुख्य हिस्सा नहीं हैं
Uriel

मैंने एक और पायथन समाधान पोस्ट किया है जो काफी अलग एल्गोरिथ्म का उपयोग करता है; अगर आपको लगता है कि बेहतर होगा कि आप इसे सिर्फ एक गोल्फ के रूप में उपयोग करें, तो मैं आपको अपने समान एक समान के रूप में हटा दूंगा।
हाइपरएन्यूट्रीनो

@ हैपरनेट्रिनो मैं सिर्फ इसे गोल्फ कर रहा था और मुझे लगता है कि मैंने आपके द्वारा उपयोग किए गए कुछ सामान को हिट किया। मैं आमतौर पर अन्य समाधानों के बारे में बुरा नहीं मानता, जैसा कि मेरा है, हालांकि मैं आमतौर पर इन्हें पोस्ट नहीं करना चाहता
Uriel


2

पायथन 3 , 473 464 460 बाइट्स

import re
x=re.split('\W+',input().lower())
L='sun clouds rain snow thunderstorm wind fog'.split()
q=sum(map(x.count,L))
print(r'''!    __
!___|#|___
" \/"  \$/" \/
" /\"   ``|%%|``"  /\
  /^^\""  |&&|"" /^^\
 / /\ \  13 |''| 42 / /\ \
'''.translate({33:' '*9,34:' '*2,35:' (w )w'[(L[0]in x)+2*(L[1]in x)::3],36:' ":'[(L[2]in x)+2*(L[3]in x)]*8,37:' z'[L[4]in x],38:' ~'[L[5]in x],39:' ='[L[6]in x],49:' T'[q>0],50:' Y'[q>1],51:' K'[q>2],52:' X'[q>3]})+"'"*28)

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

-9 बाइट्स
-4 बाइट्स ओव्स के लिए धन्यवाद


मुझे नहीं लगता कि आपको इसकी आवश्यकता क्यों होगी s। बस print(r...28)460 बाइट्स के लिए अपनी अंतिम दो लाइनों को मर्ज करें ।
18

@ovs whoops उस बारे में भूल गए। धन्यवाद!
हाइपरएनुट्रिनो

1

जावास्क्रिप्ट (ईएस 6), 417 बाइट्स

(s,i=x=>s.toLowerCase()[q](/\W+/).includes(x[0]),g=x=>y=>i(x)?y[0]:(j--,"  "),j=4,t="||   \\/|   /\\|  /^^\\| / /\\ \\"[q="split"]`|`.map(x=>x[p="padEnd"](9)))=>`    __    n___|${i`sun`?"()":g`clouds``ww`}|___n${"\\"[p](9,i`rain`?'"':g`snow``:`)}/n \`\`|${g`thunderstorm``zz`}|\`\` n   |${g`wind``~~`}|   n02 |${g`fog``==`}| 31`.replace(/\d/g,m=>m>j?" ":"TYKX"[m])[q]`n`.map((v,k)=>t[k]+v+t[k]).join`
`+`
`[p](28,"'")

यहाँ विचार पहले टोटम पोल उत्पन्न करने के लिए था, फिर इसके दोनों किनारों पर मिरर की हुई टिकियों को जोड़ें।

दो सहायक कार्य शामिल हैं: iजो यह जांचता है कि इनपुट में एक स्ट्रिंग एक शब्द है; और g, जो iदी गई स्ट्रिंग या करता है या वापस करता है " "gयह भी गिना जाता है कि तल पर नर्तकियों के लिए उपयोग किए जाने के लिए कितने तत्व गायब हैं।

टेस्ट स्निपेट

let f=
(s,i=x=>s.toLowerCase()[q](/\W+/).includes(x[0]),g=x=>y=>i(x)?y[0]:(j--,"  "),j=4,t="||   \\/|   /\\|  /^^\\| / /\\ \\"[q="split"]`|`.map(x=>x[p="padEnd"](9)))=>`    __    n___|${i`sun`?"()":g`clouds``ww`}|___n${"\\"[p](9,i`rain`?'"':g`snow``:`)}/n \`\`|${g`thunderstorm``zz`}|\`\` n   |${g`wind``~~`}|   n02 |${g`fog``==`}| 31`.replace(/\d/g,m=>m>j?" ":"TYKX"[m])[q]`n`.map((v,k)=>t[k]+v+t[k]).join`
`+`
`[p](28,"'")

let tests = [`The squaw says: "I want sun and wind for drying the clothes"`,`The warrior thinks: "A good thunderstorm will afraid the invaders. Or a snow storm. Or an impenetrable fog. Or an oppressive sun."`,`The papoose shouts: "I WANNA GO OUTSIDE PLAY UNDER THE SUN!"`,`The wise grandma whispers: "The totem is an illusion"`,`The shaman confides: "I perform my magic hidden in the fog, under the rain or at least under heavy clouds"`,`The village chief claims: "The meat of bison is better preserved in the snow, or dried under a burning sun. My Pa' used to say that heavy wind and a thunderstorm could help too, but I have no clue how. And despite everyone contradicting me, I am persuaded a good fog will do as well"`];I.innerHTML+=tests.map(t=>"<option>"+t).join``
<select id=I oninput="O.innerHTML=(idx=I.selectedIndex)?(t=tests[idx-1])+'\n\n'+f(t):''" style="width:90vw"><option>---Tests---</select>
<pre id=O></pre>

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