编程拼图和代码高尔夫

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

6
史莱姆:领土战争
您是史莱姆集团。自然,成为粘液,您希望渗出尽可能多的区域。但是还有其他3个史莱姆想要做同样的事情。谁将是卓越的史莱姆? 描述 所有的史莱姆将被集中到一个竞技场。评委(即控制程序)将详尽列出所有可能的4种软泥组合,将它们放在桌子的四角,并观察哪些粘液在大部分区域渗出。 您的史莱姆每回合可以执行以下三种动作之一:展开,跳跃或合并。有关这些含义的进一步说明将在“ 输出”部分中提供。 棋盘/竞技场 竞技场将是一块正方形板(当前为8x8,但将来可能会改变)。这是正在进行的游戏的示例竞技场: 11111222 11111444 11.22444 .1222.4. 333.3244 33333.44 333...44 333....4 史莱姆用数字1到4(玩家1到4)表示,空白处用点(.)表示。最初,棋盘开始时是所有空白空间,除了左上角的单个玩家1的软泥,右上角的玩家2,左下角的玩家3和右下角的玩家4之外。 坐标由基于0的行和列索引表示,以提高代码的可读性。例如,坐标(3,6)代表第4行中的第7个正方形(在上面的示例中为a 4)。(这使访问正方形更加容易:board[coords.x][coords.y]。)这是一个直观的插图: (0, 0) (0, 1) (0, 2) (1, 0) (1, 1) (1, 2) (2, 0) (2, 1) (2, 2) 输入值 程序的输入将是您是哪个玩家(1、2、3或4),逗号(,),然后是棋盘/区域的内容(用逗号替换换行符)。例如,如果您在上述情况下是玩家3,则输入为: 3,11111222,11111444,11.22444,.1222.4.,333.3244,33333.44,333...44,333....4 输出量 您的程序必须输出4个整数。前两个分别是您要移动的粘液的行索引和列索引,后两个分别是您要将粘液移动到的行和列索引。 每转一圈有三种选择:展开,跳跃或合并。 传播 要扩散,目标坐标必须与要移动的粘液正好相距一个正方形,并且目标坐标处的正方形必须为空白空间。扩展时,将在目标坐标处创建新的史莱姆,并且不会删除旧的史莱姆。创建新的史莱姆之后,围绕此新史莱姆的8个方格中的所有敌方史莱姆都将转换为移动的玩家。 例如,对于图1中的棋盘,如果要输出玩家1 0 1 1 2,则结果将是图2中的棋盘。 1. …

13
一个坏的三元运算符应该得到另一个
今天的每日WTF引用以下代码行... FailSafe==0?'No technical alarms':((FailSafe&1)!=0&&(FailSafe&2)!=0&&(FailSafe&4)!=0&&(FailSafe&8)!=0?'Detection zones staying in a given state; Bad visibility; Initialization; Bad configuration':((FailSafe&1)!=0&&(FailSafe&2)!=0&&(FailSafe&4)!=0?'Detection zones staying in a given state; Bad visibility; Initialization': ((FailSafe&1)!=0&&(FailSafe&2)!=0&&(FailSafe&8)!=0?'Detection zones staying in a given state; Bad visibility; Bad configuration':((FailSafe&1)!=0&&(FailSafe&4)!=0&& (FailSafe&8)!=0?'Detection zones staying in a given state; Initialization; Bad configuration':((FailSafe&2)!=0&&(FailSafe&4)!=0&&(FailSafe&8)!=0?'Bad visibility; Initialization; Bad configuration':((FailSafe&1)!=0&&(FailSafe&2)!=0?'Detection zones …
18 code-golf 

8
一字母互换
网络上最大的论坛postpost ++决定制作一个新的论坛游戏。在此游戏中,目标是发布单词,但是单词必须添加,删除或更改一个字母。您的老板希望您编写一个程序来获取单词,并使用UNIX词典,因为您在一家拥有更智能论坛和更智能论坛游戏的公司工作,并想破坏竞争(嘿,这是您的老板,不要与他讨论,无论如何您都会从工作中获得很多现金)。 您的程序将获得两个参数,单词和字典。由于管理程序的用户(是的,用户,您的公司没有资源来运行机器人)并不完美,因此您应该对两种情况都进行规范化处理。词典中的单词可能具有ASCII字母(大写和小写,但在比较时应将其忽略),破折号,撇号和中间的非连续空格。它们不能超过78个字符。您必须输出游戏中可以接受的单词列表,以打破手动思考单词的人们的乐趣。 这是您期望的程序的示例,检查与相似的词golf。 > ./similar golf /usr/share/dict/words Goff Wolf gold golfs goof gulf wolf 的/usr/share/dict/words是单词的列表,每个后换行符。例如,您可以使用fgets()轻松阅读该内容。 您工作的公司没有很多打孔卡(是的,这是2014年,他们仍然使用打孔卡),所以请不要浪费它们。编写尽可能短的程序。哦,您被要求不要使用Levenshtein距离的内置或外部实现或任何类似算法。关于“此处未发明”或显然是供应商插入该语言的后门的东西(您没有这些的证明,但不与老板讨论)。因此,如果您需要距离,则必须自己实现。 您可以自由使用任何语言。即使有了打孔卡,该公司也可以使用最现代的编程语言,例如Cobol Ruby或Haskell或任何您想要的东西。他们甚至拥有GolfScript,如果您认为它对字符串操作很有用(我不知道,也许...)。 获胜者会从我那里获得15个声誉点,并可能从社区中获得许多其他积分。其他好的答案将获得10分,社区也将获得分。您听说积分不值钱,但是很有可能在2050年取代美元。但是,这还没有得到证实,但是无论如何要获得积分是一个好主意。
18 code-golf  string 

30
返回数字的翻转版本
当数字显示在计算器上时,可以考虑该数字的各种变换是什么样的。例如,在七段显示器上,如下所示显示了2: 当水平翻转时,它看起来像这样: 这样,2的镜像为5。 挑战中的任务是获取一个数字,然后返回作为其镜像的数字(如果可能)。如果其镜像看起来不像数字,则返回旋转180度的数字(如果可能)。如果都不是,则返回-1。 这是程序需要处理的输入和输出的完整列表: Input Output 0 0 1 -1 2 5 3 -1 4 -1 5 2 6 9 7 -1 8 8 9 6 作为代码高尔夫球挑战,最短的代码胜出!
18 code-golf  number 

15
编码高尔夫ASCII艺术的简单方法!
任务: 在这个网站上,有很多答案都被安排在ascii艺术中,例如这个。通常,这种安排是手动完成的,但是程序对此没有帮助吗?:) 您的程序将接受3个输入: 代码,作为一行 模式中的行数(如有必要,可以省略) 模式本身,如*s或其他字符 规则: 您必须编写一个从stdin读取的程序(而不是函数) 文本每行从左到右放置 如果没有足够的文字填充模式,请.在剩余的空格中输入s 如果文本太多,无法填充图案,请在输出后将其打印出来 code-golf,所以最短的代码(以字节为单位)获胜 样品运行: 输入(精确拟合测试): qwertyuiopasdfghjklzxcvbnm 4 ***** * *** * * * * * * * * ***** * *** 输出: qwert y uio p a s d f g h j klzxc v bnm 输入(额外字符测试): qwertyuiopasdfghjklzxcvbnm12345 4 ***** * …

4
计算实际数字
定义 正整数n是一个实际数字(OEIS序列A005153),前提是所有较小的正整数都可以表示为的不同除数之和n。 例如,18是一个实际数字:其除数为1、2、3、6、9和18,小于18的其他正整数可以形成如下: 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + 9 12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

30
添加char值的计算器
任务 构建一个计算器,该计算器从文件,stdin或其他任何文件中获取任何字符串,并将所有char值加起来。 例 Input Hello World! Output 1085 规则 计算器仅需要接受ASCII编码。 最短的代码获胜。 笔记 关于m.buettner的评论,我需要说,我没有想到多字节部分。 所以我也把它当作奖励。 计算器应按书面形式运行,因此无需在编译或解释之前进行修改。 奖金 多亏了Synthetica,这是另外一项奖励, 当您使用其代码赢得输入时,其输出最低的程序将获得一颗星。 我不想完全修改它。 如果您额外写它以输出UTF-8中的(正确)值,则会得到一个星号。 在我的笔记本电脑上执行最快的代码(联想Yoga 13 Intel Core i5 3317U 1.7Ghz,8GB RAM,128GB SSD,Intel HD 4000,Windows 8)获得了好评。 网络代码将首先在带有轮轮的 IE11下运行,然后在带有SpiderMonkey的 FireFox 29.0.1中运行 Linux代码将在具有Raspbian的Raspberry Pi上运行。 测试字符串是这样的: q/%8hnp>T%y?'wNb\},9krW &D9']K$n;l.3O+tE*$*._B^s!@k\&Cl:EO1zo8sVxEvBxCock_I+2o6 yeX*0Xq:tS^f)!!7=!tk9K<6#/E`ks(D'$z$\6Ac+MT&[s[]_Y(`<g%"w%cW'`c&q)D$0#C$QGf>?A$iawvc,}`9!('`c&q)D$0#C$QGf>?A$iawvc,}`9!( 玩得开心编码:) 奖金计分 我计划在这个星期六进行评分,因此07.06.14,该日期之后的所有答案都不会获得加分;) 您可以在此处下载我将用于测试的代码,以方便进行分叉和改进:) 由于奖金很少更新,我的笔记本电脑部分坏了,所以我大概在下个周末这样做,对此我真的很抱歉:(
18 code-golf 

6
创建一个西蒙克隆![关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 去年关闭。 场景:编程时,您会突然怀念80年代和俗气的游戏。 要求:为游戏Simon制作一个GUI程序(文本可能不起作用)。输入可以单击,也可以按一个键。您应将屏幕分为4个区域:黄色,蓝色,红色,绿色。游戏开始时,随机颜色会亮起,然后将其激活。然后,两个指示灯点亮,一个接一个,接着您需要按顺序激活它们,依此类推。当您按错误的颜色时,游戏结束。 奖金: 如果包含声音,则为-100(按每个区域时以及游戏显示颜色时播放的音符不同) -25(如果您包括得分计数器)。
18 code-golf  game 

11
崩溃IRB(交互式Ruby)
Ruby带有内置的REPL,非常方便。 您面临的挑战是以最少的代码将其崩溃! “崩溃”的定义是“使其意外退出”。这意味着exit,quit,abort,irb_exit,irb_quit,等。等 不是有效的答案。 此外,您可能不会对系统的任何其他部分造成任何副作用。例如,`rm -rf /`也无效。 任何1.9.3或更高版本均有效。如果您的代码仅适用于特定版本的Ruby,则可以在答案中进行指定。 最后的限制是您不能依赖任何宝石。 这是代码高尔夫球,因此使IRB崩溃的最短代码将获胜!
18 code-golf  ruby 

1
创建一个C预处理程序
目的是为C语言创建一个预处理器,以您喜欢的语言在源代码大小(以字节为单位)方面尽可能地小。它的输入将是C源文件,其输出将是经过预处理的源代码。 它需要处理的项目为:注释删除(行/块),#include指令(通过在相对路径中打开文件并在需要的位置替换文本),#define,#undef,#if, #elif,#else,#endif,#ifdef,#ifndef和define()。其他C预处理程序指令,例如#pragmas或#errors,可以忽略。 无需在#if指令中计算算术表达式或比较运算符,我们假设该表达式只要包含非零的整数(它的主要用途将用于define()指令),就将计算为true。可能的输入和输出示例如下(为了更好的显示,输出文件中可能的多余空格被剪裁了,不需要您的代码这样做)。能够正确处理以下示例的程序将被认为是足够的。 ----Input file: foo.c (main file being preprocessed) #include "bar.h" // Line may or may not exist #ifdef NEEDS_BAZZER #include "baz.h" #endif // NEEDS_BAZZER #ifdef _BAZ_H_ int main(int argc, char ** argv) { /* Main function. In case that bar.h defined NEEDS_BAZ as true, we call baz.h's …
18 code-golf  string  c 

1
QR Code…以及所有这些Jazz!
这将是相对挑战性的代码高尔夫挑战。 输入:任何URL,都必须附加协议,例如http://codegolf.stackexchange.com(这将是我们的测试用例) 输出:生成的表示此URL的QR码,当被智能设备扫描时,它将带您进入智能设备浏览器中的URL。 本高尔夫规则 像往常一样,最小的代码胜出。 没有外部Web资源,库或插件可以为您生成代码。您的代码必须计算QR码图像。 输出可以由图像表示,可以由HTML5 / CSS3生成,甚至可以使用适当的Unicode块生成,或者如果平台的ASCII可用,则可以通过可形成QR码的ASCII字符来显示输出(最后一个针对Commodore 64 Basic, Amiga QBasic,Amstrad Basic等用户),但必须生成QR码输出,以便我可以扫描该代码。 输入代码后必须带有生成的输出,或者是执行代码后输出的屏幕截图,或者是显示输出的链接(以最适合的情况为准) 您将使用URL“ http://codegolf.stackexchange.com ” 测试您的代码,并根据规则3至4报告输出。 您还将使用您选择的URL测试代码,并根据规则3至4报告输出。 参考文献: 1)http://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders 2)http://www.pclviewer.com/rs2/calculator.html 3)http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction 4)http://en.wikipedia.org/wiki/QR_code 5)http://www.qrstuff.com/以获得灵感...;)

8
创建一个罗马数字计算器
创建一个用于罗马数字的基本计算器。 要求 支持+,-,*,/ 输入和输出应该期望只有一个每个符号减法前缀(即3不能IIV因为有两个I年代以前V) 处理的在最小支持现代标准约定的输入和输出必须减法原则,其中只有十的权力是由较大的数字相减(例如I,X,C需要减法而不是V,L,D)和减法不会从一些做多减法器的10倍(例如,IX必须支持但IC不是必需的)。 输入和输出应按值的顺序从左到右,从最大值开始(即19 = XIXnot IXX,10大于9) 从左到右,没有操作员优先级,就好像您在使用手持计算器一样。 支持1-4999之间的整个正数输入/输出(不需要V̅) 没有可以为您进行罗马数字转换的库 由您决定 区分大小写 输入上有空格或没有空格 如果获得十进制输出会发生什么。截断,无答案,错误等。 对您无法处理的输出该怎么办。负数或数字要大。 是否支持比最低要求更宽松地使用减法原理。 额外信用 -50-最多可处理99999。符号中必须包含外包装 样本输入/输出 XIX + LXXX (19+80) XCIX XCIX + I / L * D + IV (99+1/50*500+4) MIV 最短的代码获胜。

9
写一个头脑翻译
在任何编程或脚本语言X,写一个程序,需要一个有效的brainfuck源代码从标准输入和输出,标准输出,程序的源代码,写的语言X,这将输出同样的事情作为brainfuck程序会做。 您的程序必须适用于任何有效的Brainfuck程序,包括空文件。 您的分数将等于源代码的字节数,加上给定以下输入的输出字节数: +++++ [-] +++++ +++++ [ > +++++ ++ > ++ +++ ++++ + > +++ <<< - ] > ++ . H > + . e ++ +++ ++. l . l +++ . o > ++ . space < +++++ +++ . w ----- --- . …

12
我认识你,但你不认识我
您的任务是编写两个程序。程序A不得在所有输入上打印任何内容,除非输入了程序B,否则应打印1。程序B必须1在所有输入上打印出来,但输入程序A时除外,在这种情况下,它不应打印任何内容。 得分: +1对于两个程序中的每个字符。 最低分获胜。
18 code-golf  quine 

10
愚蠢的限制和沙漠
因此,您坐在办公桌前打高尔夫球,计算一个程序来计算pi的前20位,然后老板走了过来,把苹果IIe扔到了窗外。您现在正在处理一个新项目,并且此计算机尚不具有任何文本功能。没有。没有字体。没有。 现在,让我们结束该程序。计算并显示 pi的前20个字符,而不使用不属于程序的任何字体。您的输出可以显示为图像文件或以标准格式显示为图像文件(jpeg,png,gif,svg(只要不使用任何字符),bmp,xpm)。您可以使用任何一种语言,但不能使用该语言的字体功能,文本显示或类似功能。 小奖金(10个字符),如果它可以在Lisa上使用。 编辑:对于那些谁不知道我的灵感是第一台Mac,标题是一个双关语。@Sukminder非常赞叹,其动画gif很酷。如果有更好的答案,比赛还没有结束。

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.