(コードレビューに関する質問に触発された)
2人がHangmanをプレイしているが、ゲームを聞いたことがあるだけで、現在のステータスを表示したいとします。
入力として2つの単語が与えられ、各単語が一致する[A-Z]+
か[a-z]+
(選択)、以下のルールに従って、ハングマンゲームの現在の状態をASCIIアートとして出力します。
- 最初の単語は推測される単語で、2番目の単語はすでに推測された文字です。これらは、任意の順序で入力として取得できます。
- 推測される単語は空でないことが保証されていますが、すでに推測された文字は空である可能性があります(つまり、ゲームの開始のように)。
- ゲームは常に有効な絞首刑執行人のゲームになります(つまり、推測された文字は複製されず、ゲームの終了後に文字が推測されることはありません。入力としてのみ文字を受け取ります)。
- 絞首刑執行人の図面の下には、推測する単語を
_
、スペースで区切られた未知の文字の代わりに配置する必要があります。たとえば、推測される単語がであったBOAT
場合、絞首刑執行人の絵の下はでなければなりません_ _ _ _
。単語が推測さBOAT
れた場合、A
図面の下にある必要があります_ _ A _
。 - 推測される単語の下は、その単語に含まれていない既に推測された文字でなければなりません。これらは任意の順序で指定でき、必要に応じてアルファベット以外の区切り文字で区切ることができます。
ハングマンゲームの最初の開始から終了までの状態を以下に示します。誤って推測された各文字は、状態を1つ進めます。したがって、最初に誤って推測された文字は頭をO
表示し、次の文字は体を|
表示します。
+---+
| |
|
|
|
|
=========
+---+
| |
O |
|
|
|
=========
+---+
| |
O |
| |
|
|
=========
+---+
| |
O |
/| |
|
|
=========
+---+
| |
O |
/|\ |
|
|
=========
+---+
| |
O |
/|\ |
/ |
|
=========
+---+
| |
O |
/|\ |
/ \ |
|
=========
入力
- 任意の便利な形式の 2つの文字列で、最初に空でないことが保証されています。
- どちらの順序でも入力できます(たとえば、単語を推測してから文字を推測する、またはその逆)。提出物に入力順序を明記してください。
出力
上記のように、進行中の絞首刑執行人ゲームの結果として得られるASCIIアート表現は、再び任意の便利な形式で表示されます。
ルール
- 文字自体が正しく並んでいる限り、先頭または末尾の改行または空白はすべてオプションです。
- 完全なプログラムまたは機能のいずれかが受け入れられます。関数の場合、出力する代わりに出力を返すことができます。
- 可能であれば、他の人がコードを試すことができるように、オンラインテスト環境へのリンクを含めてください!
- 標準的な抜け穴は禁止されています。
- これはコードゴルフなので、通常のゴルフルールがすべて適用され、最短のコード(バイト単位)が勝ちます。
例
#1
BOAT
そして ATG
+---+
| |
O |
|
|
|
=========
_ _ A T
G
#2
ZEPPELIN
そして
+---+
| |
|
|
|
|
=========
_ _ _ _ _ _ _ _
#3
ZEPPELIN
そして EATOLINSHR
+---+
| |
O |
/|\ |
/ \ |
|
=========
_ E _ _ E L I N
A T O S H R
#4
RHYTHM
そして ABCDE
+---+
| |
O |
/|\ |
/ |
|
=========
_ _ _ _ _ _
EDCBA
#5
BOAT
そして ATOB
+---+
| |
|
|
|
|
=========
B O A T
#6
AIRPLANE
そして AJKEI
+---+
| |
O |
| |
|
|
=========
A I _ _ _ A _ E
KJ