要求された天気のトライバルトーテムをセットアップする

スー族の村があります。それはトーテムを持っています:

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

トーテムはスー族にさまざまな仕事を手伝って天気を習得させます。村人が適切な天気を呼び出すためにトーテムを適切に飾るのを助けます。トーテムにはいくつかの部分があります:

             __
         ___|AA|___
   /    BBBBBBBB/    /
   /     ``|CC|``     /
  /^^      |DD|      /^^
//   13 |EE| 42 // 
''''''''''''''''''''''''''''
  • A is for sun () or
    clouds ww
  • B is for rain """""""" or
    snow ::::::::
  • C is for thunderstorm
    zz
  • D is for wind ~~
  • E is for fog ==

しかしそれだけではありません。トーテムには天気のダンサーが必要です。より多くの要素が呼び出されるほど、必要なダンサーの数が多くなります。
1つの要素が呼び出された場合は、ダンサーが必要です。 2つの要素、2人のダンサー。
4つの要素を超えて、常に最大4人のダンサーがいるでしょう。呼び出される要素がない場合、ダンサーは必要ありません。トーテムは休まなければならない。

天気ダンサーは 1234 の順番で表示する必要があります。たとえば、2人のダンサーがいる場合、スロット
12
を使用する必要があります。さらに、各ダンサーは異なる数字を演奏します:

  • 1 is T
  • 2 is Y
  • 3 is K
  • 4 is X

今、村の人々は天気の願いを表現します。彼らは望む気象要素を含む文章を発音します。トーテムとダンサーが希望を満たすためにセットアップします。

チャレンジ

文字列を入力とし、文中の要素( sunrain
…)をマッチさせ、トーテムが適切に設定された完全な村を出力するプログラムを記述します。ダンサー。あなたのプログラムは入力文字列の正しさをチェックする必要はありません(例えば、
suncloud
の両方を含むことはありません)。それは(文字通りの意味で)単語と一致しなければなりません:

  • コンマが単語の一部ではないため、と一致する入力文字列
    Xは「風が好きで、心配しています」 > windy
    wind が一致するため、と一致しません。
    は2つの異なる言葉です。

一致する単語は、入力文字列の引用部分に含まれることが保証されています(話している相手を指定する最初の部分には、一致する可能性のある単語は含まれません)。

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 // 
''''''''''''''''''''''''''''

This is
so the shortest answer in bytes win. Explanations are
encouraged.

ベストアンサー

Python、 527 524 504 504 /s>
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)

オンラインをお試しください!

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です