编程拼图和代码高尔夫

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

30
不带数学的输出Pi [关闭]
用尽可能少的字节,您的工作是编写一个输出以下程序: 3.14 为了庆祝Pi晚会!:) 规则 您可以按照自己喜欢的方式进行操作,但是有一些限制。 您可能无法在程序中的任何地方使用算术运算。这包括+,-,*,/,%,^(幂),等...这也包括递增(通常++),递减(--),位操作,任何内置函数可以被用作替换如sum(),prod(),mod(),double(),pow(),sqrt(),inc(),dec()等...(作者酌情决定) 数字3,1和4可能不会出现在代码中的任何位置。 你可能不使用任何预定义变量/常量,你的语言可能作为替代3,1和4。(作者酌情决定) 您也可以不使用任何三角函数等sin(),cos(),tan(),arcsin(),arccos(),arctan(),sinh(),cosh(),tanh(),等...(作者的自由裁量权) 您不得使用Pi(或3.14)的内置值或预定义值。没有网络请求。 您的程序不能要求任何输入(除了运行它)。 3.14是您唯一可以输出的东西,它不能成为更长/更大输出的一部分。 优胜者 4月18日字节数最少的答案将获胜。祝好运! 期待从聪明的头脑中得到聪明的答案!anyone人?:P
56 code-golf  pi 

30
如果一个代码高尔夫球可以打高尔夫球,一个代码高尔夫球可以打多少代码?
编写一个函数或程序,以两个单词作为输入并输出流行的英语舌扭曲的变体“如果土拨鼠可以夹木头,那么土拨鼠可以夹多少木头?”。 输出将使用第一个单词四次 多少wood将一wood盘盘如果一个wood吸盘可以扔掉wood? 第二个单词四次 多少木头木chuck chuck若木chuck能chuck有木有? 其他输入的其余输出相同。 How much木材would a土拨鼠夹头if a土拨鼠could夹头木? 输入和输出可以采用您的语言可以合理识别为处理文本字符串的任何格式。输出必须完全采用指示的格式,包括大写,空格和缺少空格以及结尾的问号。可选的尾随换行符是可接受的。 理想情况下,您的代码将处理包含任何可打印ASCII字符的输入。但是,允许将输入限制为可打印ASCII的合理子集。只需在您的答案中指出。处理较大的字符集当然很好。 输入/输出对示例: "wood", "chuck" "How much wood would a woodchuck chuck if a woodchuck could chuck wood?" "ground", "hog" "How much ground would a groundhog hog if a groundhog could hog ground?" "bar", "keep" "How much bar would …
55 code-golf  string 

16
“ 99瓶汽水”
挑战 编写一个将歌词输出到99瓶啤酒的程序,但是如果墙上的瓶子数是3的倍数,则输出“嘶嘶” ,而不是“啤酒”,如果是5的倍数,则输出“嗡嗡声”,并且如果“ fizzbuzz”是3的倍数和5的倍数。如果墙上的瓶子数量不是3或5的倍数,则只需照常输出“啤酒”即可。 歌词 99 bottles of fizz on the wall, 99 bottles of fizz. Take one down and pass it around, 98 bottles of beer on the wall. 98 bottles of beer on the wall, 98 bottles of beer. Take one down and pass it around, 97 bottles …

30
无糖语法
在Haskell中,列表符号: [a,b,c] 只是语法糖,用于: a:b:c:[] 和字符串符号: "abc" 只是语法糖,用于: ['a','b','c'] 这意味着字符串: "abc" 是相同的: 'a':'b':'c':[] 任务 给定一个字符串,您应该输出在Haskell中看起来像无语法的版本。 规则 您将通过任何有效的输入方法收到一个字符串,您应该输出一个字符串,该字符串以:[]输入中的每个字符结尾,并用包围'并用分隔:。空字符串应该输出[]。 您可以假设您不会收到任何需要转义的字符(例如',换行符,制表符...),并且输入内容处于可打印的ascii范围内 这是代码高尔夫球,您应尽量减少答案的字节数 测试用例 "" -> [] "a" -> 'a':[] "Hello, World" -> 'H':'e':'l':'l':'o':',':' ':'W':'o':'r':'l':'d':[]

24
做一碗字母汤
这就是我们所说的一碗字母汤-一种大致呈圆形的ascii-art形状,具有26个大写英文字母(AZ)顺时针排列以形成周长: XYZABC VW DE U F T G S H RQ JI PONMLK 编写一个使用单个字母字符AZ并输出相同碗的“旋转”字母汤的程序,可以这么说,因此输入字母出现A在上例中的位置,其余字母完全循环顺时针。 因此,输入的输出A将是相同的原始碗字母汤。 输入的输出B将是以下内容: YZABCD WX EF V G U H T I SR KJ QPONML 同样,输出为H: EFGHIJ CD KL B M A N Z O YX QP WVUTSR 或Z: WXYZAB UV CD T E S F R …

20
退出代码高尔夫
受到IO默认设置的启发。 任务 编写一个程序,如果输入整数x在0到255之间,则退出代码将导致崩溃x。 限制条件 您不得调用直接用于退出代码输出的任何内容(System.exit(x),从main等返回)。而是,您的程序必须导致错误或崩溃,以1的概率导致程序以输入整数退出。 在这种情况下,“错误”和“崩溃”一词表示程序导致了一些致命的意外异常,其中错误地使用了方法,操作或其他方式导致了不可逆的故障。 您可能不会直接抛出错误而直接导致错误。您必须使用方法,函数或其他用途来实现此目的,而该方法,函数或目的是提供不同功能的函数(例如,尝试执行对只读目录的文件写入操作)。 您的程序中必须至少有两个退出代码。 禁止使用信号终止过程。(可以在此讨论中找到理由) 计分 程序的分数取决于所支持的退出代码的数量,其中代码简洁性是决胜局。支持的退出代码数量最多!

15
用不打孔的方法写出整个孔
十进制代码33至126 的ASCII字符为: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 请注意,在大多数字体中,这些字符中的25个在其中带有“孔” :(您可能会说大于0的属) #$%&04689@ABDOPQRabdegopq 其他68个“空洞的”字符是: !"'()*+,-./12357:;<=>?CEFGHIJKLMNSTUVWXYZ[\]^_`cfhijklmnrstuvwxyz{|}~ 您的任务是编写仅使用不打孔的字符的最短程序,该字符将以任何顺序将每个带孔字符精确输出一次。 由于空格,制表符和换行符(换行和/或回车符)为空白,因此它们可能会出现在程序或其输出中。它们仍然计入字符数。可能不使用其他ASCII字符(当然也不能使用非ASCII字符)。 笔记 您不必使用所有无用的字符,也不必只使用每个。 输出中不得包含无用字符。 该空白语言也可以使用。 输出应转到stdout或可以转到文件。应该没有输入。 奖励:只是为了好玩,尝试使用带孔的字符打印所有不打孔的字符。我怀疑是否可以使用现有语言来完成。

30
绘制ASCII双螺旋
通过stdin或命令行编写一个接受整数N的程序。 如果N为0,则O必须将单个字母打印到标准输出。 如果N为正,则必须打印此水平 ASCII艺术双螺旋(绘制N段宽)。 如果N为1,则输出为: /\ O O \/ 如果N为2,则输出为: /\ /\ O / O \/ \/ 如果N为3,则输出为: /\ /\ /\ O / / O \/ \/ \/ 如果N为4,则输出为: /\ /\ /\ /\ O / / / O \/ \/ \/ \/ 对于较大的N,该模式以完全相同的方式继续。请注意,/在螺旋线交叉的所有位置(O末端除外)都必须使用正斜杠()。 如果N为负数,则必须打印此垂直 ASCII艺术双螺旋,将其绘制为-N段高。 如果N为-1,则输出为: O / \ \ …

9
科德蒙,我选择你!
您的好邻居Tree Doctor刚给了您三种叫做Codémon的神奇生物。附近的Colorville镇有一场战斗比赛。您是最好的吗? 总览 这是一场战斗比赛。每个玩家控制一个由三个怪物组成的团队,目标是淘汰(杀死)另一个团队。共有100场比赛,获得胜利和平局的得分。得分最高的团队获胜! 怪兽 科德蒙是一个复杂的小动物。有五种类型(元素)可供选择,三个统计数据,每个都有三个移动位置。 种类 每个Codémon被分配一种类型。这五种类型是正常,精神,火,水和草。每个都有其优点和缺点。损坏基于下图: 这些数字是伤害乘数。例如,烈火之水具有0.5的修正值(半伤害),而烈火之草则提高了一倍(2)。 统计资料 每个怪物都有三个决定其战斗能力的属性。攻击会造成伤害。防御可以降低承受的伤害。速度允许它先于速度较低的那些移动。 每个怪物的每个属性的起始值均为50,最大值为100。创建怪物时,您将能够分配80个附加的统计值(每个)。请记住,没有任何一项统计数据可以超过100。因此,您可以分配100/80 / 50、90 / 80/60或65/65/100,但120/50/60是非法的。任何拥有非法数据的球队将被取消比赛资格。您不需要全部使用80分,但是您可能不应该使用最低50/50/50。 您也可以将HP视为统计数据,但每个Codémon的不可修改HP为100。当HP降至零时,他们将无法继续战斗。每次战斗之前,HP会加满100。 动作 每个怪物都知道三个战斗招式。选择的三个必须不同,因此不能使用打孔/打孔/打孔。 一共有15个动作,每种动作三个。每种类型都有直接攻击,效果较弱的攻击和唯一效果移动。 id name type power uses usable effect 0 Punch N 20 - NFWG 1 Heal N 0 3 NFWG Heals 50 HP 2 Slow N 10 5 NFWG Enemy speed …

30
创建字母歌曲
您的目标是按照以下格式(按顺序)将字母歌曲创建为文本: A is for <word starting with A> B is for <word starting with B> C is for <word starting with C> ... Z is for <word starting with Z> 输出示例: A is for Apple B is for Banana C is for Carrot D is for Door E is for …

30
巴什高尔夫技巧
您在巴什(Bash)打高尔夫球有哪些一般提示?我正在寻找可以应用于编码高尔夫问题的想法,这些想法至少在某种程度上是特定于Bash的(例如,“删除评论”不是答案)。请为每个答案发布一个提示。
55 code-golf  tips  bash 

30
如何随机化单词中的字母
根据一个有争议的故事,对于拉德尼格来说,杂乱无章的杂物对拉德尼格的影响不大,就像伊诺格像原始杂物杂乱无章的拳头一样。 因此,为了好玩,将单词中的字母顺序随机化而又将第一个和最后一个字母保留在原位的最短函数是什么? 这是我使用JavaScript的目的。删除的所有空格都为124130个字符。 function r(w) { var l=w.length-1; return l<3?w:w[0]+w.slice(1,l).split("").sort(function(){return Math.random()-.5}).join("")+w[l]; } 总是欢迎使用较短的JavaScript。 编辑:添加了长度检查。简短的功能不应失败。

30
你能告诉我时间吗?[关闭]
您知道您的语言的时钟/时间API已损坏,并且根本不可靠。 因此,不允许您使用任何内置的API访问系统时间/日期。 但是,您也知道您的语言执行日期数学运算并将日期/时间值保留在变量中的能力是正确的。 编写一个可打印当前日期/时间而不调用任何日期/时间/时钟API的程序。例如DateTime.Now,GetDate()和类似的功能是不允许的。 多数投票的答案是成功的。 如果是平局,则以更精确的答案为准(即,精确到秒,然后是毫秒,然后是微秒,依此类推)。

29
产生易于理解的句子
问题: 生成一个可以阅读和理解的句子。它必须包含一个主语,动词和宾语,并且时态和复数必须匹配。该程序还必须能够生成几个不同的句子以符合条件。 规则: 不允许对句子进行硬编码,也不能直接从文件中读取它们(我在看着你,很顺利) 您可以有任意数量的单词列表 提交由您的程序生成的示例句子或2 接受任何语言 这是一场人气竞赛,因此最受好评的答案胜出

21
向编程语言添加功能
您的任务是通过实现一个非常聪明的库,或者通过处理输入文本和/或调整编译过程,将特征附加到编程语言上。 想法: 将PHP样式的演示文稿添加到C中(例如 <?c printf("Hello,"); ?> world!)。 添加一个空合并运算符到非C#的一种语言中。 将宏添加到PHP。 加 goto到JavaScript。 将模式匹配添加到语言X。 将名称空间支持添加到没有语言支持的语言中。 使C看起来像PHP。 使Haskell看起来像Pascal。 ...(可在评论部分中发表想法) 规则: 把东西拿到桌上。不要只说“ Template Haskell”即可向Haskell添加元编程功能。这不是StackOverflow。 整个实现应该适合一个屏幕(不包括示例)。 不要将代码托管在专门用于此任务的外部站点上。 最令人印象深刻或令人惊讶的功能获胜。 不必担心100%正确地实现该功能。离得很远!主要的挑战是弄清楚您想做什么,并恶毒地砍掉细节,直到计划好的工作变得可行。 例: 向C编程语言添加一个lambda运算符。 初始方法: 好的,我知道我想使用libgc,以便我的lambda可以解决向上和向下的funarg问题。我想我需要做的第一件事是为C编程语言编写/查找一个解析器,然后我需要学习有关C的类型系统的所有知识。就类型而言,我必须弄清楚如何理解它。我需要实现类型推断,还是只需要按照给定的形式键入形式参数?CI中所有不知道的疯狂功能怎么办? 很明显,在C中正确实现lambda是一项艰巨的任务。忘记正确性!简化,简化。 更好: 向上拧螺丝,谁需要它们?使用GNU C的嵌套函数和语句表达式,我也许可以做一些棘手的事情。我想用简洁的hacky代码展示C语言上惊人的语法转换,但是我什至不需要解析器。那可以等待另一天。 结果(需要GCC): #include <stdio.h> #include <stdlib.h> #define lambda(d,e)({d;typeof(e)f(d){return(e);};f;}) #define map(F,A)({typeof(F)f=(F);typeof(*(A))*a=(A);({int i,l=((int*)(a))[-1]; \ typeof(f(*a))*r=(void*)((char*)malloc(sizeof(int)+l*sizeof(*r))+sizeof(int)); \ ((int*)r)[-1]=l;for(i=0;i<l;i++)r[i]=f(a[i]);r;});}) #define convert_to(T) lambda(T x, …

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.