Mes deux enfants aiment jouer avec le jouet suivant:
Les zones colorées avec les formes à l'intérieur peuvent être touchées et la tortue éclaire alors la zone et émet un son ou dit le nom de la couleur ou de la forme à l'intérieur. Le bouton du milieu change le mode. Il existe un mode dans lequel les zones jouent différentes notes musicales au toucher, avec une torsion: si l'enfant touche trois zones consécutives dans le sens des aiguilles d'une montre, une mélodie spéciale 1 est jouée. Si les trois zones consécutives touchées sont placées dans le sens antihoraire, une mélodie spéciale 2 est jouée.
Le défi
Simulons la logique interne du jouet. Étant donné une chaîne avec 3 pressions de l'enfant, renvoyez deux valeurs distinctes et cohérentes si les trois pressions concernent des zones consécutives (dans le sens horaire ou antihoraire) et une troisième valeur distincte dans le cas contraire.
Détails
- Les zones de saisie seront nommées avec un caractère chacune, qui peut être leur couleur:
ROYGB
pour le rouge, l'orange, le jaune, le vert et le bleu; ou leur forme:HSRTC
pour coeur, carré, étoile (R
), triangle et cercle. La casse n'a pas d'importance, vous pouvez choisir de travailler avec l'entrée et la sortie uniquement en majuscules ou en minuscules. - Le programme recevra une chaîne (ou un tableau de caractères ou quelque chose d'équivalent) avec trois pressions. Des exemples ( en utilisant les couleurs):
RBO
,GYO
,BBR
,YRG
,YGB
,ORB
... - Le programme affichera trois valeurs distinctes et cohérentes pour représenter les trois résultats possibles: une première valeur si la combinaison ne déclenche pas une mélodie spéciale, une deuxième valeur si la combinaison déclenche la mélodie spéciale dans le sens des aiguilles d'une montre et une troisième valeur si la combinaison déclenche la mélodie spéciale anti-horaire. Exemple:
0
pour aucune combinaison spéciale,1
pour la mélodie déclenchée par une combinaison dans le sens horaire et-1
pour la mélodie déclenchée par une combinaison dans le sens antihoraire. - Vous n'avez pas à vous soucier de la gestion d'une entrée incorrecte.
Cas de test
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
C'est du code-golf , alors le code le plus court pour chaque langue peut gagner!
[0,0]
,[1,0]
,[0,1]
autorisé en sortie? Je vois la réponse Mathematica faire cela, et cela économiserait 3 octets dans la réponse 05AB1E.