В настоящее время на моей работе мы переехали в новое здание. Предполагается, что он является самым современным и имеет автоматическое освещение, автоматические жалюзи, и теперь известен как самое экологичное здание в этом городе.
Тем не менее, это не очень хорошо работает. Роллеты иногда закрываются в пасмурные дни и поднимаются, когда солнце начинает светить, а огни иногда вызывают диско-эффекты, чередуя включение и выключение каждые 5-10 минут. Кроме того, у нас нет никакого ручного способа управления этими жалюзи, ни температуры, НО у нас есть пульт для освещения.
Эти пульты, тем не менее, поставляются без инструкции по эксплуатации и содержат чуть более 20 кнопок, выполняющих все виды задач, за исключением того, что вы, кажется, хотите.
PS: я написал этот вызов 1,5 месяца назад в Песочнице. В настоящее время мы, вроде как, знаем, как работают пульты дистанционного управления.
Одно большое преимущество этого здания - снаружи 30 градусов Цельсия, но внутри него всегда остается одна и та же температура в помещении.
Итак, это было вступление, и пульт управления светом вдохновил этот вызов.
Вызов:
Допустим, у нас изначально выключена лампа:
L
Затем мы нажимаем все виды кнопок и затем выводим состояние лампы.
Мы используем следующие цифры для различных функций пульта дистанционного управления для лампы. Когда знак минус перед этим числом, мы делаем наоборот.
1
= ВКЛ;-1
= ВЫКЛ.2
= Увеличить силу на 25%;-2
= Уменьшение (уменьшение) силы на 25%.3
= Увеличить спред на 50%;-3
= Уменьшить спред на 50%.4
= Переключение типа света.
Итак, все это довольно расплывчато, поэтому давайте немного углубимся в то, что означает каждая вещь:
Итак, -1
(ВЫКЛ) довольно очевидно, и 1
перейдет в исходное состояние ВКЛ (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%. Если число будет увеличиваться / уменьшаться за пределами этих границ, вы можете игнорировать его.
- Когда лампа выключена, вы можете игнорировать любые действия, а при повторном включении она возвращается в исходное состояние ВКЛ (50% для обоих
2
и3
, и по умолчанию4
). Например:12-1-341
просто распечатает начальное состояние ВКЛ, упомянутое выше. (СОВЕТ: Вы можете игнорировать все до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
?