(натхненний запитанням про Code Review)
Припустимо, двоє людей грають у Hangman , але ви лише підслухали гру та хочете намалювати поточний статус.
Дані два слова як вхідні дані, де слова відповідають кожному ( [A-Z]+або на [a-z]+ваш вибір), виводячи поточний стан гри на вішаку як мистецтво ASCII, дотримуючись наведених нижче правил.
- Перше слово - це слово, яке слід відгадати, а друге - це вже здогадані літери. Вони можуть сприйматися як вхідні дані в будь-якому порядку.
- Слово, яке слід вгадати, гарантується не порожнім, але вже здогадані букви можуть бути порожніми (тобто, ніби це початок гри).
- Гра завжди буде дійсною грою на повісі (т. Е. Відгадані букви не дублюються, листи не будуть вгадуватися до кінця гри, ви отримуватимете лише листи як введення тощо).
- Внизу малюнка вішалки повинно бути слово, яке слід вгадати,
_на місці ще невідомих літер, розділених пробілами. Наприклад, якщо слово, яке слід вгадати, булоBOAT, то внизу повинен бути малюнок вішалки_ _ _ _. Якщо слово булоBOATзAвгаданим, то внизу малюнок повинен бути_ _ A _. - Під словом, яке слід вгадати, повинні бути вже вгадані літери, яких немає в цьому слові. Вони можуть бути в будь-якому порядку, і при необхідності їх можна відокремити будь-яким не алфавітним роздільником.
Ось стани гри в кошика, від початкового початку до кінця гри. Кожен неправильно здогаданий лист просуває державу по черзі. Отже, перша неправильно здогадана буква змушує Oз’являтися голову , наступна змушує |з’являтися тіло тощо.
+---+
| |
|
|
|
|
=========
+---+
| |
O |
|
|
|
=========
+---+
| |
O |
| |
|
|
=========
+---+
| |
O |
/| |
|
|
=========
+---+
| |
O |
/|\ |
|
|
=========
+---+
| |
O |
/|\ |
/ |
|
=========
+---+
| |
O |
/|\ |
/ \ |
|
=========
Вхідні дані
- Дві рядки в будь-якому зручному форматі , з першим гарантованим непорожнім.
- Ви можете взяти вхід у будь-якому порядку (наприклад, слово для відгадування, а потім відгадані літери або навпаки). Будь ласка, вкажіть у своєму поданні порядок введення.
Вихід
Отримане художнє зображення 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