Ви живете в терміналі, що має 80 символів. Вам нудно, тому ви вирішили пограти в доміно. Ні, не нудні види, схожі на Scrabble, забава, де ви проводите годину, налаштовуючи їх, щоб спостерігати, як вони за секунду падають.
У терміналах доміно виглядає так:
| upright domino
\ left-tilted domino
/ right-tilted domino
__ fallen domino
Як ми всі знаємо, якщо нахилене доміно торкається вертикального, друге доміно також нахиляється. Єдиний виняток з цього - якщо два нахилених доміно торкаються його:
|\ --> \\ /| --> // /|\ --> /|\
Відрегулюйте гравітаційну константу вашого терміналу, щоб цей перехід займав 100 мс.
Якщо нахилене доміно підтримується іншим доміно чи стінами терміналу, його подорож закінчується.
Жодне з нахилених доміно в Росії
\||||____||||/__ /|\ /\ /|\ __\||||____||||/
(80 символів) переміститься, оскільки два найвищих нахилених доміно підтримуються стінками терміналу, а всі інші підтримуються іншими доміно.
Однак якщо простір у напрямку нахилу порожній, доміно падає:
| \\ --> |__\ // | --> /__|
Термінал. Гравітаційна константа. Ви отримуєте бал ...
Нарешті, зліва злегка вітер, тому правонахилені доміно падають швидше, ніж нахили ліворуч:
|/ \| --> |__\|
Завдання
Напишіть програму / функцію, яка показує анімацію гри в доміно в терміналі.
Ваш код повинен робити наступне:
Прочитайте рядок із вхідних даних, що представляє початковий стан доміно.
Цей рядок міститиме не більше 80 символів і складається виключно з описаних вище доміно та порожніх пробілів.
Роздрукуйте стан та чекайте 100 мс.
Перетворіть стан, як пояснено вище.
Якщо стан змінився, поверніться до 2.
Додаткові правила
Довжина вхідного рядка не впливає на ширину терміналу; навіть якщо рядок коротший, ніж 80 символів, стінки терміналу все ще знаходяться на відстані 80 символів.
Кожен раз, коли виконується крок 2, стан повинен надрукуватись у тому самому місці, замінюючи попередній стан.
Оскільки деякі мови не здатні чекати рівно 100 мс, сміливо чекайте будь-якої кількості між 50 і 1000 мс.
Діють стандартні правила гольф-коду .
Приклади
Для початкового стану
||\/||
надрукуйте наступне (один над іншим):
||\/|| |\\//| \\\/// __\\//__
Для початкового стану
/||||\
надрукувати наступне
/||||\ //||\\ ///\\\
Для початкового стану
/|||\
надрукувати наступне
/|||\ //|\\
Для початкового стану
|/ \|/ \|/ \|/ \|
надрукувати наступне:
|__\|__\|__\|__\|
Для початкового стану (80 символів)
\||||____||||/__ /|\ /\ /|\ __\||||____||||/
надрукувати наступне
\||||____||||/__ /|\ /\ /|\ __\||||____||||/
/
або,/|
і ви побачите, що плитка не впаде так, як слід.