Moje dwoje dzieci lubi bawić się następującą zabawką:
Kolorowe obszary z kształtami w środku można dotknąć, a żółw zaświeci obszar i odtworzy dźwięk lub wypowie nazwę koloru lub kształt w środku. Środkowy przycisk zmienia tryb. Jest jeden tryb, w którym obszary odtwarzają różne nuty po dotknięciu, z akcentem: jeśli dziecko dotknie trzech kolejnych obszarów zgodnie z ruchem wskazówek zegara, odtwarzana jest specjalna melodia 1. Jeśli trzy kolejne dotknięte obszary zostaną umieszczone przeciwnie do ruchu wskazówek zegara, odtwarzana jest specjalna melodia 2.
Wyzwanie
Symulujmy wewnętrzną logikę zabawki. Biorąc pod uwagę ciąg z 3 naciśnięciami dziecka, zwróć dwie wyraźne, spójne wartości, jeśli trzy naciśnięcia dotyczą kolejnych obszarów (zgodnie z ruchem wskazówek zegara lub przeciwnie do ruchu wskazówek zegara) i trzecią wyraźną wartość, jeśli nie są.
Detale
- Obszary wejściowe będą nazwane znakami, każdy może mieć ich kolor:
ROYGB
czerwony, pomarańczowy, żółty, zielony i niebieski; lub ich kształt:HSRTC
dla serca, kwadratu, gwiazdy (R
), trójkąta i koła. Wielkość liter nie ma znaczenia, możesz wybrać pracę z danymi wejściowymi i wyjściowymi tylko wielkimi lub małymi literami. - Program otrzyma ciąg (lub tablicę znaków lub cokolwiek równoważnego) z trzema naciśnięciami. Przykłady (za pomocą kolorów):
RBO
,GYO
,BBR
,YRG
,YGB
,ORB
... - Program wyświetli trzy różne spójne wartości reprezentujące trzy możliwe wyniki: pierwszą wartość, jeśli kombinacja nie wyzwala specjalnej melodii, drugą wartość, jeśli kombinacja uruchomi specjalną melodię zgodnie z ruchem wskazówek zegara, i trzecią wartość, jeśli kombinacja wyzwoli specjalna melodia przeciwna do ruchu wskazówek zegara. Przykład:
0
brak specjalnej kombinacji,1
melodia uruchamiana przez kombinację zgodną z ruchem wskazówek zegara i-1
melodia uruchamiana przez kombinację przeciwną do ruchu wskazówek zegara. - Nie musisz się martwić obsługą niewłaściwych danych wejściowych.
Przypadki testowe
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
To jest golf golfowy , więc wygrywa najkrótszy kod dla każdego języka!
[0,0]
,[1,0]
,[0,1]
dozwolony jako wyjście? Widzę, że robi to odpowiedź Mathematica, i zaoszczędziłoby 3 bajty w odpowiedzi 05AB1E.