首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >玩音乐乌龟

玩音乐乌龟
EN

Code Golf用户
提问于 2018-10-23 12:46:46
回答 12查看 2.9K关注 0票数 20

我的两个孩子喜欢玩以下玩具:

里面有形状的彩色区域可以被触摸,然后海龟点亮该区域并播放声音,或者说颜色的名称或内部的形状。中间按钮改变模式。有一种模式,当触碰到不同的音符时,会播放不同的音符:如果孩子顺时针方向接触三个连续的区域,就会播放一个特别的旋律1。如果按逆时针方向放置三个连续区域,则播放一个特殊的旋律2。

挑战

让我们模拟一下玩具的内部逻辑。如果一个字符串有三个按键,如果这三个键是连续区域(顺时针或逆时针方向),则返回两个不同的值,如果不是,则返回第三个不同的值。

详细信息

  • 输入区域将被命名为每个字符,可以是它们的颜色:ROYGB表示红色、橙色、黄色、绿色和蓝色;或者它们的形状:HSRTC表示心、方、星(R)、三角形和圆形。大小写无关紧要,您可以选择使用大写或小写的输入和输出。
  • 程序将收到一个字符串(或char数组或任何类似的东西)和三次按压。例子(使用颜色):RBOGYOBBRYRGYGBORB.
  • 该程序将输出三个不同的、连贯的值来表示三种可能的结果:如果组合没有触发特殊的旋律,则为第一个值;如果组合触发顺时针的特殊旋律,则为第二个值;如果组合触发逆时针的特殊旋律,则为第三个值。例如:0表示无特殊组合,1用于顺时针组合触发的旋律,-1用于逆时针组合触发的旋律。
  • 您不需要担心处理错误的输入。

测试用例

代码语言:javascript
复制
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

这是密码-高尔夫,所以希望每种语言的最短代码都能赢!

EN

回答 12

Code Golf用户

发布于 2018-10-23 13:04:16

JavaScript (ES6),41字节

以颜色首字母作为输入。按顺时针方向返回2,逆时针返回true,逆时针返回false

代码语言:javascript
复制
s=>~(x='ROYGBRO_ORBGYOR'.search(s))?x<5:2

在网上试试!

票数 6
EN

Code Golf用户

发布于 2018-10-23 15:37:10

Python 2,36字节

代码语言:javascript
复制
lambda i:'ROYGBRO ORBGYOR'.find(i)/7

-1 -无

0 -顺时针方向

1 -逆时针方向

在网上试试!

票数 6
EN

Code Golf用户

发布于 2018-10-23 16:19:56

Excel,29字节

代码语言:javascript
复制
=FIND(A1,"ROYGBRO_RBGYORB")<6

大写颜色作为输入。

无模式返回#VALUE!,顺时针返回TRUE,逆时针返回FALSE .

可以在IFERROR( ,0)中为+11 bytes包装以处理异常,而非模式情况则返回“0”。

票数 5
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/174564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档