Meine beiden Kinder spielen gerne mit folgendem Spielzeug:
Die farbigen Bereiche mit den Formen im Inneren können berührt werden und die Schildkröte beleuchtet dann den Bereich und spielt einen Ton ab oder sagt den Namen der Farbe oder der Form im Inneren. Die mittlere Taste ändert den Modus. Es gibt einen Modus, in dem die Bereiche beim Berühren mit einer Drehung unterschiedliche Noten spielen: Berührt das Kind drei aufeinanderfolgende Bereiche im Uhrzeigersinn, wird eine spezielle Melodie 1 gespielt. Wenn die drei aufeinanderfolgenden berührten Bereiche gegen den Uhrzeigersinn platziert werden, wird eine spezielle Melodie 2 abgespielt.
Die Herausforderung
Lassen Sie uns die interne Logik des Spielzeugs simulieren. Bei einer Zeichenfolge mit drei Drücken des Kindes werden zwei eindeutige, kohärente Werte zurückgegeben, wenn die drei Drücken aufeinanderfolgende Bereiche betreffen (im oder gegen den Uhrzeigersinn), und ein dritter eindeutiger Wert, wenn dies nicht der Fall ist.
Einzelheiten
- Die Eingabebereiche werden jeweils mit einem Buchstaben benannt, der ihre Farbe haben kann:
ROYGB
für Rot, Orange, Gelb, Grün und Blau; oder ihre Form:HSRTC
für Herz, Quadrat, Stern (R
), Dreieck und Kreis. Die Groß- und Kleinschreibung spielt keine Rolle. Sie können zwischen Groß- und Kleinschreibung wählen. - Das Programm erhält eine Zeichenfolge (oder ein Zeichen-Array oder etwas Äquivalentes) mit drei Drücken. Beispiele (unter Verwendung der Farben):
RBO
,GYO
,BBR
,YRG
,YGB
,ORB
... - Das Programm gibt drei unterschiedliche, zusammenhängende Werte aus, um die drei möglichen Ergebnisse darzustellen: einen ersten Wert, wenn die Kombination keine spezielle Melodie auslöst, einen zweiten Wert, wenn die Kombination die spezielle Melodie im Uhrzeigersinn auslöst, und einen dritten Wert, wenn die Kombination die auslöst gegen den uhrzeigersinn spezielle melodie. Beispiel:
0
Für keine spezielle Kombination,1
für die durch eine Kombination im Uhrzeigersinn-1
ausgelöste Melodie und für die durch eine Kombination gegen den Uhrzeigersinn ausgelöste Melodie. - Sie müssen sich nicht um falsche Eingaben kümmern.
Testfälle
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
Das ist Code-Golf , also kann der kürzeste Code für jede Sprache gewinnen!
[0,0]
,[1,0]
,[0,1]
als Ausgang erlaubt? Ich sehe die Mathematica-Antwort, die das tut, und sie würde 3 Bytes in der 05AB1E-Antwort einsparen.