Ai miei due bambini piace giocare con il seguente giocattolo:
Le aree colorate con le forme all'interno possono essere toccate e la tartaruga illumina quindi l'area e riproduce un suono o dice il nome del colore o della forma all'interno. Il pulsante centrale cambia la modalità. C'è una modalità in cui le aree suonano note musicali diverse quando vengono toccate, con una svolta: se il bambino tocca tre aree consecutive in senso orario, viene riprodotta una melodia speciale 1. Se le tre aree consecutive toccate vengono posizionate in senso antiorario, viene riprodotta una melodia speciale 2.
La sfida
Simuliamo la logica interna del giocattolo. Data una stringa con 3 pressioni del bambino, restituisce due valori distinti e coerenti se le tre pressioni sono per aree consecutive (in senso orario o antiorario) e un terzo valore distinto se non lo sono.
Dettagli
- Le aree di input saranno denominate ognuna con un carattere, che può essere il loro colore:
ROYGB
per rosso, arancione, giallo, verde e blu; o la loro forma:HSRTC
per cuore, quadrato, stella (R
), triangolo e cerchio. Il caso non ha importanza, puoi scegliere di lavorare con input e output solo in maiuscolo o minuscolo. - Il programma riceverà una stringa (o array di caratteri o qualcosa di equivalente) con tre presse. Esempi (utilizzando i colori):
RBO
,GYO
,BBR
,YRG
,YGB
,ORB
... - Il programma produrrà tre valori distinti e coerenti per rappresentare i tre possibili risultati: un primo valore se la combinazione non attiva una melodia speciale, un secondo valore se la combinazione attiva la melodia speciale in senso orario e un terzo valore se la combinazione attiva il melodia speciale in senso antiorario. Esempio:
0
per nessuna combinazione speciale,1
per la melodia attivata da una combinazione in senso orario e-1
per la melodia attivata da una combinazione in senso antiorario. - Non devi preoccuparti di gestire input errati.
Casi 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
Questo è code-golf , quindi può vincere il codice più breve per ogni lingua!
[0,0]
,[1,0]
,[0,1]
ha permesso di uscita? Vedo che la risposta di Mathematica lo fa e salverebbe 3 byte nella risposta 05AB1E.