编程拼图和代码高尔夫

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

4
骑士填充网格
骑士填充是利用骑士棋子的连通性进行的洪水填充。特别: 1 1 1 1 0 1 1 1 1 (0是初始点,1s表示连接的单元格) 挑战 给定空间和墙壁的2D网格以及初始位置,请对该网格执行骑士填充。最短的代码获胜。 规则 您可以采用任何喜欢的格式(图像,字符串,数组等)输入并产生输出。您可以将初始位置作为输入网格的一部分或作为单独的坐标。为了便于说明,将使用以下格式: ######## # = wall ######## x = initial location ## x ## ## ## ######## ## ## ######## ######## 输出是输入栅格的副本,其中添加了骑士填充结果 您的填充不得与空间或墙壁使用相同的“颜色”,而应与初始位置标记相同。例如,给定上面的图像,有效的输出将是: ######## # = wall ######## @ = fill (could also have been x) ## …

6
过去的今天
所述Discordian日历是由Discordians使用的备选的日历。 Discordian年有5个季节,每个季节持续73天:混乱,不和谐,混乱,官僚主义和余波。 Discordian星期有5天:Sweetmorn,Boomtime,Pungenday,Prickle-Prickle和Setting Orange。每年从Sweetmorn(以及Chaos)开始。 每˚F ourth年(其中Happe的ñ s到格雷格对准Ø日安飞跃啊[R S),一个额外d AY插入混沌59和60混沌之间称为圣提布节。它不在Discordian周内,这意味着St. Tib's Day之后的第二天将设置为Orange,即Prickle-Prickle的前一天。 公历和Discordian日历排成一行;两者都在同一天开始,在公历中是1月1日,在Discordian中是1。 圣母不和谐元年(YOLD 1)是公历前1166年,公历前一年,意味着今年(2017 AD)为YOLD 3183。 Discordian日历也有假期,但是对于这一挑战而言,假期并不重要,因此您不应输出它们或有关它们的任何内容。 编写一个程序或函数以输出或返回今天的日期(在执行时): Today is Boomtime, the 16th day of Confusion in the YOLD 3183 格式为"Today is $day_of_the_week, the $ordinal day of $season in the YOLD $year",其中$ day_of_the_week是大写的星期几(标题大小写),$ ordinal是本赛季的第几天(第1、2nd,3rd,4th等),$ season是大写的日期(标题大小写)季节,而$ year是年份。 如果您的程序或函数在圣提比纪念日执行,则应改为输出或返回"Today is St. Tib's …
15 code-golf  date 

10
给我围栏!
挑战 这是一个简单的挑战。给定两个正整数, w并h创建一个宽度为w,高度为的ASCII栅栏h。围栏应使用以下规则构造: 该+角色将代表一个职位。 该-字符将用于表示围栏的宽度。 的|将被用于表示围栏的高度。 在精确-输出了三个字符之后,必须随后输出一个+字符。除四个角以外,您输出a的任何其他时间都是无效的。您可以从左或从右开始遵循此规则(请参见示例),但是必须保持一致。+ 在准确|输出两个字符之后,必须随后输出一个+字符。除四个角以外,您输出a的任何其他时间都是无效的。允许您从顶部或底部开始遵循此规则(请参见示例),但是必须保持一致。+ 每个围栏都将恰好具有四个角,并且每个角将用表示+。 换句话说:每三个-字符必须输出一个+。并且每两个|字符必须输出一个+。 你可以假设栅栏将永远是一个矩形,并且这两个w和h永远不会大于100或小于1。尾随和/或前导空格是允许的。 示例/测试用例 w = 1 h = 1 +-+ | | +-+ w = 3 h = 2 +---+ | | | | +---+ w = 5 h = 7 +---+--+ or +--+---+ | | | | | | + …

14
我按了什么键?
任务是编写代码以识别在键盘上按下了哪个键。您可以假设一次只按下一个键,并且使用标准的美国键盘布局。那是@超过2的布局。 您的代码应为每个按键输出唯一的标识符。这包括PrtScn,滚动锁定,暂停,左Shift,右Shift,左Ctrl,右Ctrl,大写锁定,Tab,Enter,在数字键盘上输入,数字锁定,插入,在数字键盘上的Ins,退格键,Del,F1 ... F12,Esc,左Windows键,右Windows键,Alt,AltGr,应用程序键(上下文菜单)等等。 您的代码应继续等待按键并输出其身份,直到被杀死为止。但是,一旦释放密钥,它应该输出标识符。它不应从收到的按键中执行任何其他操作,并且除了唯一标识符外,它不应输出任何东西。 在您的答案中,请显示以下键盘按键的代码输出内容:数字键盘上的Tab,暂停,Enter,Enter,数字键盘上的左Windows键,右Windows键,Ins和Ins。 如果您使用的键盘非常不同,那么挑战仍然是为键盘上的每个键输出不同的标识符。
15 code-golf 

24
附加号码
一个相当简单的挑战:您将收到两个输入,一个字符串和一个数字(数字可以视为字符串,即"123"代替123) 如果字符串不是以数字结尾(即,它与regex不匹配\d$),则只需将数字附加到字符串的结尾即可。 如果字符串确实以数字结尾(即,它与regex匹配\d+$),则应首先删除该数字,然后附加数字。 这两个输入都不是无效的或为空(无效是由不只包含数字的数字输入定义的) 该数字永远不会包含-或.。 该字符串将永远不会包含换行符或不可打印的非空白字符。 测试用例: abc123 + 345 -> abc345 123 + 1 -> 1 hello + 33 -> hello33 123abc123 + 0 -> 123abc0 ab3d5 + 55 -> ab3d55 onetwo3 + 3 -> onetwo3 99ninenine + 9999 -> 99ninenine9999
15 code-golf  string 

18
Copodope Gopolopfop
语言:Oppification 通过对每个单词应用以下过程来创建一种有趣的语言: 放在op每个辅音之后。如此Code成为Copodope。 对,就是那样。为了这个挑战的目的,y总是辅音。 挑战:去势化 给定一个单词,返回原始单词。输入内容仅包含字母。首字母可以大写。原始单词永远不会为空,并且始终包含元音。 测试用例: Oppified -> Original a a I I itop it opop op Opop Op popopop pop Copopop Cop opopopop opop Kopicopkop Kick Asopia Asia soptopopop stop hopoopopsop hoops hopoopopedop hooped ooooohop oooooh aaaopopaaa aaaopaaa Popopopsopicoplope Popsicle gopaloplopopopinopgop galloping aopopbopopopcopopop aopbopcop

11
解释+ p代码
受最近对另外两种字符语言的热潮启发, ;# 介绍 根据社区的共识,此站点上可接受的答案必须使用至少以下语言: 可以确定自然数是否为素数 可以将两个自然数相加 可以代表数字的列表/元组,以及单个数字 为了这个挑战,我们将忽略#3。因此,可以在此站点上使用的最简单的语言(忽略#3)将只有两个命令,isPrime和add。为了便于解释和字节计数,让我们分配isPrime给p和add对+。因此,我们有了自己的语言+p。您的挑战是解释一些+p代码。 行为 +该add指令取两个数字,将它们相加,然后输出结果 p所述isPrime指令需要一个单一的数,并将其输出1它是否为素数,并且0,如果它不是 规则 您必须编写一个给定字符串的程序/函数,将该程序/函数解释为+p代码。您可以假设格式正确的输入(仅包含+和p字符)。 输入是灵活的。您可以将程序作为字符串,字符数组,代码点的整数数组等形式使用。正在解释的程序的输入也很灵活。您可以采用整数数组,并在程序执行时用完条目,或者每个指令(+和p)都可以单独请求输入。您可能会假设每条指令都有足够的输入。确保输入由0到200之间的数字组成(但理论上,您的算法应适用于任何正整数输入)。 输出也很灵活。您可以打印结果,将它们作为列表返回,返回包含所有结果的字符串,等等。如果以字符串形式打印或返回,则输出必须用一些非数字的,一致的分隔符分隔,例如换行,标签,空格或,字符。您可能有尾随分隔符或一些尾随空格。另外,p的输出可能是您使用的语言所定义的任何真或假值,而不是1或0。 解释器可能会终止也可能不会终止(如果它是一个完整的程序),但是在解释完所有指令之后必须停止打印。(它无法永远继续打印分隔符或空字符等)。 默认情况下,这些标准漏洞是禁止的 这是代码高尔夫球,用最少的字节数获胜的答案 测试用例 Program: + Input: [56, 50] Output: 106 ---------------------------------- Program: p Input: [12] Output: 0 ---------------------------------- Program: p Input: [13] Output: 1 ---------------------------------- Program: ++ Input: [172, 120, 33, 58] Output: 292 …

16
打印真实的不可见文本
我以前的挑战是“ 打印不可见文本”非常流行,这可能是因为它太琐碎了。 但是,那些更细心的人可能已经注意到您并不是真正在打印不可见的文本,因为仅给出输出就无法读取输入的内容。 因此,我想到了真正的隐形文本挑战。 给出只由可打印的ASCII字符(串0x20-0x7E),每个字符转换为一个不同的Unicode字符(以UTF-8编码)不属于95个可打印的ASCII字符中的一个(任UTF-8字符以外0x20-0x7E的范围) 输入值 一串可打印的ASCII字符,可以是字符串,也可以是字符数组/列表 输出量 每个字符的输入字符串均替换为不同的不可打印字符。每个给定字符都必须具有一个相应的不可打印字符,该字符不可替代任何其他字符。 如果无法打印不可打印的字符,则可以输出字符值。 例如,如果您的代码将所有小写字母替换a为0x01,则您不能将其0x01用作其他任何字符的替换。 您的代码也必须是确定性的。这意味着,如果给定string Hello,所有小写字母l都替换为0x03,则您的代码也必须l使用0x03给定的任何其他字符串替换所有小写字母。 测试用例 为此挑战编写测试用例有些困难,因此我将输出显示为十六进制代码列表 input -> output "Hello" -> [0x01, 0x02, 0x03, 0x03, 0x04] "Hi!" -> [0x01, 0x05, 0x06] "" -> [] " H " -> [0x07, 0x07, 0x07, 0x01, 0x07, 0x07, 0x07] "yo! " -> [0x08, 0x04, 0x06, …

20
给我烤一个蛋糕!
这是一块蛋糕: _========_ | | +________+ | | +________+ | | +________+ 它是8宽,3高和1深。 您必须编写一个程序,通过3个输入来制作蛋糕。第一个输入控制中间有多少个下划线=,顶部是s。这是第一个宽度为10而不是8的蛋糕: _==========_ | | +__________+ | | +__________+ | | +__________+ 第二个输入控制蛋糕的高度。这是第二个蛋糕,高度为4而不是3: _==========_ | | +__________+ | | +__________+ | | +__________+ | | +__________+ 注意各层的重复。 第三个输入控制它的深度。那就是| |要包含在顶部的个数。这是深度为2而不是1的第三个蛋糕 _==========_ | | | | +__________+ | | +__________+ | …

2
我会被丹尼斯推翻吗?
根据传说,几乎每个人都被丹尼斯推倒了。如果没有,他们会的。 现在我很好奇我是否是“几乎所有人”之一。 系统会以的格式为您提供答案的链接/codegolf/[QUESTION ID]/[QUESTION NAME]/#[ANSWER ID]。 找到代码的长度,我们将其假定为链接中答案第一行的最后一个数字(明智的降价方式)。 然后,搜索Dennis的答案,然后执行相同的操作。 现在比较输入的答案和Dennis的答案代码长度,如果超出长度(表示Dennis的一个或多个答案比输入答案的答案短),则输出真实值,如果不是,则输出虚假值。 如果在与该答案相同的问题上没有属于丹尼斯的答案,则输出虚假值。 例子 连结:true 链接:(false至少现在,告诉我什么时候改变) 规则 您可以使用任何形式的真实/虚假值。 您得到的答案的问题将永远是code-golf。 该问题可能没有丹尼斯的答案,但是输入的答案永远不会属于丹尼斯。 您可能会认为答案的第一行总是有一个数字。

30
创建一个鹦鹉程序
给定输入,输出该输入,然后不断地换行。 输入将是仅由可打印的ASCII字符(0x20-0x7E)和换行符(0x0A)组成的字符串。 如果输入长度为0,则不断输出换行符。 这是代码高尔夫球,因此每种语言中最少的字节会获胜!
15 code-golf  string  sequence  combinatorics  fastest-code  number  code-challenge  restricted-source  rosetta-stone  code-golf  arithmetic  decision-problem  integer  factorial  code-golf  arithmetic  decision-problem  integer  bitwise  code-golf  kolmogorov-complexity  code-golf  tips  vim  code-golf  quine  code-generation  code-golf  string  restricted-source  code-golf  string  random  unicode  code-golf  audio  code-golf  ascii-art  code-golf  decision-problem  code-golf  puzzle-solver  code-golf  restricted-source  code-golf  kolmogorov-complexity  permutations  hexagonal-grid  code-golf  string  math  combinatorics  fastest-code  code-golf  restricted-source  code-golf  string  code-golf  arithmetic  code-golf  math  number  code-golf  string  decision-problem  balanced-string  code-golf  binary  code-golf  string  number  code-challenge  restricted-source  code-golf  ascii-art  printable-ascii  interactive  code-golf  string  ascii-art  code-challenge  restricted-source  source-layout  code-golf  arithmetic  tips  functional-programming  golfing-language  code-golf  binary  encryption 

10
将我一分为二
您将获得一个号码x,在哪里0 <= x <= 2^32 - 1。 在以二进制格式递归拆分后,您应该以十进制输出数字列表。 例子: 范例1: 255 -> 255 15 15 3 3 3 3 1 1 1 1 1 1 1 1 当前列表为255。 的二进制表示形式255是1111 1111。拆分它,我们得到1111and 1111,其中十进制是15and 15。 我们将它们添加到列表中,因此我们将拥有255 15 15。 现在的数字15和15将作为输入,这些数字是被分裂。 老毛病又犯了,我们(获得3 3来自两个15或多个): 255 15 15 3 3 3 3。 继续逻辑,最终列表将为255 15 15 3 3 …

8
将数字分解成三角形
给定一个整数n,将其分解为最大三角数之和(其中T m表示第m个三角数,或从1到m的整数之和),如下所示: 当n> 0时, 找到最大可能三角形数Ť 米使得Ť 米 ≤Ñ。 将m附加到n的三角分解表示中。 从n中减去T m。 例如,输入44将产生8311的输出,因为: 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 = 36 <44,但1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45> 44。 第一个数字是8 …

1
搜索库的代码行进方式
挑战: 我的音乐收藏中有成千上万首歌曲,幸运的是,我最喜欢的播放器具有搜索功能。我也有一个美好的回忆-我可以记住收藏中每首歌曲的标题。但是,我很懒惰,不喜欢打字-每次额外的按键操作都很麻烦! 要隔离一首歌曲,我必须搜索的最短字符串是什么?帮我记住一个列表,以便在搜索时尽量减少键入! 这是代码高尔夫球,因此最短的代码获胜。 规则: 给定一个歌曲标题的输入列表,请生成一个受以下限制的搜索关键字列表: 每个歌曲标题都应有一个搜索键。 输出列表中的字符总数必须尽可能少。 我最喜欢的音乐播放器是foob​​ar2000: 搜索功能不区分大小写。(apple与aPpLE)。 每个搜索关键字必须由一个或多个“单词”组成,并且以任意顺序且以空格分隔: 每个单词必须是相应歌曲标题的子字符串。 如果多次指定相同的子字符串,则其相应的歌曲标题中必须出现多次。 如果子字符串本身包含空格,则该子字符串必须用引号引起来。 提示: 通常,对于某些歌曲标题,有多个符合规则2的搜索键。在这种情况下,任何一个键都可以,但是您会获得布朗尼点,以列出所有键。 您可以假设输入列表将仅使用ASCII字符,但是由于UTF-8兼容性而获得了布朗尼点。 规则3难以遵循吗?运作方式如下: 显示代码段 +----------------------+ +--------+ +----------------+ +------------------------------------+ | Input | | Output | | Statistics | | Explanation | |----------------------| |--------| |----------------| |------------------------------------| | | | Search | | Key | # of | …

13
打印包含输入的quine
任务 在输入中将为您提供一个字符串,该字符串仅包含从ato到的字符z,即输入将与正则表达式匹配/^[a-z]*$/。 您的输出应该是使用相同语言的完整程序,其源代码包含输入,并且是适当的代码。 例 您的程序将接收输入abc和输出: ...abc... 上面的代码应该是一个完整的程序,使用相同的语言,并且没有输入和输出: ...abc... 即它输出自己。 计分 这是代码高尔夫球。以字节为单位的最短答案将获胜。 参考文献 什么才算是合适的麦片?
15 code-golf  quine 

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.