编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

6
电动车库门是否打开?
我的电动车库门的工作方式如下: 只有一个按钮可以控制门 如果门完全关闭并且我按下了按钮,则门开始打开。完全打开需要10秒 如果门完全打开并且我按下了按钮,则门开始关闭。完全关闭需要10秒 如果门是在打开或关闭过程中的一部分,而我按下了按钮,则门将停止并部分打开。 每当门停止移动时,无论是自动完成打开或关闭动作,还是由于在动作中途按下按钮而手动中断时,机构都会倒转并记住下一个动作的方向。 如果在门停止但部分打开时按下按钮,则完成操作所需的时间将少于完成该操作所需移动的时间的10秒。 假设门在开始时完全关闭。 将给出一个整数输入列表。这些整数是我连续两次按下控制按钮之间等待的秒数。 输出两件事: 一旦完成所有按钮的按下并且门已达到稳定状态,指示门状态的百分比。%符号的输出是可选的。 在下一次按下按钮时就明确指示门将向哪个方向行驶。可以是up/ down,U/ D,+/ -,1/ 0或您选择的任何内容。 您可能会假设门无限短地少于10秒才能完成打开或关闭动作。 输入示例: <empty list> # button was pushed just once 20 # button was pushed twice with 20 seconds between 10 5 20 20 10 10 5 5 1 2 3 8 9 10 …
24 code-golf 

30
密码梯,强盗
这是强盗的线索。警察的线索在这里。 编写一个代码,该代码与cop post具有相同的字节数,并且显示的字符相同。该代码必须1在其初始状态下产生,并2, 3 ..在进行单个更改时产生数字。 获胜者将是破解最多职位的强盗。 示例帖子: MyLang,9个字节,8个数字(包括答案​​链接),Cop的用户名。 原始代码: abc1efghi 产生1-8的代码: 1: abc1efghi 2: abc2efghi 3: abc2efghij 4: kbc2efghij 5: kbc23fghij 6: kbc23fghi 7: kbc63fghi 8: kbc63fhi 鼓励解释。强盗帖子的确切格式是可选的。

7
不断放大的锯齿形
编写一个程序或函数,该程序或函数使用正整数N并仅使用所需的行输出此放大的Z字形模式的前N个数字: 26 25 27 . 10 24 28 . 9 11 23 29 . 2 8 12 22 30 44 1 3 7 13 21 31 43 4 6 14 20 32 42 5 15 19 33 41 16 18 34 40 17 35 39 36 38 37 所以,如果N是1输出 1 …

30
字母三角形再次触击
任务 您的任务是打印以下确切文本: A BCD EFGHI JKLMNOP QRSTUVWXY ZABCDEFGHIJ KLMNOPQRSTUVW XYZABCDEFGHIJKL MNOPQRSTUVWXYZABC DEFGHIJKLMNOPQRSTUV WXYZABCDEFGHIJKLMNOPQ RSTUVWXYZABCDEFGHIJKLMN OPQRSTUVWXYZABCDEFGHIJKLM NOPQRSTUVWXYZABCDEFGHIJKLMN OPQRSTUVWXYZABCDEFGHIJKLMNOPQ RSTUVWXYZABCDEFGHIJKLMNOPQRSTUV WXYZABCDEFGHIJKLMNOPQRSTUVWXYZABC DEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKL MNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVW XYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJ KLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOP QRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHI JKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZABCD EFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ 眼镜 您可以全部小写而不是全部大写。 允许在三角形的末尾尾随换行符。 每行后可以有空格。 您必须打印到STDOUT而不是输出字符串数组。 计分 这是代码高尔夫球。字节数最少的程序获胜。

14
挖掘到澳大利亚-对映体
背景 无数代的孩子想知道,如果他们直接向下挖一个洞,他们会到哪里去。事实证明,这无疑是相当危险的,但无论如何... 对映体是在地球表面上彼此直接相对的点。这意味着,如果在两点之间画一条线,它将穿过地球的中心。 挑战 编写一个程序或函数,找到要解决的问题。 在此挑战中,使用经度-纬度系统以及度,弧分和弧秒来表示点。要找到对映体,请交换每个纵坐标(N <-> S和W <-> E)的方向,然后从180度数中减去经度坐标。 示例: 抓住重点N 50 26 23 W 4 18 29。交换指示即可S 50 26 23 E 4 18 29。从中减去经度坐标180 0 0给175 41 31,将对映体的坐标保留为S 50 26 23 E 175 41 31。 规则 输入项 一组任意合理格式的纬度-经度坐标,其中每个坐标包含一个方向,一个度数,一个弧分和一个弧秒。 输出量 对映体的纬度-经度坐标,采用任何合理的格式,其中每个坐标包含一个方向,一个度数,一个弧分和一个弧秒。 合理地表示可以清楚地区分坐标的每个部分。 眼镜 纬度坐标的方向是N或S,经度坐标的方向是W或E。 所有坐标值都是整数。度值将与0和90纬度之间,以及0和180经度。两个坐标的弧分和弧秒值都在0和之间59。 如果纵坐标的所有值均为0,则任一方向都可接受。 无需对任何值进行零填充。 纬度坐标永远不会大于90度,纬度坐标也不会大于180度。 有标准漏洞。 …
24 code-golf 

7
ASCII钢琴键盘
钢琴键的宽度为3个字符,高度为7个字符。但是,如果每个键都为3个字符宽,则黑色键的空间将不足。这就是为什么某些白色键的某些部分被切掉的原因。白键有3种类型。 缺少右半(R)的键: ____ | | | | | | | | | | | | |___| 左半边缺少的键(L): ____ | | | | | | | | | | | | |___| 以及缺少左右两半的键(M): ___ | | | | | | | | | | | | |___| 在真正的键盘上,这些模式如下所示: RMLRMML, RMLRMML, RMLRMML... …

24
说明音乐节拍
您知道,它们看起来像这样: 资源 目的是绘制如下的音乐节拍插图: = = = = = = = = == = == = == = ==== == ==== == === = = ======= ======== == ==== = ========= = ================================= 规则是: 插图的宽度为33个符号,但如果需要-允许任何超出此宽度的尾随空格。 每列均由等号(=)组成。 每列都有一个随机的高度(下一列的高度不应以任何方式取决于上一列的高度),范围是1到6。如果至少有可能在没有严格限制的情况下获得一些输入,也可以数学概率(即某些输入比其他输入少出现)。 列不能浮在底部上方并且在其中有空隙。 由于每一列的最小高度均为1,因此最后一行也不能有任何间隙-它始终由33个等号组成。 由于可能没有高度为6的列(毕竟都是随机的):在这种情况下,您不需要由空格组成的顶行。适用于这种性质的任何边缘情况:如果您的代码突然没有提供高度大于1的列,则无需在底行上方用空格构成其他行。 你什么都不输入。

9
鲁斯特打高尔夫球的技巧
尽管Rust在代码高尔夫竞赛中非常非常少地竞争(Java通常较短),但是打高尔夫仍然很有趣。缩短Rust代码的一些技巧是什么? 请在每个答案中仅张贴一个提示。
24 code-golf  tips 

29
将数字重新排列为字母顺序
给定一个非负整数(n)n,请根据中每个数字的文字拼写,创建一个按字母顺序返回的函数n。 例子: Input: 101 >> one, zero, one >> one, one, zero Output: 110 Input: 31948 >> three, one, nine, four, eight >> eight, four, nine, one, three Output: 84913 Input: 5544 >> five, five, four, four >> five, five, four, four Output: 5544 Input: 1234567890 Output: 8549176320 注意:示例中的操作仅是说明性的,不需要包含在输出中。仅需要返回按字母顺序排序的数字。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 …

11
斯威夫特打高尔夫球的技巧
在Swift中进行代码查询有哪些技巧?它对安全性的关注似乎使打高尔夫球变得困难,但这几乎没有技巧,甚至更有用。Swift中是否有任何功能可以帮助它在某些应用程序的代码高尔夫中脱颖而出? 请为每个答案发布一个提示。
24 code-golf  tips  swift 

30
24小时和12小时
编写没有输入的程序或函数,以打印或返回此24小时和12小时时间的字符串: 00:00 12:00am 01:00 1:00am 02:00 2:00am 03:00 3:00am 04:00 4:00am 05:00 5:00am 06:00 6:00am 07:00 7:00am 08:00 8:00am 09:00 9:00am 10:00 10:00am 11:00 11:00am 12:00 12:00pm 13:00 1:00pm 14:00 2:00pm 15:00 3:00pm 16:00 4:00pm 17:00 5:00pm 18:00 6:00pm 19:00 7:00pm 20:00 8:00pm 21:00 9:00pm 22:00 10:00pm 23:00 11:00pm 该字符串必须完全按照此处显示的方式输出。唯一的例外是它可以有一个结尾的换行符。 …

8
KOTH:每个人都喜欢代币
在这个游戏中,两个玩家争夺吃掉最多积分的代币,但是有一个转折!连续吃多个相同颜色的代币会带来越来越多的奖励,但是要当心,否则您的对手会通过吃掉您想要的代币来破坏您的计划! 规则: 1对1 n x n板(随机大小在5x5和15x15之间) 您和您的对手将在同一个随机细胞中产生 整个棋盘将在某些单元格中随机生成数字,范围从1-3 将生成2 *(板的宽度)令牌,但可以覆盖,因此可能会更少。 每个数字都是十六进制RGB格式的三种颜色之一:红色,绿色或蓝色 每回合,玩家1移动并更新棋盘,然后玩家2移动并更新棋盘。因此,每个玩家都可以根据棋盘状态的变化有效地判断前一个玩家的动作。这将一直持续到游戏结束为止,如下所述。 您有6个可能的转弯动作:上,右,下,左,进食和通过 4个移动命令是不言自明的,您可以转弯。如果您退回无意义的举动,我们将假设您的意思是通过。如果您尝试移开电路板的边缘,则不会移动。边缘不包裹。 EAT消耗您当前所在位置与 您获得的积分与您消费的积分一样多 如果您连续吃两个相同颜色的数字,您将获得+1 如果您连续吃3个相同颜色的数字,则得到+2 如果您连续吃相同颜色的m个数字,则得到+(m-1) 这些奖金是累加的,因此在您吃另一种颜色时,连续获得m个数字将导致m *(m-1)/ 2。 游戏结束条件: 所有数字都被消耗掉 任一位玩家(没有任何代币都可以2 *(宽度)到达)进行4 *(棋盘的宽度)转弯而没有有效吃掉(只是说“ EAT”,没有你要的标记没有计数)移动,因此只有在两个玩家都没有单个目标标记的情况下,才会超过此界限) 您的AI只需不到一秒钟的时间就可以采取行动,否则将通过PASS作为您的选择。 锦标赛将是轮巡赛,有很多回合,例如100或1000。将生成一个随机棋盘,并且该棋盘上将运行每个有序对的不同玩家。比赛结束后,我们将按总得分对人员进行排名。因此,即使您是一场比赛的玩家2,您的目标仍然是获得尽可能多的积分。 AI提交:我的控制器支持的语言是Javascript。允许多次提交。每个人都为这样的对象提交构造函数: function (player1) { this.yourMove = function (b) { return "MOVE"; } } 输入的内容player1是布尔值,表示您是否是玩家1。您的构造函数必须具有该yourMove函数,但也可以具有任意数量的其他函数或值。不要定义任何全局变量,只需将它们作为变量放在对象上即可。每次比赛开始时都会创建一个新版本的对象,并yourMove在每次旋转时以当前棋盘为输入在其上调用该对象的新版本 ,并应返回有效的移动。 b,是的输入yourMove,是当前电路板的副本,以下是构造函数以及输入示例,尽管您不能自己调用​​它们: function token(color, points) { …

2
绘制节点网络
最多有26个节点的网络(根据您的意愿命名A为Z或a以命名z)。每对节点都可以连接或断开。一个节点最多可以连接四个其他节点。您的任务是在2D图中绘制网络。将给出输入以使此任务成为可能(请参见输出部分中的更多约束)。 格式 输入项 成对的字母(按您的意愿A发送Z或a发送给z您)。它们没有以任何顺序排序。 可选-对数 输出量 ASCII图,显示节点之间的实际链接。节点由ato z或Ato 给定Z。使用-了横向的联系和|垂直链接。链接的长度可以是任意(非零),但它们应为水平/垂直的直线,且不会弯曲。如果不破坏图片,可以添加空格。 您可能无法使用有助于图形布局的内置函数。可能允许使用其他与图形相关的内置程序(尽管不带内置程序的解决方案会受到更多欢迎)。最短的代码胜出。 样本数据 输入项 A B B F B L F K L K K R K S R P S J S P J A T V V N 输出量 A - B - F T - V | | | …

9
约∫((e ^ x)/(x ^ x))dx
您将估计以下值: 您输入的内容在哪里I。 规则 您不得使用任何内置的积分功能。 您不得使用任何内置的无限求和函数。 您的代码必须在合理的时间内执行(在我的计算机上少于20秒) 您可以假设输入大于0但小于您的语言的上限。 它可以是任何形式的标准返回/输出。 您可以在Wolfram | Alpha(您可以通过将预期的输入与链接的查询连接来进行验证)。 例子 (让我们调用函数f) f(1) -> 2.18273 f(50) -> 6.39981 f(10000) -> 6.39981 f(2.71828) -> 5.58040 f(3.14159) -> 5.92228 您的答案应准确无误±.0001。

1
反向工程师支架矩形
每个程序员都知道矩形□真的很有趣。为了加剧这种乐趣,可以将这些可爱而模糊的图表转换为交织在一起的括号组。 这个挑战与我以前的挑战相反。 假设您有一组互锁的矩形,如下所示: +------------+ | | +--+-+ +----+-+ | | | | | | | | | +---+--+ | | | | | | | | | | +--+-+ | +-+--+-+-+-+ | | | | | | | | | | | | | | | | | | | …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.