Зараз на моїй роботі ми переїхали до нової будівлі. Він повинен бути найсучаснішим, має автоматичні ліхтарі, автоматичні шторки, і зараз він відомий як найбільш екологічна будівля у цьому місті.
Однак це не дуже добре спрацьовує. Ролети, які згортаються, іноді спускаються в похмурі дні і вгору, коли сонце починає світити, а вогні іноді викликають диско-ефекти, чергуючи включення та вимкнення кожні 5-10 хвилин. Крім того, у нас немає жодного ручного способу управління цими стулками, а також температури, АЛЕ у нас є пульт для освітлення.
Однак ці пульти без інструкції з експлуатації містять трохи більше 20 кнопок, які роблять всі види матеріалів, за винятком тих, що, здається, ви хочете ..
PS: Я написав цей виклик 1,5 місяці тому в пісочниці. В даний час ми, начебто, знаємо, як працюють пульти.
Одна велика перевага цього будинку - це 30+ градусів Цельсія зовні, але всередині нього залишається однакова 21 кімнатна температура.
Отже, це було вступ, і пульт дистанційного керування для вогнів надихнув цей виклик.
Виклик:
Скажімо, у нас спочатку вимкнена лампа:
L
Потім натискаємо всі види кнопок і виводимо стан лампи після цього.
Ми використовуємо наступні цифри для різних функцій пульта дистанційного керування для лампи. Коли символ мінус стоїть перед цим числом, ми робимо навпаки.
1
= ВКЛ;-1
= ВИКЛ.2
= Збільшення сили на 25%;-2
= Зменшити міцність на 25%.3
= Збільшити спред на 50%;-3
= Зменшити розкид на 50%.4
= Увімкнення типу світла.
Отже, це все досить розпливчасто, тому давайте трохи детальніше розберемося, що означає кожна річ:
Отже, -1
(OFF) досить очевидний, і 1
він перейде до початкового стану ON (50% для 2
та 50% для 3
):
//
//
L ====
\\
\\
2
і -2
те, наскільки далеко рухається світло ( ==
додається кожні 25%):
0% (equal to a light bulb that is OFF)
L
25%
L ==
50%
L ====
75%
L ======
100%
L ========
3
і -3
як далеко поширюється світло:
0%:
L ====
50%:
//
//
L ====
\\
\\
100%:
|| //
||//
L ====
||\\
|| \\
(ПРИМІТКА. Коли ви 2
і 3
обидва на 100%, у вас буде такий стан:
|| //
|| //
|| //
||//
L ========
||\\
|| \\
|| \\
|| \\
4
полягає в перемиканні типу світла.
Default:
//
L ==
\\
After toggling (note the single space before '/' instead of two):
/
L --
\
Вхід:
Ви отримаєте вхід, який містить можливі натискання кнопок. Наприклад:
12-34
Вихід:
Стан світлової лампи після всіх кнопок входу натиснуто підрядково. Отже, з прикладу введення вище, ми маємо такий вихід:
L ------
Правила виклику:
- Вхід містить лише
1234-
(і ніколи-
раніше4
). - Ніколи не можна опускатись нижче 0% або вище 100%. Якщо число збільшиться / зменшиться за ці межі, ви можете проігнорувати його.
- Коли лампа вимкнена, ви можете ігнорувати будь-які дії і при повторному включенні знову скидається назад в початковий стан ON- (50% для обох
2
і3
, і по замовчуванням4
). Наприклад:12-1-341
просто надрукує початковий стан ON, згаданий вище. (ПОРАДА: Ви можете ігнорувати все до остаточного1
вводу - виключаючи-1
.) - Попередні проміжки, що дорівнюють довжині світла або окремої нової лінії, що замикається, заборонено. Додавання зайвих нових рядків все ж не є.
- Ви можете приймати дані як список цілих чисел, а не один рядок. Тож замість цього
12-34
можна мати[1,2,-3,4]
вхід.
Загальні правила:
- Це код-гольф , тому найкоротша відповідь у байтах виграє.
Не дозволяйте мовам з кодовим гольфом відштовхувати вас від публікації відповідей з не кодовими гольф-мовами. Спробуйте придумати якомога коротшу відповідь на "будь-яку" мову програмування. - Для вашої відповіді застосовуються стандартні правила , тому вам дозволяється використовувати STDIN / STDOUT, функції / метод з відповідними параметрами, повноцінні програми. Твій дзвінок.
- Лазівки за замовчуванням заборонені.
- Якщо можливо, додайте посилання з тестом для вашого коду.
- Також, будь ласка, додайте пояснення, якщо це необхідно.
Тестові приклади:
12-34
L ------
12-1-341
//
//
L ====
\\
\\
14-3224333-2
|| //
|| //
||//
L ======
||\\
|| \\
|| \\
142-1-314-3-322
L --------
1324-2-3
/
/
L ----
\
\
134
| /
|/
L ----
|\
| \
1-2-2-214-3-3-3
L ----
4
). Спасибі за питання.
1
натискається, чи скидаються параметри?
134
?