Questions tagged «code-golf»

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

23
GolfScript的改进版本
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我计划为甚至可以做更多事情的较短程序编写改进的GolfScript。这不是挑战。这是一个对我应该做的事情的反馈和提示的请求。(请参见标签) 我不确定这是否应该是Community Wiki。如果您是这样认为的,只需标记一个主持人即可将其转换:) 这种语言将与GolfScript非常相似。它仍然是用Ruby编写的。但是,它有一些区别: 使用`作为字符串分隔符,因为它是一个不常见的词,所以更少的逃脱是必要的。(另一个字符可以代替其功能,例如#(稍后会详细介绍))。\`逃避反引号,\\逃避反斜杠,并且没有其他逃避序列。如果需要换行符,只需在字符串中插入实际的文字换行符即可。 使用Ruby的Rational任意精度浮点数,这是GolfScript的主要缺陷之一。 将类型转换为其他类型的能力。例如,您可以将块转换为字符串。 常用表达。可能是用创建的"..."。运营商也将为此而超负荷。例如,"\W"~{`Invalid: non-word character`}{`OK`}if。从变量(如块)中推送时将自动执行。 File和Date对象,以执行GolfScript中无法完成的更多工作。这些将没有文字,但是将具有用于初始化它们的功能,例如`file.txt`fl(文件制作功能的名称可能会更改)。 可能是哈希,但是我不确定是哪一个。我是不是该? 辅助功能可以做更多的事情。例如,`http://example.com`net对于网络访问(同样,net可以重命名运营商)。rb将字符串作为Ruby代码执行。这些将会更多。建议欢迎。 没有评论,因此#可以用于其他用途。如果您想发表评论,`comment here`;将可以正常工作。(也许#可以代替`的功能) 它将被完全重写,从而可以轻松添加功能。基本上,代码将更具可读性。(您是否看到过GolfScript源代码?:/) 它将在Github上,因此可以进行协作工作。我将在麻省理工学院(MIT)或其他方面获得许可。 没有最后的换行符,所以狡猾的奎因工作:P 我将它们区分开,因为我认为它们是最激烈,最有用的更改(可能添加浮点除外): 它将内置许多Ruby函数。例如,shuffle(可以缩写为sf)(以前为9个字符),tr(以前为14个字符),sample(sm以前为.,rand=),flatten(fl以前为???)等。 它会像Rebmu一样被静音。例如,现在您可以~:a0<{0a-}aIF(使用字母变量名称)代替~:$0<{0$-}$if(覆盖排序功能)。(此处的示例)。请注意,这种方式不区分大小写,并且变量名中不允许使用数字。我认为这是可以的,因为它是一种高尔夫语言:P 它将进行调试。我将添加以下功能:提供一个标志,用于指定数组定界符,元素定界符等,数字输出(有理数,浮点数或int?),一次执行一个指令,标记化并输出每个标记,而不是运行程序,等等 所以,我的问题是:有什么要改进的?您认为我应该补充什么? 在开始编码之前还有其他想法吗?

13
Befunge高尔夫技巧
您在Befunge打高尔夫球有哪些一般提示?我正在寻找可用于编码至少在某些方面特定于Befunge的高尔夫问题的想法(例如,“删除评论”不是答案)。请为每个答案发布一个提示。

29
作业时间!在字符串中找到我的最低偶数
来自Stack Overflow的另一个精彩问题变成了代码高尔夫球挑战! 编写一个程序,该程序: 接受字符串作为用户输入(不通过管道输入或使用命令行参数)。输入的数据类型必须为字符串,如果该语言对输入进行自动评估,则必须将其强制转换为字符串。 发现的第一个最低的偶的索引(0或1型)位。 打印2个整数,即索引和最低的偶数位。 如果没有连位,返回-1为指标,第二个数字可以是任何东西。 出于这个目的,零甚至不是。 测试示例,给定左侧的字符串,右侧输出值: 25376 --> 0,2 523726 --> 1,2 583746 --> 4,4 53771 --> -1,0 _4___2 --> 5,2 优胜者:是字符数最少的程序。没有奖金,没有罚款。 编辑:(关于stdin)我搞砸了用户输入部分,基本上没有管道数据,也没有命令行参数。您必须在程序本身内提供某种用户提示。
12 code-golf 

18
直方图生成
编写最短的程序以生成直方图(数据分布的图形表示)。 规则: 必须根据输入到程序中的单词的字符长度(包括标点符号)生成直方图。(如果一个单词的长度为4个字母,则代表数字4的条形将增加1) 必须显示与标签代表的字符长度相关的标签。 必须接受所有字符。 如果必须缩放条形图,则必须在直方图中显示某种方式。 例子: $ ./histogram This is a hole in one! 1 |# 2 |## 3 | 4 |### $./histogram Extensive word length should not be very problematic. 1 | 2 |# 3 |# 4 |## 5 | 6 |## 7 | 8 | 9 |# …

23
不使用任何内置排序方法对字符串列表进行排序
本代码高尔夫的目标是创建一个程序,该程序对字符串列表进行排序(以升序排列),而无需使用任何内置的排序方法(例如Array.Sort().NET,sort()PHP等)。请注意,此限制不包括使用将数组降序排序然后反转数组的内置方法。 一些细节: 您的程序应该提示您输入,并且此输入是仅包含ASCII小写字母字符的字符串列表a-z,逗号分隔且不带空格。例如: code,sorting,hello,golf 输出应为给定的字符串列表,但以升序排序,但仍以逗号分隔,不带空格。例如: code,golf,hello,sorting

7
最短的程序,其串联的程序+输出是95个可打印ASCII字符的排列
编写一个尽可能短的程序(以字节计数为单位),不输入任何内容,不包含任何注释,并输出一个字符串/序列,这样,串联的程序+输出正好是95个字符长,并且包含每个可打印的ASCII字符仅一次,即program + output是95个字符的置换,ASCII码为32-126: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 如果出现平局,则获胜者是其项(95个字符)并置的程序+输出最接近上述字符串的条目,根据Levenshtein编辑距离(即,单个字符的删除,插入或删除的个数)必须将其替换为ASCII顺序)。
12 code-golf 

1
可逆十六进制转储实用程序(又名xxd)
xxd是与捆绑在一起的实用程序,vim已用于对该网站上的高尔夫问题代码进行编码。它将二进制文件转换为十六进制转储,然后再次返回。 以您选择的编程语言实现xxd和xxd -r命令。评分基于以下条件的字符/字节长度:a)您的程序,b)在模式之间切换组合程序所必需的任何命令行参数(不需要-r)。与高尔夫一样,分数越低越好。 对于两个单独的程序:正向代码 + 反向代码 对于组合程序:组合代码 + sum(正向参数)+ sum(反向参数)-2 所选xxd子集的规格 正向命令(例如 xxd)接受0≤ Ñ ≤2 16从标准输入字节,并产生小区(Ñ / 16)以下面的格式(所有十六进制数字小写)标准输出的行: 第一个编码字节的偏移量(格式字符串"%07x:");结束于"0" 最多16个十六进制编码的字节,成对分组(格式字符串" %02x"为偶数字节,"%02x"奇数字节),并用空格右填充42个字符 编码的字节被解释为ASCII字符,其值不介于0x20和0x7e('\40'和'\176')之间,包括"." 换行符("\n";"\r\n"标准输出为二进制模式时允许;) 最少的非实现C实现: #include <stdio.h> int main() { unsigned char L[16]; int t = 0, n, i, s; for (; (n = fread(L, 1, 16, stdin)); t += n) …
12 code-golf 

4
您可以在酒吧中对条形码进行编码吗?
欢迎来到墨尔本的piNapple酒吧。所有最好的代码高尔夫球手都在这里,他们的笔记本电脑,鸡尾酒的采样和编程变得越来越糟糕。 我感到特别需要强调最后一点。越来越严重。酒精可以使编程逻辑变得有趣。 所以-一些高尔夫球手正在尝试使用越来越异国情调的语言制作一些嵌套的奎因。有人在INTERCAL中命中了第四名。然后,酒精的流动停止了。他喝醉了,不小心从一台完全不同的计算机上删除了条形码读取算法……甚至没有连接任何网络!(孩子们-不要INTERCAL。为了您。为了您的家人。) 通常,这不是大问题。但是,几年前,有些高尔夫球手已经设计了该系统,而且条形码都不是标准的。假设1是行,0是空格,它们都以101开头并以1001结尾。中间的所有内容都是7位ASCII编码的。 barkeep确实有一个大型花式条形码读取器,它会根据您的程序,通过STDIN,参数或文件返回任意长度的字符串(虽然少于300位),它们的值为1和0。根据瓶子的存放方式,它可能向前还是向后。您的程序必须通过STOUT或文件从条形码中间返回字符串。 不幸的是,他没有在存储上花费太多,因此将选择来源最短的程序,并从其他高尔夫球手那里获得免费饮料和醉酒编程教程。 祝好运!
12 code-golf 

6
管理一家馅饼店!
摘要 打代码高尔夫很好。馅饼很好。将两者放在一起时,只会发生好事。 技术指标 在这个挑战中,您将管理一家馅饼店。用户将能够输入五个不同的命令:list,count,buy,sell,和exit。这是每个的规格: list 打印所有拥有的馅饼的列表,以及多少。与分开,|并在两侧各留一个空格。|必须对齐。派的金额可能为负(这意味着您欠某人的派:()。例如: | apple | 500 | | blueberry | 2 | | cherry | -30 | count [type] 打印{{type}}有多少个馅饼。打印“没有{{type}}派!” 如果没有。{{type}}将始终与正则表达式匹配\w+(即,它将始终是单个单词)。例如,如果我在上面的示例列表中显示了一定数量的馅饼,则 > count apple 500 > count peach There is no peach pie! buy [n] [type] 添加{{n}}到{{type}}饼数中,然后打印。{{type}}如果不存在,请创建饼图。{{n}}将始终与正则表达式匹配[0-9]+(即,它将始终是数字)。这是另一个示例(与前面的示例具有相同的饼图库存): > count blueberry 2 > buy 8 blueberry 10 …
12 code-golf 

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

5
“ Cowsay”的简称[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 cowsay在默认模式下模拟。 $ cowsay <<< Hello _______ < Hello > ------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || $ perl -e 'print "Long text "x20' | cowsay __________________________________________ / Long text Long text Long text Long text \ | Long …

2
绘制3D网-阿基米德固体
我对3d蚊帐有一个缺点,当将其剪裁和折叠后,可以用纸或卡片制作3d形状。任务很简单,编写了可以用最短的程序绘制13个阿基米德固体的网。输出应该是任何合理格式(png,jpg)的图像文件。 在http://en.wikipedia.org/wiki/Archimedean_solid以及从此处获取的下表中,描述了所有13种形状。 输入: 1到13之间的整数。假设形状的编号与上表完全相同,因此“截头四面体”为1,“双十二面体”为13。 输出:包含该形状网的图像文件。只需包括内部线条的轮廓即可。无需用颜色填充 您可以使用自己喜欢的任何编程语言,也可以使用不是专门为这次比赛而制作的任何库。两者都应该在线免费提供(从两种意义上来说)。 我会在一周的时间内接受最少字符数的答案。 只要有答案,答案就会被接受。 (否)获胜者。 遗憾的是没有有效的进入者。也许太难了?
12 code-golf 

6
扫雷器
与生成扫雷器网格类似,尽管面临的挑战是要使扫雷器网格正常工作。 这将比普通代码(我认为)更长的代码。 有关扫雷的更多信息。 扫雷(Minesweeper)是大多数操作系统上都能找到的逻辑游戏。该游戏的目标是确定地雷在网格上的位置,并给出指示该点周围地雷数量的数字。 所需功能: -Randomized mine generation -8x8 field with 10 mines -Mine and "unknown" flags -Reveal nearby blank spaces when a blank space has been revealed. -Input and output code: It must be playable. (Input and output code counts in the total) 计分注意事项: Anything that is needed to …

6
得分Yahtzee游戏
对于Yahtzee计分表的13行中的每行,您都会(从stdin中)获得一个由5个数字(骰子)隔开的列表。您的任务是计算每条线的分数并输出游戏的总计。 例 输入及其解释: Input Box Score 6 1 4 1 3 Aces 2 3 2 2 1 2 Twos 6 6 3 2 3 3 Threes 9 4 2 3 6 5 Fours 4 6 3 5 5 1 Fives 10 1 5 6 5 6 Sixes 12 Bonus - …
12 code-golf  number  game 

12
寻找最“独特”的词
使用您选择的语言,编写最短的函数/脚本/程序,以识别文本中唯一字母数量最多的单词。 唯一字母应使用UTF-8编码包含任何不同的字符。 相同字符的大写和小写形式不同且不同; 'a' != 'A' 单词受任何空白字符限制。 “字母”是可以用单个unicode字符表示的任何符号。 文本文档必须由您的代码读取-不允许对文本进行预加载/硬编码。 输出应该是单词,然后是唯一字母的计数。 llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch - 18 两个值之间的任何定界符/间距都取决于您,只要有至少一个字符将它们分隔即可。 如果存在多个单词且具有最高计数,请打印该单词的所有单词,并用新行分隔。 超级肯定-16 伪lambranchiate-16 这是代码高尔夫,所以最短的代码获胜。 这个关于English.SE的答案启发了我去挑战。该示例仅使用单词列表,但是任何文本都应能够处理。
12 code-golf  word 

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.