编程拼图和代码高尔夫

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

30
可笑的运行时错误
编写程序,这些程序会产生疯狂,晦涩,荒谬或仅仅是普通的运行时错误。不需要混淆和泛音(简短)。 看起来应该可以正常工作的解决方案更好。 看起来应该以一种方式打破但以另一种方式打破的解决方案更好。 只要有时可以重现,则不确定的解决方案会更好。 错误原因和表现形式之间的距离较长的解决方案更好。 产生错误的奖励积分,这应该是不可能的。 对于使运行时崩溃(例如使python段出错)或操作系统崩溃的错误的加分。 分数单位应为赞成票。 附录1 编译器的不良行为也可以。

18
鸭,鸭,走了!
这是(非常可怕的)五只小鸭子的歌(不长): Five little ducks went out one day, over the hills and up away. Mother Duck said, "Quack Quack Quack Quack", but only four little ducks came back. Four little ducks went out one day, over the hills and up away. Mother Duck said, "Quack Quack Quack Quack", but only …
40 code-golf  string 

27
差异不应该有差异
您的公司最近雇用了一大批非常敬业的系统管理员。他们认为仅观看计算机屏幕是非常有限的(我的意思是60Hz的刷新率还不够),因此他们将CPU数据总线连接到DAC,并通过服务器机房在扬声器上播放,以便可以听到至20kHz。一个问题:他们是系统管理员,而不是电气工程师,而且他们的扬声器设置不断出现故障。他们认为,这是由于软件工程师在大型机上编译的代码中字节值的突然变化引起的。系统管理员现在正在举办一个小竞赛,以了解谁可以编写最适合其扬声器设置的代码。 挑战 您的任务是创建一种所选语言的程序或函数,该程序或函数的连续字节之间的差异应尽可能小(请参见“计算”部分)。该程序将负责计算自己的分数。 输入值 ASCII字符串stdin或与您的语言最接近的等效字符串,或者在创建函数时作为函数输入。由于您的程序必须以自身为输入来计算分数,因此,如果程序包含任何Unicode,则它应支持Unicode。否则,ASCII就足够了。可以假定输入的长度至少为2个字节。 计算方式 字符串的每个字符都将使用ASCII标准转换为等效的数字。然后,所有字符之间的差异将首先平方,然后求和。例如,该字符串abd的得分为1²+2²=5。 输出量 输出将是您输入的标题。这意味着它应该以a开头#或以换行符和-(破折号)开头。然后,它应该输出您的编程语言的名称,后跟一个逗号,一个空格,然后是代表计算结果的整数。例如 #C++, 98 将是有效的输出。应该给出输出,stdout或者给出与您的语言最接近的等效输出,或者作为函数的返回值。 计分 您的分数将是程序的计算值,并以程序本身作为输入。 编辑:现在应该处理换行符,对不起,以前的人们 这是一个Pyth脚本,用于验证分数计算。

24
不耐烦地等待输入
今天的任务是实现获取输入的时间限制,这是我发现在大多数语言中很难实现的任务。 您将创建一个程序功能,提示用户输入。用户提供输入后,立即打印消息input received并结束执行/返回。但是,如果用户等待10秒钟以上以提供输入,则输出消息no input received并结束执行/返回。 输入必须来自stdin(控制台)或等效项,而不是函数或程序参数,但是输出可以是stdout,函数的返回值或任何其他可接受的输出方法。 您可以要求任何数量的输入,它可以是单个字符,一行,一个单词,或者是您语言中最短的方法,只要它等待至少一个字符即可。 您必须在收到输入后立即输出,而不是在10秒钟之后输出。 10秒钟后,您必须结束,no input received打印后无法继续等待输入。 您可能会认为在经过10秒钟到将文本打印到屏幕之间的时间内没有通过输入,因为这是一个非常小的窗口。您可能还假设您的语言的内置等效项sleep是绝对完美的。 这是代码高尔夫球,最少字节获胜!
39 code-golf 

21
不可能的飞镖得分
我很惊讶地没有发现这个问题,尽管在飞镖结帐时有一个很大的问题:飞镖遇到Codegolf 您面临的挑战是计算在'n'飞镖的最高得分以下的情况下,'n'飞镖无法获得哪些得分。例如,对于n = 3,最大可能分数是180,所以您将返回[163,166,169,172,173,175,176,178,179] 有关裸露规则的摘要: 单支飞镖的可能得分为: 0(未命中) 1-20、25、50 1-20的两倍或三倍 规则: 适用标准代码高尔夫规则 您必须以您的语言允许的任何方式使用单个参数'n',并返回低于最大得分(不能用n飞镖得分)的所有唯一得分的列表/数组。您也可以将这些值打印到控制台。 结果顺序不重要 以字节为单位的最短代码获胜
39 code-golf 

30
显示钟面
完全像这样在钟面上显示12个数字: 12 11 1 10 2 9 3 8 4 7 5 6 为了更好地查看网格,下面是带有点的网格: ...........12............ .....11...........1...... ......................... .10...................2.. ......................... ......................... 9.......................3 ......................... ......................... ..8...................4.. ......................... ......7...........5...... ............6............ 请注意,网格的宽度被拉伸了两倍,使其看起来更加方形。 还要注意,两位数字与他们的一位对齐。9位数字应与左侧齐平。 以多行字符串(而不是行列表)返回或打印结果。任何尾随空格都是可选的。最后的换行符也是可选的。

30
我确实做了一个飞船的花胶!
介绍: 受到@MagicOctopusUrn在@Emigna的05AB1E答案中对我的“ 这仅仅是一个错误 ”挑战的评论的启发: 8F9ÝÀNð×ý}».∊我确实做了一个飞船的花胶!我对建议进行12字节的编辑感到非常兴奋。– 魔术章鱼缸 17年7月17日在20:10 这是一个05AB1E(旧版)程序,导致以下结果: 1234567890 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 …

19
创建一个太阳系
介绍 这是基于我最近在制作计算机游戏时遇到的一个实际问题,我认为这将使一轮不错的代码高尔夫成为可能。 有七种主要的恒星光谱类别,它们散发出不同的热量。从恒星接收的热量极大地影响了恒星周围行星的地质,这是光谱类别和距恒星距离的一个因素。因此,水星实际上是融化的,海王星冻结了。 我的游戏中的银河是程序生成的,并且为给定的恒星随机选择行星类型实际上是一个真正的“ if声明地狱”! 挑战 您的方法应基于最小热量阈值,最大热量阈值和随机数,从适合于恒星类别的行星类型列表中选择一个行星。为简单起见,此挑战将仅使用G级恒星,就像我们的太阳一样。 输入项 heat介于4到11之间的整数,表示行星从恒星接收的热量。 变数 该表显示了基于的可能行星heat。您的方法应首先根据最小热量和最大热量来缩小可用的选择范围,并且heat应介于两者之间或两者之间。例如,只有10的热量通过的是沙漠,铁和熔岩。 Planet type Heat min Heat max Random Chance Gas Giant 4 9 15 Ice 4 6 10 Ice Giant 4 6 10 Gaia class 5 7 10 Dense Atmosphere 7 9 10 Desert 7 10 25 Iron 7 10 …
39 code-golf  random 

30
有颠簸吗?
给定一个正整数列表,确定是否有一个元素大于其两个邻居或小于其两个邻居(“凸点”)。需要明确的是,颠簸永远不会成为列表的第一或最后一项,因为它们只有一个邻居。 您的程序应输出两个一致的值之一,每个值对应于一个没有凹凸的列表或一个带有凹凸的列表。这些值无关紧要,您可以自己选择它们。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 [] -> False [1] -> False [1,2] -> False [1,2,1] -> True [1,2,2] -> False [1,2,3] -> False [1,2,2,1] -> False [1,2,2,3] -> False [1,2,1,2] -> True [1,3,2] -> True [3,1,2] -> True [2,2,2] -> False

3
为我解决这个城堡
最近,我一直在玩一个叫做Alcazar的游戏。这是一款棋盘益智游戏,您的目标是从一扇门进入,穿过所有正方形,然后从另一扇门退出。唯一的规则是: 进入一次,离开一次; 穿过所有正方形; 不要多次穿过广场 下图显示了一个Alcazar板的示例,其右侧显示了已解决的难题(当然这是一个简单的难题): 您可以在http://www.theincrediblecompany.com/try-alcazar上找到更多拼图,并在PlayStore下载该游戏(PS:不是广告)。 我的问题是除了一个关卡之外,我几乎完成了游戏。我根本找不到解决方法。因此,我提出的挑战是:创建一个可以解决任何正常的1可解决的2城堡等级的算法。 当然,我不是要任何人来构建图像解释器来读取图像并解决难题(或者是吗?)。因此,我使用方框图字符重新绘制了上述难题。这个难题及其解决方案将是这样的: ╔═══════╗ ╔═══════╗ ║▒ ▒ ▒ ▒║ ║┌─┐ ┌─┐║ ║ ║ ║ ║│ │ │║│║ ╣▒ ▒ ▒║▒╠ ╣│ └─┘║└╠ ║ ══╦═╩═╣ ║│══╦═╩═╣ ║▒ ▒║▒ ▒║ ║└─┐║┌─┐║ ║ ║ ║ ==> ║ │║│ │║ ╣▒ ▒║▒ ▒║ ╣┐ │║│ │║ ║ ║ ║ …

30
我们曾经有一个仅在星期日失败的问题
受我们启发,我们曾经进行过一次单元测试,该测试仅在星期日失败,编写一个程序或函数,该程序或函数除了在星期日发生错误外什么都不做,然后在其他任何一天正常退出。 规则: 除了打印到STDERR或您的语言的同类产品外,请勿通过常规IO方法使用输入或显示输出。如果是错误的副产品,则可以打印到STDOUT。 一个函数可能在非星期日返回一个值,只要它不打印任何内容 您的程序可以使用任何时区或本地时区中的星期日,只要一致即可。 错误是导致程序异常终止的某种东西,例如被零除错误或使用未初始化的变量。这意味着,如果要在出现错误的部分之后添加任何代码,则不会在星期日执行该代码。 您还可以使用手动创建错误的语句,等效于Python的raise。 这包括运行时错误,语法错误和编译时的错误(祝您好运!) 错误时必须有一些符号将其与没有错误区分开 这是代码高尔夫球,因此每种语言中最短的字节数将获胜! 我要等到周日才能查看答案;)

30
标记我的邮件!-ASCII条形码
4状态条形码 许多邮政服务(英国皇家邮政,加拿大邮政,美国邮政等)都使用4状态条形码对有关其邮件的信息进行编码。以ASCII呈现,可能看起来像这样: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4状态条形码是一行条。每个杆都可以向上,向下或两者同时延伸,从而有4种可能性。这意味着每个条形图基本上代表一个以4为底的数字: | | 酒吧:| | | | | 位数:0 1 2 3 该符号体系的问题在于,每个条形码都是有效的,上下颠倒的不同条形码:如果方向不正确,则会大大改变含义。因此,通常会执行开始和停止序列,以便扫描仪可以计算应该以哪种方式读取它。 …

30
打印小册子
读书很容易,但是印刷书可能有点棘手。在打印小册子时,打印机需要以某种方式排列页面,以便从左到右阅读。完成此操作的方式是使用如下所示的模式 n, 1, 2, n-1, n-2, 3, 4, n-3, n-4, 5, 6, n-5, n-6, 7, 8, n-7, n-8, 9, 10, n-9, n-10, 11, 12, n-11… 测试用例 4页的小册子: 4, 1, 2, 3 8页的小册子: 8,1,2,7,6,3,4,5 12页的小册子: 12,1,2,11,10,3,4,9,8,5,6,7 16页的小册子: 16,1,2,15,14,3,4,13,12,5,6,11,10,7,8,9 20页的小册子: 20,1,2,19,18,3,4,17,16,5,6,15,14,7,8,13,12,9,10,11 任务 给定一个整数n,该整数是4的倍数,您的任务是显示一个数字数组,该数字数组可用于打印一本书n。 注意:只要输出生成正确的数字(无论是由空格,逗号,连字符还是括号定界),都可以使用任何方法来求解 这是一个代码高尔夫问题,因此答案将以字节计分,赢得的字节数最少。

15
用单词数到20!
使用以下以长度分隔的单词列表: https://github.com/魔术八爪鱼缸/ wordListsByLength 从每个列表中打印1个单词,长度n 从1一直到20,这是一个有效的示例: a an and hand hands handle handles abandons abandoned understand outstanding newfoundland understanding characteristic characteristics characterization characterizations characteristically characterologically chemotherapeutically 或者(数组): ['a', 'an', 'and', 'hand', 'hands', 'handle', 'handles', 'abandons', 'abandoned', 'understand', 'outstanding', 'newfoundland', 'understanding', 'characteristic', 'characteristics', 'characterization', 'characterizations', 'characteristically', 'characterologically', 'chemotherapeutically'] 或者(除以外的任何可打印的非字母分隔符\n): a:an:and:hand:hands:handle:handles:abandons:abandoned:understand:outstanding:newfoundland:understanding:characteristic:characteristics:characterization:characterizations:characteristically:characterologically:chemotherapeutically 规则 您可以选择自己的20个字。 …

30
查找第一个重复的元素
给定一个数组a,其中只包含从1到a.length范围内的数字,请找到第一个重复的数字,其第二次出现的索引最小。换句话说,如果重复的数字多于1个,则返回其第二次出现的索引小于另一个数字的第二次出现的索引的数字。如果没有这样的元素,您的程序/函数可能会导致不确定的行为。 例: 对于a = [2, 3, 3, 1, 5, 2],输出应为 firstDuplicate(a) = 3。 有2个重复项:数字2和3。第二次出现3的索引比第二次出现2的索引小,因此答案是3。 对于a = [2, 4, 3, 5, 1],输出应为 firstDuplicate(a) = -1。 这是代码高尔夫球,因此最短答案以字节为单位。 奖金:您能以O(n)的时间复杂度和O(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.