编程拼图和代码高尔夫

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

13
这是什么ROT?-解密ROT-n
以下是按频率顺序排列的英文字母的字母: e t a o i n s h r d l c u m w f g y p b v k j x q z 即,e是最常用的字母,z也是最不常用的字母。(来自Wikipedia的数据。) 您面临的挑战是获取一些ROT文本,例如: ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz 这是通过ROT-21(42的一半)“加密”的文本“ thisisaverysecretmessageverysecureandsafe”。使用上面的频率表,您的程序应该能够确定每个字符旋转了多少以及原始文本。 (如果您不熟悉ROT-n,则实际上是将每个字符移动n。例如,在ROT-2中,a -> c, b -> d, ..., x -> z, y -> a, z -> b。) 你怎么问?您必须使用的(非常幼稚的)算法是: 对于每个“ …

5
饥饿的图像蛇-第3孔
1号洞 蛇乔饿了。 他吃饭,一次只吃一个像素。 他真的很喜欢明亮的像素。 挑战 编程让Joe吃掉他能找到的最明亮的像素,因为他只能上下左右移动。 技术指标 Joe必须从图像的左上像素开始。 Joe只能水平或垂直移动1次 Joe仅有足够的时间移动图片中像素的1/3(移动量是像素的1/3)。如果像素数不是3的倍数,则四舍五入到最接近的整数。 乔可能会越过小道,尽管那算为0亮度 亮度基于r,g和b的总和,因此rgb(0,0,0)的亮度为0,而rgb(255,255,255)的亮度最大。 输入项 您可以随意输入图像。 输出量 显示图片最终结果的图像(黑色被吞噬了像素)。 消耗的亮度量(请在答案中指定范围) 计分 您的课程的评分依据: 乔吃的像素的平均亮度/图片中像素的平均亮度* *您可以在程序中对此进行硬编码 您的总分将是以下图像的平均分: 测试图像: http://upload.wikimedia.org/wikipedia/en/thumb/f/f4/The_Scream.jpg/800px-The_Scream.jpg

6
您可以使用Meta Quine吗?
与其他quine拼图(更具体地讲,这个)类似,编写一个程序为自己生成源。 这里是新的转折:产生的代码应该不等同于源。相反,它应该输出将创建第一个程序的其他程序。 与上述相关的挑战通过在两种语言之间跳转来实现。我认为仅用一种语言即可完成,但是源的两个(或更多)版本应该有显着差异(请参见以下规则)。在这种约束下,单字符答案将是不允许的,因此需要在最终提交中多加思考。 规则 您的代码必须仅以一种语言生成。(多次提交,每种语言都可以接受。) 您不同的代码版本在语法上必须是不同的。换句话说,如果要为代码绘制一棵抽象语法树,则至少应有一个不同的节点。 提供AST并不是必需的,但是如果您希望为每个程序提供一个AST,则将有助于判断。 您可以根据需要生成任意数量的迭代,只要它们在语法上保持不同即可。(更多信息将对您有所帮助,请参阅下文。) 计分 您的最终分数将是所有程序的平均时长,再除以程序数。 范例1: A(B来源)= 50个字符 B(A来源)= 75个字​​符 最终分数= 31.25 范例2: A(B来源)= 50个字符 B(C来源)= 75个字​​符 C(A来源)= 100个字符 最终分数= 25
25 code-golf  quine 

30
写一个多米诺骨牌效果
使用最少的Unicode字符,编写一个接受三个参数的函数: 多米诺骨牌总数 n受影响的多米诺骨牌 受影响的多米诺骨牌的倾覆方向(0或L向左1或R向右) 一旦多米诺骨牌倒塌,它也必须沿相同方向推倒其余的多米诺骨牌。 你应该输出与多米诺骨牌|代表一个常设Domino和\和/代表骨牌效应,向左,右分别。 例子 10, 5, 1应该返回||||////// 6, 3, 0应该返回\\\|||

30
编写一段代码以输出print / output语句本身的行号(形式为“ Hello World,从X行开始!”)
挑战 编写一个程序,输出Hello World, from line X!,其中X是源代码中实际打印语句本身的行号。 规则 在这种情况下,我们希望将输出字符串的语句的第一行号显示到stdout 您应该避免简单地在源代码中搜索字符串(文件或quine)来查找行号 如果将任何其他空格或语句(不会中断代码流)添加到源代码,则应在运行时(如果适用,在编译之后)反映出来。 推荐建议 如果由语言提供,则可以使用异常/堆栈跟踪来实现此目标。尽力使用可跨不同系统/实现移植的代码,但请注意,这不是必需的。__LINE__不鼓励使用定义的变量,例如,尽管规则允许。 赢家 这是一场人气竞赛(于2014年6月10日结束),将根据当时的当前投票来宣布社区投票最高的答案 投票时,请考虑某人的答案的创造性,详尽程度或趣味性。以及所使用的编程语言的困难/限制

11
计算pi的500位数字
编写一个程序来计算pi的前500位,并满足以下规则: 长度必须少于500个字符。 它不能包含“ pi”,“ math.pi”或类似的pi常量,也不能调用库函数来计算pi。 它可能不会连续使用数字“ 3”,“ 1”和“ 4”。 它必须在合理的时间内(不到1分钟)在现代计算机上执行。 最短的程序获胜。

9
在控制台/终端上重新创建“蛇”游戏
游戏很有趣 这里的代码高尔夫球是如此有趣,我必须为复杂度相似的其他经典游戏制作一个版本。用Python创建基本太空侵略者游戏的最快捷方法 但是,这一次,请尝试重新创建经典的“蛇”游戏,在这种游戏中,您从小形状开始,不断地移动以收集碎片来增加得分。当您收集一件物品时,您的“尾巴”就会增加,它沿着您所走的道路前进。目的是持续最长的时间而不会撞到自己的尾巴或墙壁上 资格: 您,组成尾巴,墙壁和收集的碎片的角色都应该是不同的角色 显示带有分数的HUD。每收集一件作品,分数就会提高1分 玩家与自己的尾巴或墙壁碰撞时会失败 一件物品被收集后立即在随机区域产生,更不用说在游戏开始时 游戏的速度并不重要,只要它是一致的 “单元格”应该是2x1个字符,因为块字符的高度约为宽度的两倍,可以是1x1,因为2x1很难看,我并没有真正想到 更改方向的键分别为awsd,左,上,下,右 起始方向应始终朝上 您必须显示墙的边缘。分数可能与墙重叠 满足上述条件的最短代码将获胜。创造力的虚构奖励积分
25 code-golf  game 

18
在不带分号的C ++中打印1到1000
遵循这个受欢迎的问题,提出您的解决方案,该解决方案无需使用任何分号就可以在C ++中打印数字1到1000(所有字符,而不是字符串“ 1到1000”或任何有趣的东西)。与原始问题不同,您可以使用条件和循环。 不需要任何编译器标志的解决方案是首选。如果违反此规定,请提及您使用的任何内容。允许未定义的行为,因此请指定您使用的编译器和版本。将优先考虑聪明的解决方案。这不是最短的代码竞赛。 (我有一个解决方案,如果在此之前没有发布类似的解决方案,我会在24小时内发布。)

30
将字符串转换为小写(没有内置的转换函数!)
该代码高尔夫球的目标是创建一个代码,该代码允许用户输入ASCII字符串(仅包含可打印的ASCII字符),并且程序将输出此字符串的小写字母。 重要提示:不允许使用将字符串(或仅一个字符)转换为小写的内置函数(例如ToLower().NET,strtolower()PHP等)!但是,您可以使用所有其他内置函数。 另外要注意:输入字符串不包含仅大写字符。输入字符串是大写字符,小写字符,数字和其他ASCII可打印字符的混合。 祝好运!

30
以ASCII绘制骰子结果
如果用立方体形骰子完成,则显示掷骰子的随机结果,以ASCII表示。 $ dice 应该导致以下结果之一 ----- | | | o | | | ----- ----- |o | | | | o| ----- ----- |o | | o | | o| ----- ----- |o o| | | |o o| ----- ----- |o o| | o | |o o| ----- ----- |o o| …

30
对数字列表进行排序[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 关于代码保龄球: 在高尔夫中,您尝试获得最低的分数(最小的应用程序,最优雅的应用程序等)。在保龄球中,您尝试获得最高分。因此,如果您遵循此规则,那么进行代码保龄球挑战的目标是使最大,最混搭,最难维护的代码片段仍然能够满足挑战的要求。但是,仅出于此目的而延长源代码是没有意义的。看起来增加的长度似乎来自设计,而不仅仅是填充。 挑战: 创建一个程序,以升序对数字列表进行排序。 例: 输入: 1,4,7,2,5 输出: 1,2,4,5,7 代码:显然,这不是一个好答案,因为那里没有很多WTF。 function doSort(array $input) { sort($input); return $input; } 规则: 没有真正的规则。只要程序起作用,就可以了! 切记:这是保龄球,而不是高尔夫。目的是制作最糟糕,最混蛋的代码!看起来不错但实际上看似邪恶的代码的加分点...

21
吉米多样性的场景
您可能知道,最近出现了多个 可爱的 吉米 挑战 。在这些挑战中,您受到了我们挚爱的朋友的杂技技巧的挑战。现在,我们为您带来了另一个挑战。今天,您将确定吉米斯的不同类型! 说明 吉米斯有三种变体:矮人,杂技演员和健美运动员。 This is dwarf Jimmy: o This is acrobat Jimmy: /o\ This is bodybuilder Jimmy: /-o-\ 这些吉米人都是好朋友,他们喜欢彼此站在同一条线上。给定一个Jimmy场景,您的任务是: o /o\ o /-o-\/-o-\ o /o\ 分别输出线上的矮人,杂技演员和健美运动员的数量。 挑战 如上例所示,以任何合理的形式将输入作为Jimmy场景。 输入字符串应为一行,并且可以包含三种类型的Jimmys和可选的空格。 该字符串不一定包含所有Jimmy变体或空白。 该字符串将不包含任何不在中的字符o/\ -。 吉米品种的任何组合都是可能的。这意味着相同或不同类型的吉米可以彼此相邻。您必须考虑到这一点。 前导和尾随空格是可选的,并且绝不是必需的-您的程序应考虑带有或不带有前导和/或尾随空格的字符串。 该字符串应仅包含有效的Jimmys和空格。例如,---///---不允许使用,因为它不是有效的Jimmy序列。 输出三个数字:场景中的矮人,杂技演员和健美运动员的数量(按顺序排列)。 这可能是以空格分隔的整数形式输出到控制台,也可能是函数作为某种容器(即数组类型)的返回值。 必须按照此规则上方最上方的提示对任何格式的输出进行排序。 适用标准规则和漏洞。 测试用例 /-o-\ /-o-\ o/o\ /-o-\ /-o-\ /-o-\ …

27
一个月中有几天?
给定一个月的文本表示形式(不区分大小写的全名或3个字符的缩写),请返回该月的天数。 例如,december,DEC,和dec都应该返回31。 2月可以有28天或29天。 假设输入的是正确格式之一的月份。

24
Deranged!Combinatorics:计算子因子
次因子或rencontres数字(A000166)是一个数字序列,类似于排列组合中显示的因子阶数字。特别是ñ个subfactorial N!给出的数量紊乱一套的ñ元素。排列是一种排列,其中没有元素保持在相同位置。可以通过以下递归关系定义子因子: !n = (n-1) (!(n-1) + !(n-2)) 实际上,相同的递归关系也适用于阶乘,但是对于子阶,我们从以下内容开始: !0 = 1 !1 = 0 (对于阶乘,我们当然有1!= 1。) 给定n,您的任务是计算!n。 规则 像阶乘一样,子阶数增长非常快。如果您的程序只能处理输入n以便可以用您的语言的本机数字类型表示!n,那是很好的。但是,理论上,您的算法必须对任意n有效。这意味着,您可以假设积分结果和中间值可以用您的语言准确表示。请注意,如果常数e以有限精度存储或计算,则排除常数e。 结果必须是一个精确的整数(尤其是您不能用科学计数法近似结果)。 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 n !n 0 1 1 0 2 1 3 2 4 9 5 44 6 265 10 1334961 12 176214841 13 2290792932 14 32071101049 20 …

30
倒数(1 / x)
挑战 给定一个(浮点数/小数)数字,返回其倒数,即1除以该数字。输出必须是浮点数/十进制数,而不仅仅是整数。 详细规格 您必须以浮点数/十进制数的形式接收输入... ...具有至少4位有效数字(如果需要)。 越多越好,但不计入分数。 您必须使用任何可接受的输出方法进行输出... ...数字的倒数 可以定义为1 / x,x -1。 您必须输出至少4位有效数字精度(如果需要)。 输入为正或负,绝对值在[0.0001,9999]范围内。小数点后的位数永远不会超过4位,从第一个非零位数开始,位数也不会超过4位。输出必须精确到第一个非零数字的第4位。 (感谢@MartinEnder) 以下是一些示例输入: 0.5134 0.5 2 2.0 0.2 51.2 113.7 1.337 -2.533 -244.1 -0.1 -5 请注意,永远不会为您提供精度超过4位数字的输入。 这是Ruby中的示例函数: def reciprocal(i) return 1.0 / i end 规则 允许所有接受的输出形式 禁止标准漏洞 这是代码高尔夫球,以字节为单位的最短答案将获胜,但不会被选择。 澄清说明 您将永远不会收到输入0。 赏金 在大多数语言中,这一挑战显然是微不足道的,但是在更加深奥和不寻常的语言中,它却可以提供一个有趣的挑战,因此,一些用户愿意为在异常困难的语言中做到这一点而加分。 @DJMcMayhem将对最短的大脑Flak答案奖励+150点奖励,因为众所周知,对于浮点数来说,大脑Flak非常困难 @ L3viathan将为最短的OIL答案奖励+150积分。OIL没有本机浮点类型,也没有除法。 @Riley将为最短的sed答案奖励+100积分。 @EriktheOutgolfer将为最短的Sesos答案奖励+100积分。在诸如Sesos这样的fuckfuck衍生产品中进行除法非常困难,更不用说浮点除法了。 …

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.