Questions tagged «code-golf»

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

5
相邻字母测试
密码强度测试的一个方面是键盘上相邻字母的排列。在此挑战中,必须创建一个程序,该程序将在true字符串包含相邻字母的任何运行时返回。 什么算作一系列相邻的字母? 对于此简化版的密码强度测试仪,相邻字符的连续字符为3个或更多字母,它们在QWERTY键盘上沿单个方向(左,右,上方或下方)彼此相邻。出于此挑战的目的,键盘的布局如下所示: 1234567890 QWERTYUIOP ASDFGHJKL ZXCVBNM 在上图中,Q在下面1但不在下面2,因此包含1qa或其中aq1任何地方的字符串会使程序返回true,但2qa不会。 输入值 要检查的密码字符串。它仅包含字符[0-9a-z]或[0-9A-Z](您的选择)。 输出量 如果密码包含一个或多个相邻键运行,则程序必须返回真实值;如果密码不包含相邻键,则该程序必须返回false。 例子 以下输入应输出true: asd ytrewq ju7 abc6yhdef 这些输入应输出false: abc aaa qewretry zse qwdfbn pas 规则 答案可能是完整的程序或功能。 不允许出现标准漏洞。 这是代码高尔夫球,最低分(以字节为单位)获胜!

5
那角度是多少?
挑战的目标是确定图像中线条的角度。 图片上的规则: 图像背景将为白色(#FFFFFF) 线条的笔触将为黑色(#000000) 该行不会抗锯齿 图片将为100x100像素 该线将从图像的中心开始 该行将开始向下指向(6-OClock) 该行将是50像素长 从起始位置开始逆时针测量线的角度 图像编解码器将为.jpg或.png 输入格式将是命令行arg,脚本输入或函数arg传递的文件名。输出格式很简单-仅输出度数(例如90)。 答案可以是规定量度的±1度。以下是一些示例图片: 带有灰色背景的45度参考图像 0度 45度 50度 130度 230度 324度 这是用于创建图像的代码(这是使用Processing编码的): int deg = 45; int centX = width/2, centY = height/2; background(255); noSmooth(); line(centX, centY, centX + sin(radians(deg))*50, centY + cos(radians(deg))*50); saveFrame("line-"+deg+".png");// image codec can be changed here. use …

2
写一个〜ATH口译员
流行的网络漫画《Homestuck》利用一种称为~ATH破坏宇宙的编程语言。尽管此代码挑战不是要编写一个能够消灭我们的存在的程序,但我们将破坏一些驯服(尽管不太有趣)的实体:变量。 ~ATH(读作“直到死亡”,注意~ath“ tilde ath”的工作方式)是通过创建一个名为的变量THIS,使用来执行命令EXECUTE,并使用来完成程序的THIS.DIE()。在Homestuck中使用该语言的Wiki页面可在此处找到。这项挑战的目标是创建一个~ATH口译员。 为了应对挑战,我将创建一些~ATH实际上并不存在的细节,但要使其(某种程度上)有用。 该语言仅适用于以声明的整数import <variable name>;。该变量将自动设置为0值。一次只能导入一个变量。 x可以通过写入来复制变量bifurcate x[y,z];,这将删除该变量x并将其替换为相同的变量y和z。请注意,它无法创建与已删除变量同名的变量。本质上,将重命名变量,然后创建具有不同名称的变量副本。这似乎是一个愚蠢的功能,但愚蠢是非常深刻根深蒂固的Homestuck。 语法编写上执行代码的程序x是~ATH(x){EXECUTE(<code>)}。如果要同时在两个变量上执行代码,则代码将嵌套,如下所示:~ATH(x){~ATH(y){EXECUTE(<code>)}}。中的所有命令都<code>将在x和上执行y。 现在让我们进入命令。+将相关变量加1并-减1。然后就可以了。 的最后一个特点~ATH是,它杀死了所有与之兼容的东西。变量<name>=<value>以命令格式(后跟换行符)打印[<name>].DIE();。然后,程序打印单词DIE <name>和换行符的次数等于变量值的绝对值。当同时杀死变量时[<name1>,<name2>].DIE();(只要存在,就可以杀死任意多个变量),DIE()命令将按顺序对变量执行。 范例程序 程序1: import sollux; //calls variable "sollux" import eridan; //calls variable "eridan" ~ATH(sollux){EXECUTE(--)} //sets the value of "sollux" to -2 ~ATH(eridan){EXECUTE(+++++)} //sets the value of "eridan" to 5 [sollux].DIE(); //kills "sollux", prints "DIE sollux" twice ~ATH(eridan){EXECUTE(+)} …

12
重复骰子滚动
给定输入nwhere 3 <= n <= 25,请执行以下步骤,从单面n模具([1, n]包含在内的范围内的面)开始: 以以下形式打印n在游戏中滚动当前面骰子的结果kdn: X(其中X是结果,k是游戏中骰子的数量)。 如果X大于或等于n/2游戏中骰子数量的倍数,请添加骰子。否则,请移开骰子。 如果游戏中的骰子数量等于0或n,请停止。否则,请转到步骤1。 运行示例(请注意,括号中的输出仅供参考,并非必需): 6面 1d6: 4 (avg: 3.0, add) 2d6: 6 (avg: 6.0, add) 3d6: 9 (avg: 9.0, add) 4d6: 16 (avg: 12.0, add) 5d6: 13 (avg: 15.0, remove) 4d6: 9 (avg: 12.0, remove) 3d6: 5 (avg: 9.0, remove) 2d6: 7 …
12 code-golf  random 

3
锁和钥匙游戏
有n个框,编号为1-n。每个盒子都被锁定,因此只能通过一种相应类型的钥匙(也编号为1-n)打开它。这些密钥随机散布在框中(一个盒子可以具有任意数量的密钥,一个密钥可以具有任意数量的重复项),然后关闭所有盒子。许多盒子中也锁着一个宝物(编号0)。 您已雇了一个锁匠来取回所有宝藏。他为打开的每个盒子收费。打开一个已经有钥匙的盒子是免费的。 输入是每个框的内容。您可以决定输入的格式。 输出获得宝藏所需的最低成本。 笔记 您的算法可能会花费很长时间,但这无关紧要。 最短的代码获胜。 无需担心无效输入。 样本数据 第i行代表框i中显示的键。 输入值 2 0 3 4 0 5 6 0 6 0 输出量 1 输入值 2 0 3 0 4 0 6 5 0 输出量 3 输入值 2 4 0 3 0 1 0 6 5 0 输出量 2 输入值 1 …

1
一个最出色的证明,对于fi来说太小了!
您坐在家里,以最邪恶的方式揉手。这次,我将能够设置社区A-SPIN!我只是声称我已经在这里的本书中证明了这个问题(毫无疑问是可以改进的)……您打开第一个相关页面。你擦那些字... 您当然是邪恶的费马!哈哈,开玩笑。您知道这种情况并非如此。这只是他邪恶的孪生兄弟格式的叙述。这里的格式太懒了,无法将他的“证明”浓缩到边缘。因此,他呼吁你为他做。 目标在给定证明(字符串)和页面(文本块)的情况下,将证明“写”到空白处。 有效的页面规则 当且仅当满足以下要求时,文本块才包含页面: 顶部和底部边框的形式为-{10,}\+$(正则表达式-至少十次,直到a +,然后是行的结尾)。 每条非顶部和底部的行都必须以结尾|。至少会有这样一条线。 |每行的最后一行至少要有五个空格。 所有线条的宽度相同。 因此,以下是有效页面(.s用于显示最大边距边界在哪里): -----------------+ Lorem Ipsum. | and other . | latin crud . | . | EOF. | -----------------+ 这是另一页边距更大的页面: ------------------------+ Hello world! . | How are you, to. | day? --Mme. B . | . | ------------------------+ 您将在给定的字符串的空白处写入内容,并尽可能地保留单词。例如,如果hello适合下一行,请不要在当前行上断开它。 输入/输出 填充文字 …

3
ASCII艺术灯节
用尽可能少的字符编写一个需要零或六个命令行参数的程序 menorah menorah YEAR MONTH DAY HOUR MINUTE SECOND (必须同时支持两种形式。零参数版本应等效于在本地时区中使用当前系统日期和时间调用六参数版本。) 并且如果指定的日期和时间在光明节期间(Gregorian-calendar),则输出ASCII艺术(或Unicode艺术)九分支烛台,并点燃适当数量的蜡烛。如果不是在光明节期间,则输出一个换行符。例如, ~$ ./menorah 2015 12 7 0 0 0 * | * | | | | +++++++++ | -+- ~$ ./menorah 2015 12 9 0 0 0 * | *** | ||| | ||| +++++++++ | -+- ~$ ./menorah 2015 …

8
排版多维标签
在一个蒸汽朋克的多维世界中,我们的老板想在集团的多维文件柜中的每个抽屉上粘贴打印的索引标签。 老板希望使用仅为此目的而购买的字体将整个标签纸排版为单个表格,因此我们必须订购分类(金属符号片)。由于排序非常昂贵,因此我们的订购必须针对每个数字符号的准确计数。 对于给定的(以任何方式)长度≥0的一组长度,返回(以任何方式)我们的命令,这是排版所有笛卡尔坐标所需的数字频率表。它必须按键盘的出现顺序排列(即9之后为0),并且可能不包含0种排序的顺序,因此,如果根本不排序(因为尺寸的长度为0),则不能排序。什么都不打印。 如果您的代码也可以处理(即不打印任何内容)0个维度,则-3分的奖励。 最终换行符是可以接受的。 禁止使用标准漏洞。 如前所述,排序很昂贵,因此是codecolf。 善良的灵魂可能会编辑此挑战,以包括自动评分,因此请添加标题,例如:# LanguageName, 123 sorts 测试用例 给定11,打印: 1 4 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 0 1 因为所需要的标签1,2,3,4,5,6,7,8,9,10,和11。 给定2 3,打印: 1 5 2 5 3 2 因为所需要的标签1 1, 1 2, 1 3, 2 1, …

4
Sobel边缘检测器
您的任务是编写一个获取输入图像的程序,并通过边缘检测将其运行以成为输出图像。 边缘检测的工作原理如下(如果不清楚,请参阅sobel边缘检测): 像素的值是像素的总亮度,因此,如果它是彩色的,则需要先将其转换为灰度(为使操作简单且易于打高尔夫球,可以取R,G和B)。 像素p (i,j)的 G x和G y的公式为: G x = -1 * p (i-1,j-1) -2 * p (i-1,j) -1 * p (i-1,j + 1) + 1 * p (i + 1,j -1) + 2 * p (i + 1,j) + 1 * p (i + 1,j + 1) G …

7
信号中断脉冲
奎因(Quining)历史悠久-如果您从未听说过,请单击该标签并对其进行一些阅读。 你的任务 输出无限个1s(没有其他间隔[换行符,空格等])的序列,直到调用UNTIL SIGINT(通常为CTRL-C)。调用时,输出程序源。 规则 它必须是有效的密码: 没有从磁盘读取源。 查看与奎因丝有关的所有其他标准漏洞。 您可以使用任何语言。 因为这是代码高尔夫球,所以最短的答案就是成功!
12 code-golf  quine 

1
星期一迷你高尔夫7:简化成分测量
星期一迷你高尔夫:每周一发布(希望!)一系列简短的代码高尔夫挑战赛。 对不起,来晚了;通过写出与之重复的不同想法,我意识到了90%的方法。 我的家人很大,所以我们吃很多食物。我们通常需要加倍,加倍甚至加倍的食谱来制作足够的食物!但是,将测量值相乘可能会很痛苦,因此,有一个程序可以为我们做到这一点很高兴。 挑战 您面临的挑战是创建一个程序或函数,该程序将数字N和字母L作为度量值,并返回相同的度量值,并尽可能简化。这是必需的度量单位(像我的家人一样,都是美国人)及其对应的字母: 1 cup (c) = 16 tablespoons (T) = 48 teaspoons (t) 1 pound (l) = 16 ounces (o) 1 gallon (g) = 4 quarts (q) = 8 pints (p) = 128 fluid ounces (f) “尽可能简化”是指: 使用最大的测量单位。每个单元的余数可以为1 / 4、1 / 3、1 / 2、2 / 3或3/4。 如有必要,将结果转换为带分数。 …

3
散季
我健身房的杠铃看起来像这样: =========[]-----------------------[]========= 它们可以容纳五种不同尺寸的盘子,分别为2.5磅,5磅,10磅,25磅和45磅: . . ! | . ! | | | | | | | | ' ! | | | ' ! | ' 为了安全起见,我们还会在所有板子的外部添加一个夹子]或夹子[。酒吧本身重45磅。我们总是将最重的印版放置在最靠近中心的位置,任何印版之间都没有间隙,并在两边放置相同的印版。我们也总是尽可能地使用最小数量的板,例如,我们绝不会在一侧使用两个五磅的板,而不是一个十磅的板。因此,如果我想举起215磅,我的杠栏应该是这样的: . . .!| |!. !||| |||! ====]||||[]-----------------------[]||||[==== !||| |||! '!| |!' ' ' 您的代码(一个函数或完整的程序)必须取45到575之间的整数(始终为5的整数),并输出加起来等于该权重的小节。例如: 输入: 45 输出(请注意,空栏上没有剪辑): =========[]-----------------------[]========= 输入: 100 输出: ! ! …

5
避免在五个简单程序之间重复字母
您面临的挑战是为以下五个任务编写5个不同的完整程序: 打印 Hello, World! 给定带有STDIN的输入,输出阶乘,可以假定输入是> = 0的整数 给定整数N,计算素数之和<= N 给定带有STDIN的输入,输出在输入中使用的字母。例如:输入为Hello world,则需要输出helowrd。请注意,输出为小写。您可以假设输入始终是带有空格的字母,空格将被忽略。 完全像这样输出以下菱形: * *** ***** ******* ***** *** * 所有这些挑战可能非常容易,但是有一个陷阱。您使用的每个字母都不能在其他程序中再次使用。这不是禁止的,但是会给您+8个字节的罚款。例如,如果这是您执行第一个任务的程序: print("Hello, World!"); 那么你就不能使用下列字母(大写或小写形式): ,p,r,i,n,t,h,e,l,,o 在其他程序。如果必须使用它们,则可以“购买”每个字母8个字节。因此,如果您想在另一个程序中再次使用该字母,则会受到8个字节的惩罚。支付罚款后,您可以在此程序中随意使用每个字母。其他字符无关紧要。另外,所有5个程序都应使用相同的语言。wdl 这是代码高尔夫球,因此最少的字节数会获胜!

2
Beta的雪花
挑战 冬季快到了,许多地方都接受了15/16赛季的第一场降雪,那么为什么不突破制雪机并给自己编码一些雪呢? n通过STDIN 给定整数,请在level上输出ASCII表示Beta的雪花(如下所述)n。 Beta的雪花 雪花从0级开始,带有一个x: x 然后,在每个角上添加以下形状之一: x xx 您将上面的形状添加到右上角。对于右下角,将其顺时针旋转90°,对于左下角,顺时针旋转180°,对于左上角,顺时针旋转270°。 如果这样做,您将得到以下形状: x x xx xx x xx xx x x 注意形状的方向。继续,使用上述方向规则,将更多形状添加到每个角上,以得到第2级: x x x xxxxxxx xx x x xx xxx xxx xx x xx xxx xxx xx x x xx xxxxxxx x x x 请注意,仅将形状添加到x具有两个或更多裸露侧面(称为上方的角)的。 n对于大于1的值,L形可能会重叠,例如: 如果级别0为: x x …

1
旋转螺旋
给定一个代表字符螺旋的文本正方形,旋转它! 螺旋从中心开始,并逆时针移动到外边缘,从中心左侧开始: 987 216 345 这将转换为字符串123456789。轮换做向左,所以如果你转动它一个位置,这将是234567891。这表示为: 198 327 456 输入值 输入由螺旋线和旋转距离组成。 距离将始终为正整数或零,并且可以以您的语言的数据类型限制为上限。 螺旋线应视为一个字符串,并带有您选择的行定界符(不包括定界符)。它始终是一个正方形,不包括定界符,并且边长为奇数。 假设所有字符都是字母数字[A-Za-z0-9]。 输出量 输出是旋转的螺旋。它应该是多行的正方形(无论是打印还是退回)。 例子 输入值 3 tne atd bin 输出量 bat nit den 输入值 18 efilr naepo umshf tootr butte 输出量 rettu omseb oofft trliu hpean 这是代码高尔夫,分数照常以字节为单位。
12 code-golf  string 

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.