Actualmente en mi trabajo nos mudamos a un nuevo edificio. Se supone que es lo último en tecnología y tiene luces automáticas, persianas enrollables automáticas, y ahora es conocido como el edificio más ecológico de esta ciudad.
Sin embargo, en realidad no funciona tan bien. Las persianas enrollables a veces bajan en días nublados y se levantan cuando el sol comienza a brillar, y las luces a veces causan efectos de discoteca alternando el encendido y apagado cada 5-10 minutos. Además, no tenemos ninguna forma manual de controlar estas persianas enrollables, ni la temperatura, PERO tenemos un control remoto para las luces.
Sin embargo, estos controles remotos vienen sin manual de instrucciones y contienen poco más de 20 botones que hacen todo tipo de cosas excepto lo que parece querer ...
PD: escribí este desafío hace 1,5 meses en el Sandbox. Actualmente, de alguna manera, sabemos cómo funcionan los controles remotos.
Una gran ventaja de este edificio es que es más de 30 grados centígrados afuera, pero en el interior se mantiene la misma temperatura ambiente de 21 en todo momento.
Entonces, esa fue la introducción, y el control remoto de las luces inspiró este desafío.
Desafío:
Digamos que inicialmente tenemos una lámpara apagada:
L
Luego presionamos todo tipo de botones y luego emitimos el estado de la lámpara.
Utilizamos los siguientes números para las diferentes funciones del control remoto de la lámpara. Cuando un símbolo menos está delante de ese número, hacemos lo contrario.
1
= ENCENDIDO;-1
= APAGADO2
= Aumenta la fuerza en un 25%;-2
= Disminuir (atenuar) la fuerza en un 25%.3
= Incrementar el spread en un 50%;-3
= Disminuir el spread en un 50%.4
= Alternar el tipo de luz.
Entonces, todo esto es bastante vago, así que vamos a profundizar un poco más lo que significa cada cosa:
Entonces, -1
(APAGADO) es bastante obvio, y 1
pasará al estado ENCENDIDO inicial (50% para 2
y 50% para 3
):
//
//
L ====
\\
\\
2
y -2
es qué tan lejos viaja la luz ( ==
se agrega por cada 25%):
0% (equal to a light bulb that is OFF)
L
25%
L ==
50%
L ====
75%
L ======
100%
L ========
3
y -3
es qué tan lejos se extiende la luz:
0%:
L ====
50%:
//
//
L ====
\\
\\
100%:
|| //
||//
L ====
||\\
|| \\
(NOTA: Cuando 2
y 3
son ambos al 100%, tendrá este estado:
|| //
|| //
|| //
||//
L ========
||\\
|| \\
|| \\
|| \\
4
es alternar el tipo de luz.
Default:
//
L ==
\\
After toggling (note the single space before '/' instead of two):
/
L --
\
Entrada:
Recibirá una entrada que contiene las posibles pulsaciones de botones. Por ejemplo:
12-34
Salida:
El estado de la lámpara de luz después de presionar todos los botones de la entrada es subsecuencial. Entonces, con la entrada de ejemplo anterior, tenemos la siguiente salida:
L ------
Reglas de desafío:
- La entrada solo contiene
1234-
(y nunca-
antes4
). - Nunca puede ir por debajo del 0% o por encima del 100%. Si un número aumenta o disminuye más allá de estos límites, puede ignorarlo.
- Cuando la lámpara se apaga, puede ignorar cualquier acción y, cuando se vuelve a encender, se restablece al estado de ENCENDIDO inicial (50% para ambos
2
y3
, y predeterminado4
). Por ejemplo:12-1-341
solo imprimirá el estado ON inicial mencionado anteriormente. (SUGERENCIA: puede ignorar todo antes del final1
de la entrada, excluyendo-1
). - Los espacios finales iguales a la longitud de la luz o una nueva línea final no se inhiben. Sin embargo, agregar nuevas líneas innecesarias adicionales no lo es.
- Se le permite tomar la entrada como una lista de enteros en lugar de una sola cadena. Entonces, en lugar de
12-34
, puede tener[1,2,-3,4]
como entrada.
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de code-golf lo desanimen a publicar respuestas con lenguajes que no sean codegolf. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados, programas completos. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, agregue una explicación si es necesario.
Casos de prueba:
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
). Gracias por preguntar.
1
se presiona, ¿se restablecen los parámetros?
134
?