编程拼图和代码高尔夫

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

30
制作;#解释器
我最近创建了一种新语言;#(发音为“ Semicolon Hash”),它只有两个命令: ; 向累加器加一 #对累加器乘以127,对ASCII字符进行转换,然后输出而不带换行符。此后,将累加器重置为0。是的,正确的是127。 其他任何字符都将被忽略。它对累加器没有影响,什么也不做。 您的任务是为这种强大的语言创建一个解释器! 它应该是完整程序,也可以是将;#程序作为输入并产生正确输出的函数。 例子 Output: Hello, World! Program: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# Output: ;# Program: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;# Output: 2d{ (unprintable characters here; should have 4 `\000` bytes between the `d` and the `{` and 3 after the `{`) Program: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;hafh;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;f;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;###ffh#h#;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ffea;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;#au###h;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;h;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;o Output: Fizz Buzz output Program: link below Output: …

30
最短的自毁循环
你的任务是写一个完整的程序或功能,它没有任何投入和运行任何类型的循环(中while,for,foreach,do,do-while,do-loop,goto,递归等),将在导致一个错误,这意味着程序必须自行停止运行,并结束出口。 规则: 该错误必须是运行时错误,未处理的异常或任何使程序本身终止的错误。 该错误必须使程序停止并退出程序,而无需exit;在某个时刻显式(或等效)调用。 诸如Warning:,Notice:等之类的不会导致程序本身结束的消息是无效的。例如,在PHP中被零除会产生一条Warning消息,但程序不会停止并且仍会运行,这不是有效答案。 循环必须至少运行一个完整周期。换句话说,错误可能会在第二个周期开始或更远的时间发生。这是为了避免使用不正确的代码语法导致错误:该代码在语法上必须正确。 for(;;);如果遵循上述规则,则该循环甚至可以是无限循环(示例),但是结束运行时错误必须花费不超过2分钟。 无尾调用优化的递归是无效的(1,2)。 这是代码高尔夫球,因此最短的代码获胜。 禁止出现标准漏洞。 C#示例(在线测试): using System; public class Program { public static void Main() { int i; int[] n; n = new int[5]; for(i=0; i<7; i++) { n[i] = i; Console.WriteLine(n[i]); } } } Output: 0 1 2 3 4 Run-time exception (line …
61 code-golf 

30
Art Attack KoTH
条目现已关闭。任何新条目或编辑内容将不计入最终运行次数。 加入聊天! 挑战 尝试用尽可能多的油漆填充画布。但是要注意其他可能掩盖您辛苦工作的机器人! 注:在这个挑战说明,涂料是指以改变正方形的颜色对电网和未上漆意味着对电网的广场上有颜色0,而不是归因于任何机器人的。 输入项 您的函数将被赋予四个参数:您自己,网格,所有机器人在网格上的位置以及游戏信息。 我 这是一维数组,表示您在网格上的颜色和位置:[id, xpos, ypos]。 网格的左上角是位置(0, 0)。位置(1,0)在该位置的右侧,位置(0,1)在下方 您的ID是一个与您的颜色同义的整数(请参阅下文,了解您的ID如何影响绘制网格的方式)。您的ID对您的漫游器而言是唯一的。 格网 这是一个2D数组,其中包含整数,告诉您每个单元格是什么颜色。如果网格单元的数目为0,则表示该单元未上漆。如果网格单元的数目是整数x,则表示该单元已被机器人用ID绘制x。 要获取位置的网格颜色(x, y),请使用数组,如下所示:grid[x][y]。 机器人 这是一个数组,其中包含有关机器人位置的信息。bots数组的每个元素都是一个描述每个bot的数组,看起来像:[id, xpos, ypos],其中idbot的ID,是bot xpos的x位置,是bot ypos的y位置。 该数组包括您自己的机器人的位置和ID。被淘汰的漫游器将不包含在此阵列中。 游戏资讯 这是一个包含有关当前游戏信息的数组,如下所示:[roundNum, maxRounds]其中,roundNum是当前回合的编号(1索引),maxRounds是当前游戏的回合数量。 输出量 输出应该是您的函数返回的字符串。这是运动命令。 运动命令确定您的下一个动作。可用的命令是: up down left right wait 每当您移动时,就绘制要移动到的正方形。(请参阅下面的详细信息) 哪里wait意味着你不动。(但您要绘制停留的正方形) 如果尝试移出网格,则命令将被忽略,并且将留在原处。 画网格 每当您移动到正方形时,都需要对其进行绘画,但是有一些规则可以确定该正方形的颜色。 如果正方形未绘制(0),则只需将其绘制为与自己的ID相同的颜色。但是,如果正方形先前已绘制过(非零),则将根据以下JavaScript代码找到正方形的最终颜色: [botColour, 0, floorColour][Math.abs(botColour - floorColour)%3] 制定此公式是为了使机器人能够在不重绘颜色的情况下移动自己的颜色。 消除 如果在第5轮之后您绘制了一个或更少的正方形(网格上与您颜色相同的正方形数),那么您将被淘汰。这意味着您将不再参与游戏,并且会自动输。 …

30
使您的语言*大部分*无法使用!(警察的线)
受到此评论的启发... 多亏了用户Step Hen,Wheat-Wizard和Dennis,他们在发布之前帮助我巩固了这一挑战的规格! 这是警察的话题。有关强盗的线索,请转到此处 在这个挑战中,您需要运行一些代码来使您的语言不再满足我们成为编程语言的条件。在这一挑战中,这意味着要做到这一点,以便不再能使用该语言... 进行数字输入和输出 将两个数字相加 测试某个数字是否为质数。 这是警察和强盗的挑战,其中有两个不同的挑战,目标是两个不同:警察将尝试编写一些使该语言几乎不可用的代码,而强盗将尝试找到允许警察使用的隐藏变通方法恢复他们的语言。 作为警察,您必须编写两个代码段: 一种使您的语言几乎不可用的方法,例如,通过删除用于进行输入/输出和数字运算的内置函数。您删除的功能越多越好。此代码是不是允许崩溃或退出。应该可以在此代码段的末尾添加代码,并且该代码将得到评估。和... ...将两个非负整数作为输入,将它们加在一起并输出其和的代码段。即使运行第一个代码段后,该代码段也必须仍然能够正常运行。当两个代码片段组合在一起时,它们必须形成一个将两个数字相加的完整程序,或者定义一个将两个数字相加的函数。理想情况下,此代码段应依赖于非常晦涩的行为,以便更难找到。 您可以选择任何标准的输入和输出方法。但是,您必须准确显示所使用的格式(输入和输出)。除非他们使用与您相同的格式,否则强盗无法破解您的答案。 编写完这两个片段后,您必须发布第一个片段作为答案,而不必透露第二个片段。您的答案应包含以下所有信息: 第一个摘要(显然不是第二个)。 语言(包括次要版本,因为大多数提交可能都依赖于奇怪的情况) IO格式,包括功能或完整程序。强盗必须使用相同的格式来使破解生效。 任何奇怪的情况下,您的答案才能起作用。例如,仅在linux上运行,或者需要Internet连接。显然,这是有点主观的,但是如果警察具有某种极端的边缘情况以防止其破裂,然后仅在安全后才显示出来,我认为这是差劲的运动精神。潜在的抢劫犯应该掌握所有必要的信息,以便在破解之前将其破解。 除非您的答案是安全的,否则您无需透露字节数。 这是一个例子。对于第一个代码段,您可以提交以下Python 3程序: Python 3 print=None 从STDIN接收输入并输出到STDOUT 然后作为第二个片段,您可以编写: import sys a,b=int(input()),int(input()) sys.stdout.write(a+b) 这是有效的,因为它将两个数字作为输入,并且即使您将两个摘要合并在一起也可以输出它们的总和,例如 print=None import sys a,b=int(input()),int(input()) sys.stdout.write(a+b) 但是,这对于抢劫犯来说非常容易找到解决方案。由于这很容易破解,因此您可以尝试修补这种特定方法,如下所示: import sys sys.stdout=None print=None 但是,即使这样也有非常简单的解决方法: del print a,b=int(input()),int(input()) print(a+b) 作为警察,您的目标是使隐藏的变通办法尽可能模糊,以防止强盗找到它。 该劫匪会看你的答案之一,并试图破解它。他们可以编写任何可以用作代码片段2的有效代码片段(在使该语言几乎不可用之后将两个数字加在一起)来破解它。但这不是必须是相同的片断,你原本打算。如果强盗破解了您的答案,他们将在您的答案上留下评论,然后您应对其进行编辑以表明它已被破解。如果您的帖子被破解,则应编辑答案以显示您最初打算的解决方案(代码段2)。这本身不是规则,只是为了保持游戏趣味性的友好建议。你不必。 如果一个星期都没有弄清答案,则可以在第二个片段中进行编辑,并指出您的答案现在是安全的。如果您在一周结束后仍未对其进行编辑,则其他用户仍可以对其进行破解,直到您这样做为止。如果您不显示第二个摘要,则无法为您的答案要求分数,也可以称之为安全。 警察线程的胜者是最短的安全答案,包括两个摘要(以字节为单位),并且经过足够的时间后,才会接受此答案。你不是要透露你的字节数,直到你的答案是安全的,因为字节数无关,你的分数,直到你的答案是安全的。如果有足够的时间过去,并且没有答案,那么赢家将是在最长时间内保持不变的答案。 …

28
为什么6害怕7?
为什么6害怕7?因为7 8 9! 给定字符串,请执行以下转换: 如果7旁边有6,则删除6(6害怕7) 如果出现序列“ 789”,则删除8和9(7 ate 9) (如果我没记错的话,以什么顺序进行转换都没关系) 继续应用这些转换,直到不再使用。 例: 78966 首先我们看到“ 789”,因此字符串变成“ 766”。然后我们看到“ 76”,所以我们取出6,字符串变成“ 76”。然后我们再次看到“ 76”,所以我们剩下“ 7”。 测试用例: 987=> 987(顺序不正确。不执行任何操作。) 6 7=> 6 7(空格用作6到7之间的缓冲区。什么都没有发生) 676 => 7 7896789 => 77 7689 => 7 abcd => abcd
61 code-golf  string 

15
我讨厌文件名中的空格
很简单。当人们在命名文件时使用空格时,我无法忍受。有时会破坏控制台命令,并使ls的输出变得难看。 挑战是编写一个程序(仅ASCII字符), 将当前目录中的所有文件(包括目录)重命名为已删除空格或由'_'代替的版本 发生碰撞时,您需要附加一个唯一的标识符(由您自己决定) 递归地进入所有子目录 您可以采用UNIX样式的路径名。无论如何,谁会在Windows计算机上需要此程序? 这是代码高尔夫,最短的程序获胜(#ascii字符)。由于我非常讨厌空格,因此每个空格必须计数两次。 请提供您的语言,分数,程序以及运行方式的简短说明。 该程序必须在我的Linux机器上进行合理的编译和执行。 编辑:由于Etan请求测试的文件结构,这是我当前用来创建合适的文件树的脚本: #!/bin/bash rm -r TestDir touchfiles() { touch my_file touch my__file touch "my file" touch "my file" touch " my_file " } mkdir TestDir cd TestDir touchfiles for dir in "Test Sub" Test_Sub "Te stSub" Te_stSub do mkdir "$dir" cd "$dir" …

30
编程语言测验,Mark II-警察
这个挑战的转贴。元讨论。沙盒发布。问题的主体与原始的相似 强盗的挑战 这位警察和强盗现在(2018年8月3日)不接受进一步竞争的警察参赛,因为强盗可能不再竞争公开答案,而是随时发布新答案。 丹尼斯以出色的6字节Sesos答案赢得了警察挑战赛 强盗挑战赢得了全人类的惊人的30条裂缝! 警察的挑战 参加警察比赛: 选择一种编程语言。一种有效的编程语言是可以满足以下所有三个条件的语言: 发布此挑战时,该文章有英文Wikipedia文章,esolangs文章或Rosetta Code文章,或者在“ 在线试用”上!。在这些页面中的任何一个链接都有口译员,使该口译员完全合法。 它必须满足我们关于构成编程语言的规则 它必须有一个免费的口译员(如啤酒)。这里免费意味着任何人都可以使用该程序而无需付费。 编写一个完整的程序,以升序输出从1到100(包括1和100)之间的数字。您可以输出为十进制整数,字节码值(!例如,代表33)或一进制数字(例如,代表11114)1。如果使用一元数,则应对数字使用任何一致的字符,并使用不同的一致的字符作为分隔符。如果使用整数,则应在每个数字之间输出一个恒定的非数字定界符。您也可以输出带有前导和尾随字符(例如[]),但请保持明智(例如,不要在计数的两边输出一千个字节的垃圾)。您必须在答案中指定输出格式。 您不得使用REPL环境或现有的样板代码。可以使用标志,但是您必须揭示答案中使用了哪些标志。该程序必须采用一个或多个源文件的形式(以排除诸如Folders之类的古怪语言),并且必须完全适合您的答案(因此其长度不能超过65,536个字符)-这对于任何认真的意见。 如果您的代码包含可打印ASCII +换行符之外的字节,请提供一个十六进制转储以确保您的代码可实际测试。 该程序必须在典型的台式PC上在5分钟内终止。 而已。但是,与所有内容一样,有一个陷阱。由于强盗的任务是猜测您使用的语言,因此您应该尽可能地使程序模糊。您还应该确保程序只能以预期的语言运行(尽管与原始挑战中的Foo破解相比,这可能是个小问题)。输出格式必须与预期的解决方案相同,以构成有效的破解。 一旦7天有没有人发现过的任何地方你的程序是有效破解的语言,你可以展示的语言并将其标记为safe。请注意,您的提交仍然可以被破解,直到您透露语言为止。 一旦发布,您在任何情况下都不得编辑提交的源代码(因为这可能会使强盗试图破解答案的积极尝试无效)。因此,在发布之前,请确保尽可能(或不敢)打高尔夫球。如果您发现答案发布后仍然无法使用,只需删除答案并发布固定版本即可。 以字节为单位的最短安全提交方式将获胜! 1:如果您希望以其他方式输出,请在评论中询问 堆栈片段 您可以使用此堆栈片段更轻松地浏览答案: answersSafe=[];answersCracked=[];answersUncracked=[];answerPage=1;robberTodo=[];userNames={};robberMap={};robberStats={};robberTimes={};function template($element,data){var $clone=$element.clone().removeClass('template');var html=$clone.html();for(var key in data){html=html.replace('{'+key+'}',data[key])}$clone.html(html);$element.after($clone)}function hideEmpty(){$('tbody').each(function(){if($(this).find('tr:not(.template):has(td)').length==0){$(this).find('tr:not(.empty):has(th)').addClass('inactive');$(this).find('tr.empty').removeClass('inactive')}})}function formatError(obj,reason){template($('.warn.template'),{id:obj.cop_id,cop:obj.cop_user,reason:reason})}function showAnswers(category,selector,sorter){sorter(category);$('#'+selector).find('tr:not(.template):has(td)').remove();$.each(category,function(i,answer){template($('#'+selector+' .template'),answer)});$('code:has(br)').addClass('clickable').click(function(){$(this).toggleClass('full')});updateCountdowns()}function getAnswers(){$.ajax({url:"https://api.stackexchange.com/2.2/questions/155018/answers?pagesize=100&order=desc&sort=creation&site=codegolf&filter=!*LUzJZNOIUpZsWsZBLe&page="+(answerPage++),method:"get",dataType:"jsonp"}).then(function(data){$.each(data.items,function(i,answer){var obj={cop_id:answer.answer_id,cop_user:answer.owner.display_name,cop_time:answer.creation_date,safe_on:answer.creation_date+604800};var $e=$('<div/>').html(answer.body);var $headers=$e.find(':header');if($headers.length==0){return formatError(obj,"no header")}var header=$headers.first().html();var $code=$e.find('pre code');if($code.length==0){return formatError(obj,"no code")}obj.code=$code.first().html().replace(/\n/g,'<br/>');if(obj.code.endsWith('<br/>')){obj.code=obj.code.slice(0,-5)}var bm=/(\d+)\s+bytes/.exec(header);if(bm==null){return formatError(obj,"no bytecount")}obj.size=parseInt(bm[1]);if(obj.size==NaN){return …

30
有损排序(实施Dropsort)
由David Morgan-Mar设计的Dropsort是线性时间“排序算法”的一个示例,该算法可以生成实际上是已排序但仅包含某些原始元素的列表。任何不小于其最大元素数量的元素都将从列表中删除并丢弃。 在此任务中,将为您提供一个整数列表作为输入(STDIN或函数参数,要求您至少支持8位有符号整数的范围。)您的任务是对它们进行dropsort,然后将剩余的元素输出到订购。 您可以假定列表为非空。 这是代码高尔夫,所以最短的程序会获胜。 测试用例 Input Output 1 2 5 4 3 7 1 2 5 7 10 -1 12 10 12 -7 -8 -5 0 -1 1 -7 -5 0 1 9 8 7 6 5 9 10 13 17 21 10 13 17 21 10 10 10 …

15
画出欧元符号
目标是根据以下规范输出或显示带有€(欧元)符号的图像(忽略符号的边框)。 来源:http : //en.wikipedia.org/wiki/File : Euro_Construction.svg 规则: 程序/脚本必须将€符号的高度(以像素为单位)作为参数(符号周围的空白是可选的) 的€符号不能被绘制为或从字符,直接(它禁止print所述€图像中)或间接(计算8364然后在HTML页面显示它) 输出不需要保存到任何文件,可以显示然后将其显示为屏幕截图 禁止使用标准“漏洞” 最短的代码胜出

5
黑色和白色的彩虹
给定一个图像,该图像仅包含黑白像素,并且(x,y)位置是白色像素,请根据白色像素与(x,y)的最小曼哈顿距离为它们着色,该路径仅涉及遍历其他白色像素。 彩色像素的色相必须与其与(x,y)的距离成正比,因此(x,y)处的像素的色相为0°(纯红色),而距(x,y)的像素最远将具有360°的色相(也为红色),其他色相之间无缝且线性地混合。的饱和度和值都必须是100%。 如果白色像素未通过其他白色像素连接到(x,y),则它必须保持白色。 细节 输入将包含图像的文件名或原始图像数据,以及x和y整数。 可以将输出图像保存到文件中,或以任何常见图像文件格式将其原始传输到stdout,或简单地显示出来。 x值在最左边的像素为0,向右增加。y值在最上面的像素中为0,并随着下降而增加。(x,y)将始终在图像范围内。 完整的程序和功能都被允许。 以字节为单位的最短代码获胜。 例子 所有这些图像均已缩小以节省空间。单击它们可查看完整尺寸。 输入图片: (x,y) = (165,155) 和 (x,y) = (0,0) 输入图像并输出(x,y) = (0,0): 输入图像并输出(x,y) = (600,350): 输入图像并输出(x,y) = (0,0): 输入图像并输出(x,y) = (0,0): 可选的-30%奖金:使用欧几里得距离。有关您的算法的建议如下(总体概述): 有一个开始像素。 从该像素进行洪水填充。 对于泛洪填充中达到的每个像素, 从开始像素到该像素以半个单位的步长直线移动。 在每个步骤中,将其应用于int()x和y坐标。如果这些坐标处的像素为黑色,请停止。否则,请继续。(这是一种视线方法。) 任何与白色像素和/或先前用明显更高的距离(即+10)标记的像素接壤的到达像素都将成为起始像素。 从更广义的意义上讲,该算法从起始像素/已经彩色的像素开始沿直线扩展到每个像素,然后沿边缘“英寸”延伸。“明显更高的距离”位用于加速算法。说实话,它并不真正的问题是如何在实现欧氏距离,它只是看起来很像这一点。 使用上面的算法,这是第一个具有欧几里得距离的示例的样子: 输入图像和 (x,y) = (165,155) 非常感谢Calvin'sHobbies和trichoplax帮助编写此挑战!玩得开心!

30
用6乘9会得到什么?(42)
我爱数学。但是我找不到一个可以正确相乘的计算器。他们似乎把6 * 9以外的所有东西都弄对了(这是生命,宇宙和一切的问题!他们怎么会出错?!)。因此,我希望大家为我编写一个可以正确乘以2的函数(并且6 * 9等于42而不是54。9* 6仍等于54)。 哦,我将不得不在Minecraft中构建源代码,以便……赢得最少的字节! 概括 以2个数字作为输入(类型无关紧要,但是只传递2个项目,并且顺序必须一致。因此,流和数组只要保留它们传递的顺序就可以。)无法正常运作,因为它无法保留订单) 输出两个数字的倍数,除非它们分别为6和9,然后输出42(顺序很重要!) PS。我从未真正擅长计数,因此我认为只有0到99的整数是实数(使用的类型无关紧要) 每种语言的最少字节数获胜! 排行榜: 显示代码段 var QUESTION_ID=124242,OVERRIDE_USER=61474;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+r.match(SCORE_REG)[0],language:r.match(LANG_REG)[0].replace(/<\/?[^>]*>/g,"").trim(),link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/\d+((?=$)|(?= Bytes))/i,OVERRIDE_REG=/^Override\s*header:\s*/i;LANG_REG=/^[^,(\n\r]+/i body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" …

30
画我的斜线
作为程序员,您可能听说过正斜杠和反斜杠。但是您听说过减斜线吗?那是当您采取一堆斜线,连接它们的末端并使其下降时。 对于今天的挑战,您必须编写一个程序或函数,该程序或函数采用一个纯粹由斜杠组成的字符串,并输出在连接它们的直线中向下绘制的所有斜杠。如果您看到一个示例,这将更加清楚。给定字符串\\\//\/\\,您应该输出: \ \ \ / / \ / \ \ 以下是一些说明: 每行必须有一个斜线。 第一行将有0个前导空格。 对于每对斜杠: 如果它们彼此不同,则将它们绘制在同一列中。例如,\/将给出: \ / 如果它们是相同字符,则下一个字符指向的方向,即向右移动一个反斜杠,向左移动一个正斜杠。所以\\//会给 \ \ / / 每行可能会有多余的尾随空白,只要这不会改变输出的视觉外观。最多也可以使用一个尾随且领先的换行符。不允许有多余的前导空格! 为了简化操作,您可以假设该字符串永远不会包含太多的正斜杠。换句话说,输入的前缀不会包含比反斜杠更多的正斜杠,因此永远不会给出类似\\////或的输入//。这也意味着每个输入都将以反斜杠开头。 如果将输入作为字符串文字使用,则必要时可以转义反斜杠。您也将永远不需要处理空的输入或包含除斜杠以外的字符的输入。 您可以采用任何合理的格式输出。 像往常一样,这是一个挑战代码的挑战,因此即使您选择的语言很难,也请尝试提供最短的解决方案。奖励积分,用于解释您曾经剥夺字节数的任何有趣技术! 例子 #Input \\\\\\\\\\\ #Output \ \ \ \ \ \ \ \ \ \ \ #Input \\\//\\/\//\\/// #Output \ \ \ / …

30
神秘字符串打印机(警察)
可以在这里找到强盗线程:神秘字符串打印机(强盗) 你的挑战 编写将字符串输出到STDOUT的程序,函数或REPL脚本。 强盗将尝试创建一个打印相同字符串的程序。 如果他们可以在7天内成功创建程序,则您的提交将被破解。 如果没有人可以创建一个程序在7天内打印出相同的字符串,则您提交的文件很安全。您可以选择展示您的程序,也可以选择挑战未来的强盗。但是,如果您不公开它,您将无法从提交中获得任何要点(如果选择这样做,请不要在答案标题中添加“安全”字样)。 限制条件 该程序必须小于或等于128个字节(稍后将对此进行更多说明)。 如果程序取决于程序名称或外部文件的名称/内容,则必须说是这样做,并将其包括在总字节数中。 打印的字符串必须小于或等于2048个字节。 打印的字符串必须仅包含可打印的ASCII字符(可以包含新行)。 程序每次运行都必须产生相同的输出。 不允许使用内置的加密原语(包括任何rng,加密,解密和哈希)。 该程序不得输入。 没有标准漏洞。 计分 如果提交在7天之前被破解,则该提交将获得0分。 ≤128个字符的安全提交将获得1分。 ≤64个字符的安全提交将获得2分。如果小于或等于32个字节,则获得4分,依此类推。 每个安全提交还可以获得额外的3点奖励(与长度无关)。 第一次破解后,每次破解都会被罚款(1/2分)。 请注意,强盗的解决方案必须在相同的程序长度范围内。 每个人在每种语言的每个字节范围内最多可以提交1个程序(不同版本和同一语言的任意替代不算作单独的语言)。示例:您可以发布32字节和64字节的pyth程序,但是不能发布Java 7和Java 8中的128字节的程序。 总积分最高的人获胜。 意见书 每个提交都必须具有以下信息: 语言名称。所有新强盗的解决方案必须使用相同的语言。 程序大小的范围(这是比程序大小大2的最接近的幂;例如,如果您的程序为25字节,则为“≤32”)。 要打印的实际字符串。 如果提交是安全的,请在标题中输入“ safe”和程序长度(最接近2的幂)。如果标题中有多个数字,则将2的幂放在最后。 该堆栈摘录生成排行榜并列出所有打开的提交。如果代码段有任何问题,请发表评论。 显示代码段 /* Configuration */ var QUESTION_ID = 60328; // Obtain this from the url // It …

12
ASCII火车高尔夫
考虑这七辆ASCII火车。 引擎(E) __ ====== \/ | [] |========= | ) ================ O-O-O O-O-O \\ 乘用车(P) =============== | [] [] [] [] | =============== O-O O-O 棚车(B) =============== |-|-| | |-|-| =============== O-O O-O 油轮(T) _____---_____ ( ) =============== O-O O-O 料斗(H) _______________ \ | | | | | | / …

9
饥饿游戏-吃或死
饥饿游戏-吃或死 如果不吃饭,就会死。如果吃饭,你就活着(直到死)。你会死的,所以尝试最后死。 总览 有一个岛上有一群捕食动物。您控制着五个捕食者。您的目标是使背包保持活力。通过吃猎物来做到这一点。猎物倾向于逃避捕食者的攻击,否则会试图留在一群人中。当然,您的背包将与其他所有背包都位于同一场地,因此比赛将尽一切可能尝试食用。不要让这种情况阻止您,否则您将饿死。 怎么玩 创建并提交命令行程序来指导您的背包。它将从STDIN上的控制程序接收状态信息,并在STDOUT上输出命令。该格式在下面详细概述。每个程序仅执行一次,并且必须保持运行状态,直到没有其他Pack成员处于活动状态为止。您将需要读取输入内容,并迅速做出反应。每个响应都有200ms的严格超时时间。如果您到那时还没有回应,您的背包将不会收到当前回合的新指示。 如果控制器无法运行您的程序,则该程序将被视为无效。请包括我将用于运行提交的命令行字符串。如果有任何特殊说明(用于设置编译器等),请附上它们。如果无法正常工作,请在评论中寻求帮助。如果您没有回应,我将无法接受您的提交。 比赛将在64位Linux系统上举行。提供任何必要的指示时,请记住这一点。 细节 每个生物的位置和方向都是一对分别double代表其x和y坐标的双精度浮点数(例如)。 每个生物都被认为是一个点。这意味着它们可以重叠并占据相同的空间。您不会被撞到一边,也没有与其他生物碰撞的概念。 该岛是一个正方形,每边500个单位。如果您尝试超越这些界限,那么您将被束之高阁。原点{0,0}在左上角,x向右y增加,向下增加。再次,地图不包装。 游戏开始于1500 +(packCount * 50)个猎物动物。他们将聚集在该岛的中心,但很快决定开始行动。 包装将围绕周边均匀分布。打包订单被打乱了,因此不要指望从特定位置开始。 捕食动物可以看到30个单位半径内的所有其他动物。它们每转最多可以移动6.0个单位。 掠食者可以看到半径为50单位的所有其他动物,它们每回合最多可以移动6.1单位。这意味着它们可以在被看见之前先看见猎物,然后(几乎)不被掠夺。 捕食者根据饥饿程度生活和死亡。它从1000开始,每转减少一。如果在移动之后,捕食者处于1个单位的捕食范围内,它将自动吃掉它。这会移除猎物并将捕食者的饥饿感设置为1000。每个捕食者每回合只能吃一个猎物。如果范围之内有一个以上,它将吃掉循环最先到达的那个(不一定是最接近的一个)。如果饥饿达到零,捕食者就会死亡。 包以五个成员开头。每旋转5000圈,仍在游戏中的所有背包都会产生一个新成员。它将放置在其他包装成员的可见范围内。确保您的条目可以处理五个以上的成员。 每旋转1000圈,就会产生更多的猎物。新猎物的数量将是活着的捕食者的数量减一。 食肉动物无法攻击其他食肉动物。他们捕获时会吃猎物。而已。 转弯内的顺序为: 所有猎物都做出决定 所有掠夺者做出决定 所有猎物移动 所有掠食者移动/进食 每个组合做出决定/移动的顺序将在每个回合中随机分配。 协议(一般) 所有通信均以字符串格式进行US-ASCII。使用Java Double.toString()或将数字转换为字符串Integer.toString()。您的输出必须经过格式化,以便可以被Java读取Double.valueOf(String)(您将不会输出整数)。有关可解析格式的详细信息,请参见的文档Double。一行中的所有字段均由标准\t字符分隔,换行符为\n。整个字符串将以null字节终止\0。 在下面的示例中,<>出于可读性考虑,我正在使用这些字段进行标记。这些不在实际的字符串中。 协议(输入) 输入字符串的长度会有所不同,具体取决于您的背包可以看到多少个生物。它可以超过10万个字符,因此请为此做好准备。基本设置是: 第0行:有关游戏的基本信息。turn是当前的回合编号,计数是字段上剩余的猎物和掠食者的总数。这些是integer字符串形式。 <turn>\t<preyCount>\t<predatorCount>\n 第1行:您的背包成员的唯一ID和饥饿水平。对于每个输入,这些输入的顺序都不相同。使用唯一的ID来跟踪单个成员,而不是它们在输入中出现的顺序。同样,这些都是integer字符串。对于两个包,这将是: <id[0]>\t<hunger[0]>\t<id[1]>\t<hunger[1]>\n 第2行:您的背包成员的位置,与第1行中给出的顺序相同。这些是double作为字符串: <x[0]>\t<y[0]>\t<x[1]>\t<y[1]>\n 以下几行是每个包成员的可见性,其顺序与第1行中给出的顺序相同。这些将以每个成员两行的形式给出。 每个人的第一个包括他所看到的猎物的位置。第二个是他所看到的掠食者的位置。这些位置在整体上并不是唯一的。例如,如果两个背包成员可以看到同一只动物,则它将出现在两个成员的字符串中。此外,您自己的背包会员也将包括在内。如果要排除它们,则可能需要将位置与您自己的成员进行比较。所有位置均为double字符串格式。 对于每个在世成员: <prey[0].x>\t<prey[0].y>\t<prey[1].x>\t<prey[1].y>\n <predator[0].x>\t<predator[0].y>\t<predator[1].x>\t<predator[1].y>\n 最后,下一个字符将\0在下一行的开始处为。 例外:如果收到输入dead\0,则说明包已死。请优雅地结束程序。控制器应在关闭时关闭所有活动进程,但我宁愿不要在各处都设置僵尸进程。出于礼貌,您可以包括输入超时。例如,如果示例类在15秒钟内未收到输入,则该类结束。 协议(输出) 输出很简单。您将为double每个活动包成员提供一对值。这些代表您希望他们在此回合中采取的动作。例如,如果您的生物当前在,{100.0, …

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.