İki çocuğum aşağıdaki oyuncakla oynamayı sever:
İçinde şekilleri olan renkli alanlara dokunabilir ve kaplumbağa alanı aydınlatır ve bir ses çalar veya içindeki rengin veya şeklin adını söyler. Ortadaki düğme modu değiştirir. Bir dokunuşla, alanların dokunulduğunda farklı müzik notaları çaldığı bir mod vardır: çocuk saat yönünde üç ardışık alana dokunursa, özel bir melodi 1 çalınır. Dokunan ardışık üç alan saat yönünün tersine yerleştirilirse, özel bir melodi 2 çalınır.
Meydan okuma
Oyuncağın iç mantığını simüle edelim. Çocuğun 3 kez basıldığı bir dize verildiğinde, üç baskı birbirini takip eden alanlar içinse (saat yönünde veya saat yönünün tersine) iki farklı, tutarlı değer ve eğer değilse üçüncü bir farklı değer döndürün.
ayrıntılar
- Girdi alanları, her biri bir karakterle adlandırılacak ve bu karakterlerin rengi olabilir:
ROYGB
kırmızı, turuncu, sarı, yeşil ve mavi için; veya şekilleri:HSRTC
kalp, kare, yıldız (R
), üçgen ve daire için. Durum önemli değil, sadece büyük veya küçük harflerle giriş ve çıkışla çalışmayı seçebilirsiniz. - Program üç basışla bir dize (veya char dizisi veya eşdeğeri bir şey) alacaktır. (Renkleri kullanarak) Örnekler:
RBO
,GYO
,BBR
,YRG
,YGB
,ORB
... - Program, üç olası sonucu temsil etmek için üç ayrı, tutarlı değer üretir: kombinasyon özel bir melodiyi tetiklemezse bir ilk değer, kombinasyon saat yönünde özel melodiyi tetiklerse ikinci bir değer ve kombinasyon, saat yönünün tersine özel melodi. Örnek:
0
özel bir kombinasyon1
için, saat yönünde bir kombinasyon-1
tarafından tetiklenen melodi ve saat yönünün tersine bir kombinasyon tarafından tetiklenen melodi için. - Yanlış girişleri ele alma konusunda endişelenmenize gerek yoktur.
Test senaryoları
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
Bu kod golf , bu yüzden her dil için en kısa kod kazanabilir!
[0,0]
,[1,0]
,[0,1]
çıktı olarak izin? Mathematica cevabının bunu yaptığını görüyorum ve 05AB1E cevabına 3 bayt kazandıracaktı.