A mis dos hijos les gusta jugar con el siguiente juguete:
Se pueden tocar las áreas coloreadas con las formas en el interior y la tortuga luego ilumina el área y reproduce un sonido o dice el nombre del color o la forma en el interior. El botón central cambia el modo. Hay un modo en el que las áreas tocan diferentes notas musicales cuando se tocan, con un giro: si el niño toca tres áreas consecutivas en el sentido de las agujas del reloj, se reproduce una melodía especial 1. Si las tres áreas consecutivas tocadas se colocan en sentido antihorario, se reproduce una melodía especial 2.
El reto
Simulemos la lógica interna del juguete. Dada una cadena con 3 presiones del niño, devuelve dos valores distintos y coherentes si las tres presiones son para áreas consecutivas (en sentido horario o antihorario) y un tercer valor distinto si no lo son.
Detalles
- Las áreas de entrada se nombrarán con un carácter cada una, que puede ser su color:
ROYGB
para rojo, naranja, amarillo, verde y azul; o su forma:HSRTC
para corazón, cuadrado, estrella (R
), triángulo y círculo. El caso no importa, puede elegir trabajar con entrada y salida solo en mayúsculas o minúsculas. - El programa recibirá una cadena (o una matriz de caracteres o algo equivalente) con tres pulsaciones. Ejemplos (utilizando los colores):
RBO
,GYO
,BBR
,YRG
,YGB
,ORB
... - El programa generará tres valores distintos y coherentes para representar los tres resultados posibles: un primer valor si la combinación no activa una melodía especial, un segundo valor si la combinación activa la melodía especial en el sentido de las agujas del reloj, y un tercer valor si la combinación activa Melodía especial en sentido antihorario. Ejemplo:
0
para ninguna combinación especial,1
para la melodía activada por una combinación en sentido horario y-1
para la melodía activada por una combinación en sentido antihorario. - No necesita preocuparse por manejar entradas incorrectas.
Casos de prueba
Input Output // Input based on colors
--------------
RBO 0 // No special combination
GYO -1 // Counterclockwise melody triggered
BBR 0 // No special combination
YRG 0 // No special combination
YGB 1 // Clockwise melody triggered
ORB -1 // Counterclockwise melody triggered
OOO 0 // No special combination
BRO 1 // Clockwise melody triggered
Este es el código de golf , ¡así que puede ganar el código más corto para cada idioma!
[0,0]
,[1,0]
,[0,1]
permitido como salida? Veo la respuesta de Mathematica haciendo eso, y ahorraría 3 bytes en la respuesta 05AB1E.