编程拼图和代码高尔夫

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

28
使用堆栈片段使将来的帖子可在线运行
堆栈片段中最近加入PPCG!让人想起JSFiddle,堆栈片段允许直接在帖子中运行HTML,CSS和JavaScript ! 这是一个非常简单的堆栈片段: alert('This is JavaScript') h3 { color: red } /* This is CSS */ <h3>This is HTML</h3> 运行代码段隐藏结果展开摘要 如果支持JavaScript以外的语言,Stack Exchange的此功能对我们非常有用。(可以现场测试挑战的答案,可以动态生成示例输入,等等)。 挑战 这项挑战的目标是使用Stack Snippets和JavaScript为某些编程语言编写解释器。关键是要做出可以轻松复制并在以后的PPCG问题和答案中使用的内容。 或多或少,您需要创建一个具有“运行”按钮和两个文本框的堆栈片段,一个用于代码,一个用于输入。单击运行按钮将在输入上执行代码(以您解释的语言编写)并显示结果(可能在另一个文本框中)。该代码段应类似于cjam.aditsu.net或示例答案。 对于大多数语言,输入和输出分别代表stdin和sdout有意义,并且命令行中可能还有另一个输入框。但是,并非所有语言都具有这种传统的I / O机制。例如,HQ9 +甚至没有输入,因此它的文本框毫无意义。因此,可以自由选择一些自由语言,围绕语言进行设计,而不是遵循此规范。主要要求是您的语言应在堆栈摘录中以该术语的公认含义“可运行”。 笔记 尽管理想,但不需要实现语言的每个功能。诸如读取和写入文件或导入库之类的事情可能是笨拙的或不可能的。专注于使此网站上使用的实用程序最大化的解释器。 将您未编写的“ X语言到JavaScript语言”解释器发布(可以使用归因)是可以的。 Stack Exchange将答案限制为30,000个字符,因此,如果您的解释器可能很长,请相应地计划。 最好使翻译版本尽可能容易地包含在以后的帖子中。例如,在示例答案中,提供了整个代码段的原始Markdown,并提供了放置代码和输入的明显位置。 尽管此问题旨在使口译人员更胜一筹,而不是一个适当的挑战,但它仍然是一场流行竞赛,因此,票数最高的答案将获胜。 当前口译员清单 (按语言名称按字母顺序排序) 光束 Befunge-93 脑干 脑干 CHIQRSX9 + 死鱼 死鱼(仅运行预设代码) 傅里叶 FRACTRAN …

30
在JavaScript中打高尔夫球的技巧
您对使用JavaScript打高尔夫球有哪些一般提示?我正在寻找可以应用于编码高尔夫问题的想法,这些想法至少在某种程度上特定于JavaScript(例如,“删除评论”不是答案)。 注意:另请参阅ECMAScript 6及更高版本中的打高尔夫球技巧

22
红色与蓝色-Pixel Team Battlebots
比赛正式结束。蓝队获胜! 我autoran 2 组的50个战斗和令人惊讶的,蓝为他们赢得了所有100个。从统计数据来看,很明显,PhiNotPi和Sp3000的合作条目是真正的英雄。你们两个干得好!实际上,如果您取消了Blue Team的其他所有成员的资格,Sphibot仍然会打出很好的战斗。一些红队人员正计划拆除Sphibot,但是这种努力似乎正在消失。对不起,红队。 竞赛已正式结束,但这并不意味着您不能再回答,这仅意味着我永远不会再宣布官方获胜者。欢迎两个团队继续提交机器人程序,只是为了好玩。只要以后没有任何输入中断,控制器将保持运行状态并保持运行状态。 这是一场山丘之王的比赛,但是将有两支球队参加比赛,而不是每个人都在互相对抗:红色和蓝色。获胜者只有一个。 您所在的团队取决于您的PPCG用户ID号。要找到此内容,请单击屏幕顶部的头像(您必须登录),然后查看打开的页面的网址。后面的数字users/是您的身份证号: https://codegolf.stackexchange.com/users/[id number]/[display name] 例如,我的PPCG用户ID号是26997: https://codegolf.stackexchange.com/users/26997/calvins-hobbies 请注意,对于不同的Stack Exchange站点,此数字是不同的。 如果您的ID是偶数,则说明您是Red小组的成员。 如果您的ID是一个奇数,那么您就在Blue团队中。 无法更改团队。 您必须与您的团队一起努力,以在某种战场上击败其他团队,在这种情况下,每个用户都在战场的128×128网格上控制其团队颜色的“像素”。像素可以四处移动,与队友进行交流并取出另一个团队的像素。如果任何人都可以创建任意数量的像素,那将一发不可收拾,因此每个用户只能对此问题提交一个答案。 此堆栈代码段(此小提琴 [ 全屏 ] 的缩小版本)是整个比赛的控制器。它会自动读取提交的内容,确保其有效,并在团队之间进行战斗。它随时可以使用JavaScript在浏览器中完成此操作。由于JavaScript是大多数浏览器支持的唯一客户端脚本语言,因此所有提交内容也必须使用JavaScript编写。 function toggleDebug(){debug=$("#debug").is(":checked")}function rnd(e){return Math.floor(Math.random()*e)}function shuffle(e){for(var t,a,r=e.length;r;t=rnd(r),a=e[--r],e[r]=e[t],e[t]=a);return e}function maskedEval(e,t){var a={};for(i in this)a[i]=void 0;for(i in t)t.hasOwnProperty(i)&&(a[i]=t[i]);return new Function("with(this) { "+e+";}").call(a)}function createBattle(e,t,a,r){function n(){var e=rnd(i.length),t=i[e];return i.splice(e,1),t}var l={};l.width=l.height=128,l.totalMoves=2048,l.radius=16,l.msgMaxLength=64,l.timeLimit=15,l.move=0,l.redToMove=a,l.animated=r,l.running=!1,l.over=!1;for(var o=0,i=new Array(l.width*l.height),d=0;d<l.height;d++)for(var s=0;s<l.width;s++)i[o++]={x:s,y:d};l.redTeam=shuffle(e.slice()),l.redMsgs={},l.redKills={};for(var …


30
我将源加倍,将输出加倍!
您的任务(如果希望接受)是编写一个输出正整数(大于0)的程序。棘手的部分是,如果我复制源代码,则输出必须是原始整数的两倍。 规则 您必须构建一个完整的程序。也就是说,您的输出必须打印到STDOUT。 初始源必须至少为1个字节长。 两个整数都必须以10为底(禁止以其他任何底数或以科学计数法输出)。 您的程序不得接受输入(或具有未使用的空输入)。 允许输出带有尾随/前导空格的整数。 您可能不会在源副本之间使用换行符。 这是代码高尔夫球,因此每种语言中最短的(原始)代码胜出! 默认漏洞适用。 例 假设您的源代码为,ABC并且其对应的输出为4。如果我ABCABC改为编写并运行它,则输出必须为8。 排行榜 这使用@manatwork的layout。 显示代码段 /* Configuration */ var QUESTION_ID = 132558; // Obtain this from the url // It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER = "!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe"; var COMMENT_FILTER = "!)Q2B_A2kjfAiU78X(md6BoYk"; var OVERRIDE_USER = 8349457; …

30
如此真实的键盘,几乎可以品尝到
...不是那样的,对吧?任务很简单,输出以下文本: ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ________ ||` |||1 |||2 |||3 |||4 |||5 |||6 |||7 |||8 |||9 |||0 |||- |||= |||BS || ||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||__|||______|| |/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/__\|/______\| ________ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ ||TAB |||Q |||W |||E …

30
混淆的世界你好
创建显示文本“ Hello World”的最短混淆程序。 为了被视为混淆程序,它必须至少满足以下两个要求: 不包含字符:h,l,w和d在任何情况下 不包含字符:e,o,r,0,和1在任何情况下 不包含以下字符:2或7 输入: 无 输出: Hello World

30
La La Land…别等,Moo Moo Moonlight
这项挑战是对2017年奥斯卡最佳影片奖得主La La Land Moonlight的致敬! 编写一个函数/程序,该函数/程序接受仅包含字母的字符串[A-Za-z],该字符串是日常句子.,'?和空格中常见的四个符号 ,并以La La Land的样式输出该字符串。 更具体地说,将字母带到第一个元音组,包括第一个,然后打印/输出两次,每次添加一个空格,然后打印/输出整个字符串。y是这个挑战中的元音。标点符号和大写字母应保留。 您可以假定所有字符串至少包含一个元音,并且所有字符串均以字母开头。 测试用例: Land La La Land Moonlight Moo Moo Moonlight quEueIng quEueI quEueI quEueIng This isn't a single word. Thi Thi This isn't a single word. It's fun to play golf I I It's fun to play golf Ooo Ooo Ooo …
122 code-golf  string 

30
最短的无限循环不产生任何输出
您的任务是创建最短的无限循环! 挑战的重点是创建一个不产生任何输出的无限循环,这与其可能的重复不同。这样做的原因是因为如果没有给出输出,代码可能会更短。 规则 每个提交都必须是完整程序。 您必须创建最短的无限循环。 即使您的程序最终内存不足,只要它从开始到内存耗尽一直在运行,它仍然会被接受。同样,当内存不足时,它仍不应将任何内容打印到STDERR。 该程序必须不接受任何输入(但是,允许从文件读取),并且不应将任何内容打印到STDOUT。也禁止输出到文件。 该程序不得向STDERR写入任何内容。 随意使用一种语言(或语言版本),即使它比此挑战要新。-请注意,必须有翻译,以便可以测试提交内容。允许(甚至鼓励)自己为以前未实现的语言编写此解释器。:D 提交使用适当(预先存在)的编码(通常(但不一定)为UTF-8)以字节计分。某些语言(例如文件夹)在评分上有些棘手-如有疑问,请在Meta上提问。 这与查找具有最短无限循环程序的语言无关。这是关于寻找每种语言中最短的无限循环程序。因此,我不会接受答案。 如果您选择的语言是已经有答案的另一种(可能更受欢迎)语言的琐碎变体(请考虑使用BASIC或SQL方言,Unix shell或琐碎的Brainf ** k派生词(如Alphuck)),请考虑在现有注释上添加注释回答说,相同或非常相似的解决方案也是另一种语言中最短的解决方案。 应该有一个网站,例如Wikipedia,Esolangs或GitHub。例如,如果语言是CJam,则可以链接到标头中的网站,例如#[CJam](http://sourceforge.net/p/cjam/wiki/Home/), X bytes。 不允许出现标准漏洞。 (我从MartinBüttner的“ Hello World”挑战赛中采纳了其中一些规则) 请随时在评论中发表评论,告诉我如何改进这一挑战。 目录 这是一个堆栈片段,可生成所用语言的字母顺序目录和整体排行榜。为了确保您的答案显示出来,请从以下Markdown标头开始: # Language name, X bytes 显然,更换Language name和X bytes使用适当的项目。如果要链接到语言的网站,请使用上面发布的此模板: #[Language name](http://link.to/the/language), X bytes 现在,最后是代码段:(尝试按“整页”以获得更好的视图。) var QUESTION_ID=59347;var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";var COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk";var OVERRIDE_USER=41805;var answers=[],answers_hash,answer_ids,answer_page=1,more_answers=true,comment_page;function answersUrl(index){return"//api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(index,answers){return"//api.stackexchange.com/2.2/answers/"+answers.join(';')+"/comments?page="+index+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){answers.push.apply(answers,data.items);answers_hash=[];answer_ids=[];data.items.forEach(function(a){a.comments=[];var id=+a.share_link.match(/\d+/);answer_ids.push(id);answers_hash[id]=a});if(!data.has_more)more_answers=false;comment_page=1;getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:true,success:function(data){data.items.forEach(function(c){if(c.owner.user_id===OVERRIDE_USER)answers_hash[c.post_id].comments.push(c)});if(data.has_more)getComments();else if(more_answers)getAnswers();else …
121 code-golf 

30
产生无限输出的最短代码
编写可以产生无限输出的最短代码。 就这样。您的代码只有在某个时候停止产生输出时,才被取消资格。与代码高尔夫一样,最短的代码获胜。 这是我认为非常聪明的答案列表,因此可以得到好评: 逗号既是代码又是数据 无限错误(很重要) 无限警告(也很重要) 什么是Marbelous? 排行榜 显示代码段 var QUESTION_ID=13152,OVERRIDE_USER=8611;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:+a[2],language:a[1],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=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/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" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> …
121 code-golf 

11
(-a)×(-a)= a×a
我们都知道(希望如此),但是您能证明吗?(− a )× (− a )= a × a(-一种)×(-一种)=一种×一种(-a) \times (-a) = a \times a 您的任务是使用环形公理证明这一事实。什么是环公理?环公理是一组规则的列表,一组集合上的两个二进制操作必须遵循这些规则。这两个操作是加法和乘法。对于这个挑战,这里是环公理,其中和是对某个集合封闭二元运算,是对的封闭一元运算,而,和是成员:+++××\times+++××\times小号小号S---小号小号S一种一种abbbCCc小号小号S a + (b + c )= (a + b )+ c一种+(b+C)=(一种+b)+Ca + (b + c) = (a + b) + c a + 0 = a一种+0=一种a + 0 = a a + (− a …

30
用您喜欢的编程语言唱生日快乐
您最喜欢的编程语言刚刚度过了生日。保持友善并唱生日快乐歌曲。 当然,您应该通过使用该语言编写程序来完成此任务。该程序不输入任何内容,并将以下文本写入标准输出或任意文件: Happy Birthday to You Happy Birthday to You Happy Birthday Dear [your favourite programming language] Happy Birthday to You 您应该替换方括号中的部分(并省略方括号)。 这是一场代码高尔夫-最短的代码胜出。 更新 我很高兴这个问题引起了极大的兴趣。让我添加一些有关得分的额外信息。如最初所述,这个问题是代码高尔夫球,因此最短的代码将获胜。优胜者将在本周末(10月19日)被选出。 但是,我也会用其他投票方式奖励其他机智的人(我也鼓励大家也这样做)。因此,尽管这是一场代码高尔夫比赛,但也欢迎不太简短的答案。 结果 祝贺Optimizer,他以42字节长的CJam 提交赢得了比赛。

30
ASCII的95个字符…95个电影引号
更新:获胜者已经确定,但是挑战尚未结束! 终于,在问题首次提出后近三个月,有人一直是最后一个回答者一个多星期!祝贺jimmy23013的P1eq答案! 但是,仍然剩下8个字符:48KSaclw。如果有人真的有野心,他们可以继续尝试那些:D 感谢所有参加的人,尤其是那些使比赛持续了这么长时间并提供多个答案的人,特别是KennyTM,答案高达25! 另外,感谢任何使答案列表保持最新的人,它对您有很大的帮助:)(特别是自从我离开SE几个月以来:P)。 原始问题: 2005年,美国电影协会制作了AFI的100年... 100电影行情,列出了美国电影界的最佳行情。此处列出的名称与在此挑战中应使用的名称完全相同: (answer 6) 1. "Frankly, my dear, I don't give a damn." - Rhett Butler (answer 7) 2. "I'm gonna make him an offer he can't refuse." - Vito Corleone (answer 5) 3. "You don't understand! I coulda had class. I coulda been …

30
编写一个始终输出“ 2012”的程序-即使已修改!
这个想法不是我的,尽管我不知道它的起源。很久以前(1998年,如果我没记错的话),我曾经在一次编程竞赛中遇到过它。任务是用您喜欢的语言编写一个2012 仅 输出的程序2012。值得注意的是,程序的2012任何一个字符被修改后,仍然必须输出。修改可以是插入,删除或替换。当然,修改将使该程序在语法上仍然有效。 由于我不懂所有的编程语言,因此我必须请听众帮助我并测试提交的答案。 补充:许多人评论说我对可接受修改的定义太模糊。这是我的第二次尝试:允许的修改将使您的程序在语法上仍然有效,并且不会导致程序崩溃。在那里,我认为应该涵盖所有编译时,链接时和运行时错误。尽管我确信无论如何某种语言都会出现一些奇怪的情况,所以当出现这种情况时,我们将逐一进行研究。

30
斐波那契函数或序列
的斐波纳契数列是数字,其中该序列中的每个数字是其之前的两个数字之和的序列。序列中的前两个数字均为1。 这是前几个词 1 1 2 3 5 8 13 21 34 55 89 ... 编写最短的代码,其中之一: 生成不间断的斐波那契数列。 Given n计算n序列的th个项。(索引为1或零) 您可以使用标准形式的输入和输出。 (我提供了两种选择,以防其中一种比另一种更容易用您选择的语言来做。) 对于采用的函数,必须支持n一个相当大的返回值(最小的斐波那契数(Fibonacci number)至少适合您计算机的正常字长)。 排行榜 显示代码段 /* Configuration */ var QUESTION_ID = 85; // Obtain this from the url // It will be like https://XYZ.stackexchange.com/questions/QUESTION_ID/... on any question page var ANSWER_FILTER = …

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.