私の2人の子供は、次のおもちゃで遊ぶのが好きです。
内側に図形のある色付きの領域をタッチすると、カメがその領域を照らし、音を鳴らすか、内部の色または形状の名前を言います。中央のボタンはモードを変更します。触れたときに領域が異なる音符を演奏する1つのモードがあります。子供が時計回りに連続する3つの領域に触れると、特別なメロディ1が再生されます。タッチされた3つの連続した領域が反時計回りに配置されている場合、特別なメロディ2が再生されます。
チャレンジ
おもちゃの内部ロジックをシミュレートしましょう。キッドを3回押すと文字列が与えられると、3回押すと連続する領域(時計回りまたは反時計回り)の場合は2つの明確な一貫性のある値を返し、そうでない場合は3番目の明確な値を返します。
詳細
- 入力エリアはそれぞれ文字で名前が付けられ、色
ROYGB
は赤、オレンジ、黄色、緑、青の場合があります。またはその形状:HSRTC
ハート、正方形、星(R
)、三角形、円。大文字と小文字は区別されません。入力と出力を大文字と小文字のどちらで扱うかを選択できます。 - プログラムは、3回押すと文字列(またはchar配列または同等のもの)を受け取ります。例(色を使用): 、
RBO
、GYO
、BBR
、、YRG
YGB
ORB
... - プログラムは、3つの可能な結果を表す3つの異なるコヒーレントな値を出力します:組み合わせが特別なメロディーをトリガーしない場合は最初の値、組み合わせが時計回りの特別なメロディーをトリガーする場合は2番目の値、組み合わせがトリガーする場合は3番目の値反時計回りの特別なメロディ。例:
0
特別な組み合わせがない場合1
、時計回りの組み合わせ-1
によってトリガーされるメロディーおよび反時計回りの組み合わせによってトリガーされるメロディー - 間違った入力の処理を心配する必要はありません。
テストケース
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
これはcode-golfなので、各言語の最短コードが勝つかもしれません!
[0,0]
、[1,0]
、[0,1]
出力として許可されていますか?Mathematicaの回答がそれを実行しているのがわかります。05AB1Eの回答では3バイト節約できます。