Questions tagged «code-challenge»

代码挑战赛是一种创造性的竞赛,可以用客观的获胜标准来解决编程难题,而其他得分标记(例如,代码高尔夫)则无法涵盖这些目标。

30
构造身份矩阵
挑战非常简单。给定整数输入n,输出n x n单位矩阵。单位矩阵是1从左上角到右下角的s 矩阵。您将编写一个程序或函数来返回或输出您构造的身份矩阵。您的输出可能是2D数组,或者是由空格/制表符和换行符分隔的数字。 输入和输出示例 1: [[1]] 2: [[1, 0], [0, 1]] 3: [[1, 0, 0], [0, 1, 0], [0, 0, 1]] 4: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] 5: [[1, 0, 0, 0, 0], [0, 1, 0, 0, 0], …

7
(重新)实施俄罗斯方块
本着重新实现经典视频游戏的精神,我想邀请社区创建他们最好的《俄罗斯方块》实现。 供参考,是俄罗斯方块官方NES版本的屏幕截图。 必备功能 必须建立一个合理的计分系统,该系统对多行清除的奖励要高于单行清除的奖励。当前分数必须始终可见。 必须以某种方式指出将要出现的下一个片段。 七个四聚体的分布应该相当均匀(即伪随机选择)。 用户必须具有在两个方向上旋转当前零件以及加速其下降的能力。 游戏结束后,应清楚地表明游戏已经结束。 源代码必须结构化且易于理解。 可选功能 经过一定数量的清除(例如增加难度级别)后,提高下降速度,并且每行清除的分数与速度成正比。 重力。您可以选择实现“经典”重力,其中块可以保持漂浮在间隙上,或者可以选择实现“溢流填充”重力,在这种情况下,已通过线间隙与原始四聚体分离的块可能会掉落。差距。 高分数与名字输入。 行后和/或获得新的高分之后的动画。 局限性 使用的任何库(jQuery,PyGame等)都应免费提供。 源代码的大小不能超过4096字节,空格和注释除外。任何外部资源(数据文件,图像等)都将添加到代码长度中,不包括生成的任何文件(例如,高分)。 我意识到这是一个相当随意的限制;我的主要目标是不鼓励复制现有的实现,并鼓励简洁和独立。 获奖标准 该挑战赛将被评选为人气竞赛,这意味着投票最多的参赛者将被选为获胜者。投票时,我鼓励用户投票他们认为充分满足上述要求的所有提交。 第一个有效解决方案将在不超过2周的时间内选出优胜者。此外,我将向获奖者颁发赏金,大致与该问题获得的投票数成正比(10 * #votes向上舍入至最接近的50)。如果两周的比赛结束后出现平局,比赛时间将延长一星期。如果仍然有平局,我保留进行最后表决的权利。 请要求任何澄清。愿最佳实施获胜!

28
惊喜连连看
该问题是旨在庆祝Brain-Flak的第一个生日的系列Brain-flak Birthday挑战的一部分。您可以在此处找到有关Brain-Flak诞辰的更多信息。 今天是Brain-Flak的第一个生日!所以我想我们会举办一个惊喜的生日聚会。因此,以您喜欢的语言打印 Surprise! Happy Birthday, Brain-Flak! (允许尾随空格) 与往常一样,程序应该打高尔夫球。但是,由于Brain-Flak程序由方括号组成,因此不会将源中的任何方括号都计入您。(字符()[]<>{}不计入您的字节总数),但必须保持平衡,以免使Brain-Flak感到不适。 规则 这是规则的细分 您来源中的方括号必须保持平衡。那就是您的程序的括号必须用以下语法来表示: S -> SS | (S) | [S] | <S> | {S} | E E空字符串在哪里。 也就是说,平衡字符串要么是两个平衡字符串的串联,要么是在平衡字符串周围大括号,要么是空字符串。 程序的分数是非括号字节的数量。 您的目标应该是使自己选择的任何语言的得分降至最低。 应用标准规则,因此您可以编写完整的程序或函数。 如果出现平局,原始字节数将成为平局 在某些语言(括号地狱, 括号,Glypho和Lenguage)中肯定会有零字节的解决方案。尝试找到在这不是一件小事的语言中打高尔夫的好方法。

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

14
您需要输出其余部分的ASCII的最短连续子集是什么?
所述可打印的ASCII字符,以便(十六进制代码20至7E)为: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ (请注意其中有空间。) 从左到右读取时,此字符串显然包含所有可打印的ASCII字符至少一次,以升序排列,但不以降序排列。 字符串 REVERSED:~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! NORMAL: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 包含所有可打印的ASCII字符,至少按升序和降序一次。换句话说,当用数字代码对字符进行赋值时,最长的递增和最长的递减子序列的长度为95(可打印ASCII字符的数量)。 挑战 选择N个可打印ASCII字符的连续子集,例如LMNOP(N = 5)。像上面的示例一样,仅使用输出结果包含全部95个ASCII字符(按升序和降序)的N个字符编写程序。 获胜者是N最低的提交。如果是平局,则以字节为单位的最短代码获胜。 笔记 连续的子集表示一组全部以不间断的行出现的可打印ASCII,例如LMNOP或89:;<=>。 您的连续子集可能从~太空“循环” ,但这对N造成+3惩罚。因此{|}~N = 4,但{|}~ !N = 6 + 3 = 9。 您的程序可能只包含您选择的连续子集中的N个可打印ASCII字符。它们不必全部出现,并且可以任何顺序多次出现。(不允许所有不可打印的ASCII和所有非ASCII。这意味着不允许使用制表符和换行符。) 您的输出只能包含可打印的ASCII字符,并且必须少于10000个字符。 输出的最长的递增和递减子序列都必须具有长度95(如上所述)。 输出到标准输出。没有输入。 N是小于96的正整数。

9
编写最短的程序,生成最多的编译器警告和错误
挑战: 编写一个非常简短的程序,该程序在编译时会创建最多数量的编译器警告和错误。可以用任何编程语言编写。 得分: 分数由以下公式确定:errors_and_warnings_length/code_length。最高分获胜。 例: C#程序的class长度为5个字符,并生成3个警告,得分为(1/5)* 3 = 0.6。 编辑: 由于某些混淆,程序必须至少为1个字符长。否则它将得到无穷大。

9
保留的JavaScript
如2015年的ECMAScript的,JavaScript有33个保留关键字,诸如break,const和new,以及10个日后保留关键字,如let和await。 您的任务是在编写功能性JavaScript代码3的同时,将最大数量的连续1个不同的保留关键字2链接在一起。 连续保留关键字-保留关键字,仅由空格和/或括号和/或花括号分隔。 保留关键字- 自ECMAScript 2015起的任何保留或将来保留的关键字。较早的标准中保留的关键字不包括在内,下面列出了允许的关键字的完整列表。 功能代码-您的代码应该运行(必要时声明运行时),最终停止运行,并且不会引发任何运行时错误。 如果您的代码需要特定的运行时,则在给定环境中,使用的保留关键字不得为空。 保留关键字列表 显示代码段 await break case catch class const continue debugger default delete do else enum export extends finally for function if implements import in instanceof interface let new package private protected public return static super switch this throw try typeof var void …

9
面向移位的编程
通过获取字符串中每个字符的字节值,计算并将结果转换回一个字符,可以将字符串移位一个数字。nc(c + n) mod 256 例如,移动"ABC123"1会导致"BCD234",移动10 in "KLM;<=",并移动255 in "@AB012"。 任务 随便挑选尽可能多的数字n,0 < n < 256并编写一个将字符串作为输入的程序或函数, 当源代码不变时,返回不变的字符串,但是 返回n源代码移位后移位的字符串n。 规则 您提交的分数是受支持的n分数,分数越高越好。因此,最高分数为255。 您的提交必须至少支持一个班次,因此最低分数为1。 如果出现平局,则以较短的程序为准。 所有转移的程序都必须使用相同的语言。

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

9
用普通英语写奎因
写一个包含由单个英文空格分隔的真实英语单词的藜。“单词”定义为仅包含小写和大写字母的字符串(/[a-zA-Z]+/在正则表达式中)。要“真实”,您的单词必须由官方的Scrabble词典识别。 我使用的是Scrabble字典,因为它对有效和无效给出了明确的答案。普通词典中的灰色区域过多。注意,“ A”和“ I”(更不用说“ quine”)不是有效的拼写单词。 在大多数编程语言中,由于仅使用字母和空格来编写奎因几乎是不可能的,因此您可以选择用您选择的字符替换单词之间的单个空格。您还可以选择将字符追加到第一个单词的开头和最后一个单词的结尾。这些添加的字符可以是字母(az,AZ)以外的任何字符(包括换行符和非ASCII )。不过,添加它们会受到惩罚(请参阅评分)。 细节 通常,这些木马可能不会读取或访问其自己的源代码。(我想说的是HQ9 +的 Q命令违反了这一点。) 输出应转到stdout或类似的替代方法。没有输入。 这些单词不需要正确地大写。他们在任何地方都可以有大写字母和小写字母。单词的顺序没有任何意义。 在您的程序中,一个单词的使用次数不得超过3次。大写的单词仍然是同一个单词(例如,“ DOG”,“ dog”和“ dOg”都是同一个单词)。 使用如PHP或HTML,可以只是语言猫他们的内容被认为是微不足道的漏洞,是不允许的。 该程序必须包含至少一个单词。 计分 您的分数是程序中“真实单词”的数量加上以下惩罚: 对于每个被另一个字符替换的空格,+ 1 您在第一个单词前添加的每n个字符n n(是,n为幂n) 在最后一个单词之后每添加n个字符n n 例如程序 We all LIKE PROgraMmING 得分为4,因为它包含4个单词;没有添加或替换任何空格的字符。它的输出当然是We all LIKE PROgraMmING。 该程序 !We@all LIKE#PROgraMmING- = 将得分4 + 2 + 1 + 27 = 34; 单词4,替换空格2,!前面的1,- …

7
分享(字符)关怀!
总览 请考虑以下任务: 给定正整数n> 0,输出其整数平方根。整数平方根若干Ñ是最大的值X,其中X 2 ≤Ñ,通常用下式表示floor(sqrt(n))。 例如:25 -> 5,24 -> 4,40 -> 6,1 -> 1。 该任务本身很容易完成。但是,在这个挑战中,您的任务是仅使用25个字符来解决尽可能多的语言问题。 例 首先,您需要选择一组 25个字节(无重复)。它可能看起来像这样(注意前导空格): ()*-.05:=>Mabdhilmnqrst| 然后,您面临的挑战是仅使用此集合中的字符,以尽可能多的基于文本的语言(对不起,Piet)来构造问题的解决方案。您可以根据需要多次使用字符,但是一定不能在集合之外使用字符。 解决方案可以是完整的程序或功能,但不能是代码段。例如,使用这组字符,我可以这样做: M -> (int) Math.sqrt(M) // Java (lambda expression) M => Math.sqrt(M)|0 // Javascript (unnamed function) lambda M: int(M**.5) // Python (lambda function) 由于我使用了3种语言,因此我得到3分。 请在答案中还包括您正在使用的字节组。 规则 这是一个罗塞塔石的挑战-你的分数是语言您提交包括数量。最高分获胜。有标准漏洞。 对于此挑战,“语言”被视为一种截然不同的编程语言-禁止使用同一语言的多个版本(Python 2,Python …

15
感恩节要带什么?
美国的感恩节将于11月24日到来。许多人将与家人共进晚餐,传统上包括火鸡和许多配菜。这通常意味着家庭成员必须协调谁将带来各种菜肴。在此挑战中,目标是编写一个多语言,以其运行的每种语言输出不同的菜肴。 菜单 (选自Wikipedia。以防万一,每行都是一个项目。) turkey stuffing dressing cranberry sauce mashed potatoes gravy winter squash sweet potatoes corn green beans green bean casserole mac and cheese macaroni and cheese salad rolls biscuits corn bread pumpkin pie apple pie mincemeat pie sweet potato pie pecan pie apple cider sweet tea 规则 每个提交必须至少以3种语言运行,每种语言都必须从菜单中输出不同的项目。您不能使用同一语言的多个版本(例如,不能在同一答案中使用Python 2和Python …

23
甜甜圈中的圣孔,蝙蝠侠!
有些角色比其他角色更圣洁。尽可能少使用邪恶的字母,显示上面的语句。 挑战 编写完整的程序以打印Holy Hole In A Donut, Batman!到STDOUT或最接近的替代品。如果您可以压缩输入以降低得分,请疯狂:) 输入项 没有 输出量 Holy Hole In A Donut, Batman! 规则 这是一个代码挑战,最低分获胜 可以从文件中读取所需的输出,但随后应将其计入总数。 尾随换行符在输出中很好 标准漏洞和条款和条件适用 计分 您的分数是字节数,加上一些修饰符: 使用神圣人物0469abdegopqrADOPQR@#每个计为2分 使用额外的神圣角色得8B%$&1分(不罚分) 使用邪恶的角色会12357cfhijklmnstuvwxyzCEFGHIJKLMNSTUVWXYZ!"^*()[]{}-=_+|\/?,.<>:;'~受到较重的惩罚,每个角色会被计为10点。 空格,制表符和换行符为1点(不罚)。 未列出的任何其他字符均为10分。 *在我的键盘上,键“ $”和“&”非常神圣。如果字体变化导致字符变得邪恶,请参考上面的列表 未修改的字符串Holy Hole In A Donut, Batman!得分172 Ruby:puts "Holy Hole In A Donut, Batman!"得分225 分数检查器 @DeadChex友好地汇总了得分脚本 请让我知道是否需要澄清任何事情。如有必要,我将更新字符列表-此时,我仅包括明显的键。尽管这个想法很简单-字符上的空洞还是不错的。

8
9个字节中的40个数字
有40点的方式定向汉弥尔顿路径可以设置在3×3的网格: 该图形(感谢SP3000! )仅示出了20条无向路径。在两个方向上遍历每条彩色线,以获得40条有向路径。 挑战 仅使用可打印的ASCII,编写一个3×3的字符网格,例如: ABC DEF GHI 当从该网格中读取40个有向路径中的每一个作为40个单行9个字符的程序时,目标是使每个程序输出从1到40的唯一整数。对所有 40条路径执行此操作似乎很困难,而且不太可能,因此,您只需要使它适用于尽可能多的路径即可。 提交者的40个路径程序输出的数字从1到40最为不同。Tiebreaker转到了较早的提交。 错误或不输出从1到40的整数或输出已经覆盖的另一个路径程序的整数的路径程序不计算在内。特别: 在编译,运行或退出时发生错误的程序不计在内。警告可以。 不输出的整数从1到40或输出什么程序略微畸形如-35或35 36不计数。 需要用户输入才能产生输出的程序不计算在内。 永不结束的程序不计算在内。 从现在开始,不算确定性的程序就不算在内。 否则,将不输出已经输出另一个有效程序的从1到40的整数的有效程序。(第一程序被计数。) 只有输出整数表示形式(从1到40(含))的程序才计入总数。这些数字应采用通常的1,,2... 39,40格式,除非这不是您所用语言的规范。(输出中的尾随换行符就可以了。) 程序输出的数字和它们的顺序无关紧要。只有有效程序中不同整数的数量才重要。 所有路径程序必须以相同的语言运行。但是,“程序”实际上可以是打印或返回其目标整数的函数(没有必需的参数)或REPL命令以及完整程序。您可以在函数,REPL命令和完整程序之间混合使用。 您的9个可打印ASCII字符不需要区分。 例 如果您的3×3网格是 ABC DEF GHI 您的40个程序和输出看起来像这样 ABCFEDGHI -> 26 ABCFIHEDG -> 90 ABCFIHGDE -> 2 ABEDGHIFC -> syntax error ADEBCFIHG -> prints 40 but then errors …

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

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.