Двое моих детей любят играть со следующей игрушкой:
К цветным областям с формами внутри можно дотронуться, и черепаха затем осветит область и воспроизведет звук или произнесет название цвета или форму внутри. Средняя кнопка меняет режим. Существует один режим, в котором области воспроизводят разные музыкальные ноты при касании с поворотом: если ребенок касается трех последовательных областей по часовой стрелке, воспроизводится специальная мелодия 1. Если три последовательные области, к которым вы прикоснулись, расположены против часовой стрелки, воспроизводится специальная мелодия 2.
Соревнование
Давайте смоделируем внутреннюю логику игрушки. Получив строку с 3 нажатиями на ребенка, верните два разных, согласованных значения, если эти три нажатия предназначены для последовательных областей (по часовой стрелке или против часовой стрелки), и третье отдельное значение, если это не так.
Детали
- Области ввода будут именоваться символами, которые могут иметь свой цвет:
ROYGB
для красного, оранжевого, желтого, зеленого и синего; или их форма:HSRTC
для сердца, квадрата, звезды (R
), треугольника и круга. Регистр не имеет значения, вы можете работать с вводом и выводом только в верхнем или нижнем регистре. - Программа получит строку (или массив символов или что-нибудь эквивалентное) с тремя нажатиями. Примеры ( с использованием цвета):
RBO
,GYO
,BBR
,YRG
,YGB
,ORB
... - Программа выведет три различных, согласованных значения, представляющих три возможных результата: первое значение, если комбинация не вызывает особую мелодию, второе значение, если комбинация запускает специальную мелодию по часовой стрелке, и третье значение, если комбинация вызывает против часовой стрелки особая мелодия. Пример:
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
Это код-гольф , поэтому победит самый короткий код для каждого языка!
[0,0]
,[1,0]
,[0,1]
допускаются в качестве продукции? Я вижу, что ответ Mathematica делает это, и это спасло бы 3 байта в ответе 05AB1E.