Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

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( …

8
3x3六边形Prime Square Puzzle
3x3六边形Prime Square Puzzle 介绍 我们考虑3x3平方的十六进制数字(从0到F),例如: 2 E 3 1 F 3 8 1 5 7 2 7 D D 5 B B 9 我们将3x3十六进制素数平方(HPS3)定义为这样一个正方形,对于该平方,从左到右以及从上到下读取的所有十六进制数都是奇数质数(即质数大于2)。 左边的正方形为true,右边的正方形为false: 2 E 3 --> 0x2E3 = 739 1 F 3 --> 0x1F3 = 499 8 1 5 --> 0x815 = 2069 7 2 7 --> …


1
跳棋:国王吗?
挑战: 给定棋盘格,如果可能的话,输出将花费最少的移动量(假设黑色根本不移动)为红色棋子。 规则: 红色的一面总是在底部,但是它们的碎片可以从任何行开始(甚至需要到达国王的行)。黑色棋子是静止的,这意味着它们不会在红色棋子之间移动,而在捕获时会从棋盘上移开。请注意,片段可以在板上的任何空间开始,包括彼此相邻。这不是播放普通跳棋的方式,但是您的程序必须能够解决这些问题。(请参阅输入5)但是,方格件只能对角移动(请参阅输入3)。如果第一个捕获在链中是向前的,则允许向后捕获(请参见输入7)。 输入: 一个8x8的棋盘格,其棋盘空间定义为以下字符(只要它们是一致的,可以随意使用替代项): 。-空 R-红色件 B-黑色件 输出: 的最小的移动号码,将采取一个红色片是“kinged”通过输入在板(黑侧)的顶行王的行,0如果不需要移动(开始红色片上王的行),或如果不可能加红色,则为负数(即黑色占据整个第一行)。 输入1: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . …

19
产生丢勒的魔方
挑战 输出Dürer著名的魔方的数组或字符串表示形式: 那是, 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 该广场的某些属性可能会被利用,它们是: 它包含从1到的每个整数16一次 每列或每行的总和以及两个对角线的每一个的总和是相同的。这是魔方的定义属性。总和是平方的魔术常数。 另外,对于这个特定的正方形,四个象限中每个象限的总和也等于魔术常数,中心四个正方形的总和和角点四个正方形的总和也等于魔术常数。 规则 不允许生成魔术方块的Bultin(例如Matlab magic或Mathematica的MagicSquare)。可以使用任何其他内置函数。 该代码可以是程序或函数。 没有输入。 数字必须以10为底。输出格式像往常一样灵活。一些可能性是: 嵌套数组(函数输出或其字符串表示形式,带或不带分隔符,任何类型的匹配括号): [[16, 3, 2, 13], [5, 10, 11, 8], [9, 6, 7, 12], [4, 15, 14, 1]] 2D阵列: {16, 3, 2, …

18
洗牌交易!
今天是星期五,我很累,所以让我们快速做一个!不输入任何内容,但是您应该在标准纸牌中输出所有13种不同编号的纸牌。您应该通过Ace(不可知的Suit)输出2。 每张卡的顶部都有一个空格 和十个_空格 。 从顶部开始的第二行用a /和10空格 以及a表示\ 第三行与所有中间行相同,不同之处在于表示卡值的字符在边缘的右边向右两个空格(如果在顶部)或在左边向左两个空格(如果在底部)。 每个中间十岁上下行是一个简单的|十位 还有一| 最后一行是a \和10 _,最后是a/ 如果该值是多位数,则卡的总宽度(以高度为单位)不应更改。(即10不会使卡的边变宽​​) 国王示例: __________ / \ | K | | | | | | | | | | | | K | \__________/ 9例子 __________ / \ | 9 | | | | | | | | | …

10
查找最大列中的每个数字
这对您来说是一个相对简单的挑战: 给定一个正整数列表: 将它们排列成网格,然后对每一列求和。例如,如果输入为[123, 7, 49, 681],则网格将如下所示: 1 2 3 7 4 9 6 8 1 每列的总和为[18, 19, 4]: 1 2 3 7 4 9 6 8 1 -------- 18 19 4 查找这些总和的最大值,在这种情况下为19,然后 输出与此最大列在同一索引处的每个数字。在这种情况下, 2 9 8 您不必以任何特定顺序输出这些数字。请注意,即使我们有4个输入,也只有3个输出。如果是平局,请选择最早的索引。例如,如果输入为[25, 223, 302],则您的网格为: 2 5 2 2 3 3 0 2 ------- 7 7 …
14 code-golf  math  grid 

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.