编程拼图和代码高尔夫

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

1
将图片变成拼图
摘要 这项挑战的目标是创建一个15拼图 / 滑动拼图(在法语中也称为taquin)的未还原图像版本。 细节: 给定一个输入,该输入包括: 一个图像, 的整数n, 的其它整数r, 您的程序,函数或任何其他适合的东西,都必须输出与输入相同的图像(即,相同的大小和格式),但是必须经过以下过程: 将图像分成n²矩形, 随机删除其中一个矩形, 从受点(2.)影响的线/列中移动任意数量的连续矩形,以便填充创建的孔,并在该线/列中生成另一个。0如果毛坯在角落或边缘,则此数字可以是。 重复(3.)r次。 说明: 如果您在第(3.)步中从行中移动了矩形,则必须在下一个重复中从列中移动矩形, 如果您在一行中从左到右移动矩形,则必须在下一行中将它们从右到左移动,这与列的上下到上下以及从下到上相同, 您可能会假设n会选择该选项,因此它将划分图片两边的长度。 最后一点: 动画.gif演示整个过程非常受欢迎。 我建议使用下面的图片(是1024x768),将n=16和r=100用作模型,您可以使用任何其他图片(只要它是相关的并且符合SE的规则)。 请注意,适用标准漏洞政策。 这是代码高尔夫球,因此较短的提交将获胜! 由于请求了一个示例,因此这里有一个“手工制作”的示例,其中包含n=4和r=1 步骤1和2 步骤3:逐行,向左2个矩形

2
在海滩上度过的一天
受此挑战启发 目标: 目的是绘制撞击到海滩上的海浪。 输入: 您将获得3个整数(任意格式)作为输入。 第一个整数将是图形的长度,第二个整数将是沙洲的索引,波浪开始波峰(距海滩至少3个间隔) ,第三个整数将是波浪之间的间隔(至少3个,可以大于绘图长度,在这种情况下,您只能绘制一个波形) 输出: 输出将是一个字符框,显示海浪撞击海滩。当第一波浪完全冲入海滩时,图纸应结束。 首先,该波显示为膨胀(_-_)。 当波浪通过沙洲时,它开始波峰(/c_)。 最终,海浪冲入海滩(/c.=> _-_=> ___=> __.)。 例子: 输入:14 4 6 输出: -___________.. _-__________.. __-_________.. ___-________.. ___/c_______.. ____/c______.. -____/c_____.. _-____/c____.. __-____/c___.. ___-____/c__.. ___/c____/c_.. ____/c____/c.. -____/c____-_. _-____/c_____. __-____/c___.. 输入:10、2、11 输出: -_______.. _-______.. _/c_____.. __/c____.. ___/c___.. ____/c__.. _____/c_.. ______/c.. _______-_. _________. ________.. 输入:6 0 …

4
解决数学问题符号
想象一下,我有无数个作业问题(!),每个问题都有一个整数。 数学问题符号是一种使用问题说明符描述问题子集的符号。 MPN表达式可以包含以下几项: 单个值。这表示一个包含数字的集合:99 -> {99}。 一个简单的范围。这表示包含从范围的开始到结束的所有数字的集合10~13 -> {10, 11, 12, 13}。如果左侧或右侧丢失,那么他们被认为是负无穷大或无穷大分别为:~10 -> {x|x ≤ 10}; ~ -> ℤ。 一个MPN表达式,后跟“跳过”和另一个MPN表达式。这代表了两组的区别:10~20 skip 12~14 -> {10, 11, 15, 16, 17, 18, 19, 20}。 两个MPN表达式,以逗号分隔。这表示两个集合的并集:1,8~9,15~17 -> {1,8,9,15,16,17}。 “跳过”运算符的绑定比逗号运算符更紧密,因此16,110~112 skip 16 -> {16,110,111,112}(16个不包括在集合中{110,111,112}中不包括16,因此排除16无关紧要。) 您也可以将表达式放在括号中以消除歧义: 1~9 skip (2~8 skip (3~7 skip (4~6 skip 5))) -> …

23
两条道路分叉成黄色的树林(第1部分)
这是系列中的第一个,第二个是在黄色的树林中分叉的两条道路(第2部分) 这一挑战的灵感来自罗伯特·弗罗斯特(Robert Frost)的著名诗作《未走的路》: 两条道路在黄色的树林中分开, 对不起,我无法同时行进 ,成为一个行人,我站了很久 ,俯视着一条路,尽我所能 ,一直到灌木丛弯曲的地方。 然后公平地取下另一个, 也许有更好的主张, 因为它长满了草,想要穿。 虽然那路过的 人真的穿了差不多的衣服, 那天早上,两个人同样躺在 地上,没有脚踩过黑色。 哦,我保留了第一天! 然而, 我知道路要走,我是否应该回来。 我将叹息地告诉这个问题,因为它 在某个年代和年代都有: 两条道路在树林中分叉,我- 我走过的路少了, 这一切都改变了。 请注意倒数第二行I took the one less traveled by,。 您的实际挑战 您将采用以下形式输入: # ## # ## # ## # # # 而你必须找到更薄的道路。 这条路从底部开始#。其他两条始终在最上一行终止的道路是您必须检查的道路。最厚的道路是最常经过的道路,因此这不是您想要的。另一个是经过最少的旅行,也是您想要的旅行。 输出量 您的程序/函数必须输出2个不同的值之一(例如0或1,true或false),其中一个用于未经过的道路的每个可能位置。例如,如果未行驶的道路位于已行驶道路的左侧,则可以输出0,否则输出1,或者可以输出字符串“ left”或“ right”,true,false等。 测试用例: ## # …

1
混淆整数表示法
编辑:我将meta-golf很快发布此问题的较新版本。保持警惕! 编辑2:我将不再更新挑战,但将其保持打开状态。该meta-golf版本位于此处:https : //codegolf.stackexchange.com/questions/106509/obfuscated-number-golf 背景: 大多数数字只能用6个不同的符号书写: e (欧拉常数) - (减,非负) ^ (求幂) ( ) ln (自然对数) 例如,您可以i使用以下等式转换虚数: (e-e-e^(e-e))^(e^(e-e-ln(e^(e-e)-(e-e-e^(e-e))))) 目标: k通过任何合理的方式给定任何整数,仅使用这6个符号输出该数字的最短表示。 例子: 0 => "e-e" 1 => "ln(e)" 2 => "ln(ee)" // Since - cannot be used for negation, this is not a valid solution: // ln(e)-(-ln(e)) -1 => "e-e-ln(e)" 笔记: …

2
找到循环的内部
任务 给定循环的ASCII图 例如 .................... ......@@@@@......... ......@...@......... .....@@...@@@@@..... ....@@........@..... ....@........@@..... ....@@@@@@@@@@...... .................... .................... 和循环上的位置 例如 (7,1) 您必须找到循环的内部和外部 例如 00000000000000000000 00000011111000000000 00000011111000000000 00000111111111100000 00001111111111100000 00001111111111100000 00001111111111000000 00000000000000000000 00000000000000000000 技术指标 您可以将图表的输入作为由换行符或明显等效的字符串分隔 作为输入的一部分,您将在循环上收到一个坐标(0或1索引)。您可以将自己的血统放在任何您想要的地方。您可以借此协调(<row>, <column>),(<column>, <row>)或弦上的线性位置。您可以通过任何合理的方式接收这些数据。循环上的所有字符将与该索引处的字符相同。 优选的输出是truthy和falsy值的2维阵列,但是串1和0通过换行或后两种的任何明显的等效接受分离。内部和外部必须具有不同的真相值,但这与哪个无关紧要。 循环被定义为一组字符,以使它们全部是相同的字符(例如@),从而循环中的每个字符都具有到原始字符(输入坐标处的字符)的路径,该路径仅通过相同的字符字符(出租车几何图形没有对角线)。 内部是所有循环本身,以及不跨越循环就无法到达图边缘的位置。 外面无处不在 这是代码高尔夫球 测试用例 粘贴框

4
假日头痛
警告:请勿从此帖子中寻求医疗建议。如果需要医疗建议,请咨询合格的专业人员。 我头疼。我需要头痛药。 我会告诉你我最近服用的几剂,然后你告诉我何时可以服用我的下一剂而不过量。 我给你这个字符串: P: 00:00, I: 02:00, P: 04:00, I: 06:00 你会给我这个: Next P: 08:00, I: 10:00 输入: 字符串,代表每次服药的时间,格式如下: P: 00:00, I: 02:00, P: 04:00, I: 06:00 这意味着扑热息痛在00:00和04:00服用,布洛芬在02:00和06:00服用 输出(更新): 可以输入每次服药下次服用时间的字符串,格式如下: Next P: 08:00, I: 10:00 输出顺序应与服药顺序相同。-如果布洛芬在09:35和扑热息痛以及10:22服用,则输出应为Next I: 09:35, P: 10:22 如果每种药物下一剂的时间相同,则输出顺序无关紧要:Next P: 08:00, I: 08:00或者Next I: 08:00, P: 08:00 …
14 code-golf  string  date 

20
输出击键
用任何编程语言,创建一个程序,该程序接受输入并设置要在键盘上键入的文本的动画效果。 每个字符之间的延迟应有所不同,以模拟键盘上的真实键入。延迟应为0.1, 0.1, 0.5, 0.1, 0.1, 0.5 ...秒,直到最后一个字符被打印出来。最终输出应留在屏幕上。 您必须覆盖当前文本行,否则无法将文本打印在新行上。 例如,输入“您好,PPCG!再见,地球!” 应生成以下动画(请注意,gif制作工具的采样率较低,因此实际结果略有不同): 由于这是代码高尔夫,因此最少的字节数将获胜。

6
键盘代码到文本!
给定一个字符串和一个数组作为输入,您的任务是输出在典型的移动键盘上键入时输入字符串将打印的文本。在移动键盘中,通过按n次按钮来键入字母,其中n是字母在按钮标签上的位置。因此,22应输出b。 规则 辅助数组将包含字符映射表([" ",".,!","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"])。这将为您节省一些字节。 该#符号将切换大小写。初始大小写会更低。所以2#3应该输出aD。 该0会添加一个空格。因此,202应输出a a。 输入的字符串中将有一个空格(),以在同一数字按钮上开始一个新字母。例如,键入时aa,输入String为2 2。 保证输入的String始终是有效的键盘代码。 输入值 您可以使用您的语言支持的任何方式进行输入。 输出量 您可以按任何方式输出结果。功能return也是允许的。 测试用例 #4440555#666888330#999#66688111 -> "I Love You!" #6#33777 7779990#222#4477744477778627777111 -> "Merry Christmas!" #44#27 79990#66#3390#999#332777111 -> "Happy New Year!" 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

13
永久自修改代码
现在,我们都知道大多数语言都有非常简单的方法来“自我修改”代码。但是,如果要在磁盘上实际修改代码并编辑其中的一部分,该怎么办? 您的目标是制作打印数字的代码,然后编辑自己的文件,用斐波那契数列中的下一个替换该数字,如下所示: $ ./program 1 $ ./program 1 $ ./program 2 $ ./program 3 $ ./program 5 [etc...] 规则 您不能将代码存储在代码的“外部”。没有评论,没有告诉脚本退出,没有EOF等。 如果您的代码可以使用任何文件名,请从字节数中减去2并$BYTESNOW ($ORIGINALBYTES - 2)输入标题。(假定文件名在任何字母数字文件路径的范围内。) 您的代码必须自己将输出写入文件,而无需任何外部管道协助。 您的代码可以从一或零开始。没关系

7
快到圣诞节了!
因此,来自世界各地的家庭正在建造圣诞树。 但是一段时间后,这棵普通的树可能会变得无聊,所以让我们制作一个ASCII树! 叶子由表示,#并且必须按照示例输出所示进行排列。我们有5个球(O)和5个糖果棒(J),我们将它们随机放置在树上。我们还在上面放了一支蜡烛。 输入:无 输出: ^ | ### ##O## ####### ##### ####J## ######### ####O###### ############# ###J### ######### ####O###J## #######O##### ###J########O## ###########J##### ### ### 规则(如果不在规则中,则假设可以) 球和棒棒糖必须随机放置在树上,并且它们之间至少要有一片叶子,不包括对角线。 每片叶子必须有非零的机会拿到球或棒棒糖。 只要树的形状正确,每行上可能会有前导或尾随空格。 这是代码高尔夫球,因此字符中最短的代码将获胜。

9
高尔夫对象
想象一下,我们有一个环境,它的全局范围仅包含一个称为的对象codegolf。该对象有一个名为的子对象stackexchange,该子对象具有的属性com。 访问此属性看起来像codegolf.stackexchange.com。 挑战 程序/函数的输入将是试图访问全局范围内的属性的字符串。只要找到此属性,就应打印/返回真实值。如果找不到该属性,则应打印/返回伪造的值。要注意的是:当您尝试访问不存在的对象上的属性时,您的程序应该抛出任何类型的错误¹。 为了使事情变得容易一些,您可以假设输入将始终为[a-z.],永远不会为空,永远不会有重复.的,也永远不会以开头或结尾.。codegolf.无效的输入也是如此。 测试用例 codegolf.stackexchange.com => 1 // or any other truthy value codegolf.stackexchange.net => 0 // or any other falsy value codegolf.stackexchange => 1 codegolf.foo => 0 codegolf => 1 foo => 0 codegolf.com => 0 codegolf.constructor => 0 codegolf.foo.bar => Error (since foo is undefined) codegolf.stackexchange.com.foo …

1
旧金山的出租车
您是旧金山的出租车司机。正如出租车司机的典型做法一样,您正在浏览一个网格,在该网格中,您只能移动的有效方向是左,右,上和下。但是,圣弗朗西斯科(San Fransisco)非常丘陵,因此两个相邻交叉路口之间的距离不一定相同。更具体地,在海拔处的交叉点与在海拔处a的相邻交叉点之间的距离b将是1 + |a - b|。您的目标是找到从地图左上角的起点到右下角的目的地的所有最短路径。 输入值 整数高度的二维网格,采用最方便的格式(二维数组,具有宽度和/或高度的一维数组等)。 输出量 方向行进的顺序以给定的距离,高度的两个相邻交叉点之间的距离留在最短的距离可能顶部的输入的右下角到达a和b由下式给定1 + |a - b|。如果有多个解决方案,请输出所有解决方案。 虽然我使用U,D,L,和R为上,下,左,右在你的程序可以使用任何四个不同的字符串来表示的方向上,只要它是与他们一致,并在所有输入下面的例子。 例子 Input: 0 3 0 0 0 0 2 0 2 0 0 0 0 3 0 Output: D D R R U U R R D D Input: 3 Output: <empty> Input: 11 11 …

7
绘制Sierpinski箭头曲线
介绍 该谢尔宾斯基箭头曲线是一条曲线,这是限制是谢尔宾斯基的三角。 它首先是这样开始的: _ / \ 然后,将每一行替换为第一行的旋转版本: _ / \ \ / _/ \_ 下一个: _ / \ \ / _/ \_ / \ \_ _/ _ \ / _ / \_/ \_/ \ 你的任务 给定数字n,输出Sierpinski箭头曲线的第n次迭代。 您可以选择0或1索引,但请在答案中指定。 您可以生成图像,或以我上面的格式使用Ascii Art。 您可能不使用内置函数生成此曲线。 请记住,这是code-golf,所以字节最少的代码将获胜。

10
隐秘方块
隐秘方块 您的工作是接受一个字符串,并生成一个NxN表示该字符串的图像。您还必须编写将图像取入并将其转换回字符串的算法。得分将包括两种算法的字节数: “加密”算法+“解密”算法。 您应该分别发布每个文件,并分别显示加密和解密算法的字节数。 示例算法 例如,下面是“蓝色频道”中使用基于ASCII的简单隐写算法的“编程难题和代码高尔夫”: #2e7250,#6ea972,#04eb6f,#0fc767,#74ab72,#ee6161 #b73b6d,#1aae6d,#f37169,#bda56e,#1fe367,#e99620 #706450,#0d3575,#146b7a,#4ea47a,#2a856c,#95d065 #3f2d73,#cef720,#bab661,#d1b86e,#f22564,#12b820 #0f3d43,#c86e6f,#1ee864,#a66565,#247c20,#c3bb47 #0e296f,#89d46c,#585b66,#c08f20,#455c20,#136f20 实际图片() 您可以看到蓝色通道仅保留此图像的ascii值: 50 = 80(P) 72 = 114(r) 6f = 111(o) 67 = 103(g) 72 = 114(r) 61 = 97(a) 6d = 109(m) 6d = 109(m) 69 = 105(i) 6e = 110(n) 67 = 103(g) 20 = 32( …

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.