(натхненний запитанням про 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