编程拼图和代码高尔夫

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

4
有时我需要一个无损的截屏大小调整器
有时我需要编写更多的文档,而不仅仅是代码中的注释。有时,这些解释需要屏幕截图。有时,获得这样的屏幕截图的条件太奇怪了,以至于我要求开发人员为我拍摄屏幕截图。有时屏幕截图不符合我的规格,因此我必须调整其大小以使其看起来不错。 如您所见,需要魔术“ Lossless Screenshot Resizer”的可能性很小。无论如何,对我来说似乎每天都需要它。但是它还不存在。 我以前在PCG上见过您解决过很棒的图形难题,所以我想这对您来说很无聊... 规格 该程序将单个窗口的屏幕截图作为输入 屏幕截图不使用玻璃效果或类似效果(因此您不需要处理任何会发光的背景材料) 输入文件格式为PNG(或其他任何无损格式,因此您不必处理压缩工件) 输出文件格式与输入文件格式相同 该程序将创建不同大小的屏幕截图作为输出。最低要求正在缩小。 用户应指定预期的输出大小。如果您可以提供有关程序可以根据给定输入产生的最小大小的提示,那将很有帮助。 如果人为解释,则输出屏幕截图的信息一定不能少。您不应删除文本或图像内容,而应仅删除具有背景的区域。请参阅下面的示例。 如果无法获得预期的大小,程序应指出这一点,而不仅仅是崩溃或删除信息,而无需另行通知。 如果程序指示出于验证原因将删除的区域,则应该增加其受欢迎程度。 该程序可能需要一些其他用户输入,例如,标识优化的起点。 规则 这是一次人气竞赛。在2015-03-08票数最多的答案被接受。 例子 Windows XP屏幕截图。原始大小:1003x685像素。 可以删除示例区域(红色:垂直,黄色:水平),而不会丢失任何信息(文本或图像)。请注意,红色条形不是连续的。此示例并未指出所有可能被删除的像素。 无损调整大小:783x424像素。 Windows 10屏幕截图。原始尺寸:999x593像素。 可以删除的示例区域。 无损调整大小的屏幕截图:689x320像素。 请注意,标题文本(“下载”)和“此文件夹为空”也可以不再居中。当然,如果居中,那会更好,而且,如果您的解决方案能够做到这一点,它应该会越来越受欢迎。

30
在不使用正则表达式的情况下检查UUID是否有效
给定字符串输入,编写一个程序,如果输入是有效的UUID,则在不使用正则表达式的情况下将真实值打印到STDOUT或等效项。 有效的UUID是 32个十六进制数字,分为5组,用连字符分隔,以8-4-4-4-12的形式表示,总共36个字符(32个字母数字字符和4个连字符)。 资源 测试用例 0FCE98AC-1326-4C79-8EBC-94908DA8B034 => true 00000000-0000-0000-0000-000000000000 => true 0fce98ac-1326-4c79-8ebc-94908da8b034 => true 0FCE98ac-1326-4c79-8EBC-94908da8B034 => true {0FCE98AC-1326-4C79-8EBC-94908DA8B034} => false (the input is wrapped in brackets) 0GCE98AC-1326-4C79-8EBC-94908DA8B034 => false (there is a G in the input) 0FCE98AC 1326-4C79-8EBC-94908DA8B034 => false (there is a space in the input) 0FCE98AC-13264C79-8EBC-94908DA8B034 => false …

3
您可以在4k数据URI中做什么?[关闭]
赏金结束了,thephpdeveloper赢得了Conway的《人生游戏》 当今的网络平台正在迅速发展。功能,如CSS3动画,转换,阴影和渐变,<canvas>,<audio>和<video>标签,SVG,WebGL的,还有更多的意味着你可以做更多的浏览器,并在更短的代码,比以往任何时候。当然,许多开发人员不会使用这些新功能,因为他们工作的网站和应用程序必须与IE6之类的古老的,受蛀牙困扰的浏览器向后兼容。 那么,如果您取下安全带怎么办?允许自己使用任何喜欢的新功能?活得一点点,发疯,使用怪异的前沿功能,只有1%的用户可以利用? 当然,凭借无限的资源和与服务器进行通信的能力,您可以进行各种处理(加载兆字节的代码,库和视频等),但是没有约束就没有那么有趣的挑战。此竞赛的主要限制是:您可以在一个单独的4k URI中做什么data:?自包含的意味着它不得引用任何外部资源,使用WebSockets或XHR连接到任何服务器或任何种类的东西。如果要嵌入PNG或MP3之类的资源,请随时在数据URI中包含数据URI,或者想出其他一些巧妙的方式来嵌入子资源。4k表示4096个字节,经过URI正确编码的ASCII文本(如果选择,可以使用base64编码的数据URI,以避免URI编码,但对于纯文本,通常URI编码的文本会小于base64)。 为了提供灵感,比赛的主题是StackOverflow memes。创建一个独角兽游戏,Jon Skeet事实生成器,基于徒手绘制的绘图程序,或与流行的StackOverflow和meta.so模因之一有关的任何事情。 我鼓励以某种方式互动的条目;它们不仅应该是简单的动画或静态图像,还应该通过事件,CSS悬停,滚动,浏览器窗口大小调整或您可以想到的任何其他方式来响应用户输入。但是,这并不是一个硬性要求。非交互性的出色演示将被考虑,尽管交互性更可取。 您的条目必须在5种主要浏览器(即IE,Firefox,Chrome,Safari,Opera)中至少一种的至少一个公开发行版中运行。仅允许主线版本(不是分支的版本或需要补丁的版本),没有特殊的配置设置,插件或常规浏览器不附带的其他任何版本。每晚构建,测试版和发布候选版本都可以。请在您的条目中指定用来测试条目的浏览器。在这些限制范围内,您可以使用什么技术没有任何限制;您可能会制作纯SVG动画,纯CSS动画,或者使用WebGL在JavaScript中进行某些操作,甚至可以进行某些操作,甚至可以使用XML和XSLT进行操作,如果您喜欢的话。如果您可以将其塞入没有外部依赖关系的有效数据URI中,并让浏览器运行它,那将是一个公平的游戏。 为了增加竞争,在3月21日星期一,我将悬赏这个问题。当我只有101个代表时,我怎么能获得赏金?好吧,我从现在到星期一在这个问题上的投票所获得的所有代表都将进入赏金计划(单次赏金允许的最高限额为500;尽管如此,我很难达到该限额帽)。在此之后的6天内,参赛作品将被接受;所有参赛作品必须至少在赏金到期前24小时内,以便给我时间检查所有内容并进行评估。届时,我将接受投票最高的答案,并将赏金给予我最喜欢的答案(可能与投票最高的答案相同或不同)。我授予赏金的标准包括美丽,乐趣,巧妙的技巧,有趣的新功能使用,互动性和尺寸。 以下是一些启发您的资源,可以帮助您入门: Chrome Experiments,现代网络平台的演示集 Mozilla Hacks,一个有关现代Web平台的博客,其中包含Firefox 4中许多新功能的演示 JS1k,一千个JavaScript演示比赛 10k Apart,10k竞赛中的webapp gl64k,目前正在为64k WebGL演示进行的演示竞赛 Shader Toy,一组有关WebGL着色器功能的演示 条目格式: 报名 数据:text / html,您的%20data%20URI 适用于Firefox 4 RC,Chrome 10和Opera 11 您输入的说明;它的作用,为何整洁,您使用了哪些巧妙的技术。 <script> // code in expanded form to more easily see how it works </script> 灵感的任何功劳,您可能从中借来的任何代码,等等。 …

30
画保龄球
您的目标是在只有十个针脚的十针保龄球中显示编队的ASCII艺术。最少的字节数获胜。 十个针呈三角形形式: O O O O O O O O O O 引脚从1到10的标签为: 7 8 9 10 4 5 6 2 3 1 绘制图钉为O,缺少图钉为.,形式1 3 5 6 9 10为: . . O O . O O . O O 输入: 用空格分隔的字符串,按顺序列出数字1到10的非空子集。 输出: 打印相应的形式或将其输出为带有换行符的字符串。 地层应与筛网左侧齐平。只要可见图像正确,任何空格都可以。前后的空行也可以。 测试用例: >> 1 2 3 4 …

30
解密源代码[尝试破解的强盗线程]
这是“ 解密源代码 ”主要挑战的伴随线程。 如果您认为自己已经弄清了警察的答案之一,则应该发布解决方案作为该主题的答案。 提醒一下,您尝试破解每个提交。您的破解尝试将是源代码的完整版本。如果您的猜测与描述相符(相同的字符,输出以及所用的语言),并且您是第一个正确的猜测,那么您将赢得一分。重要的是要注意,您的程序不必与原始程序完全匹配,只需使用相同的字符并具有相同的功能即可。这意味着可能有多个正确答案。 得分最高(成功破解)的强盗获胜。 排行榜 解决太多 MartinBüttner:(Python 3,16,matsjoyce),(CJam,15,Ypnypn),(Mathematica,29,Fox Wilson),(JavaScript,15,Caridorc),(CJam,52,user23013),(Pyth,11, isaacg),(PHP,22,kenorb),(PHP,13,kenorb),(Ruby,17,Doorknob),(PHP,49,bwoebi),(Mathematica,35,Tally),(GolfScript,13,Peter Taylor ),(JavaScript,25,Cris),(JavaScript,29,Cris),(JavaScript,26,Cris),(Bash,33,Debasis),(JavaScript,10,Cris),(Lua,28,ChipperNickel),(Mathematica,18,Arcinde),(JavaScript,30,Qwertiy),(CJam,13,user23013),(JavaScript,41,Ismael Miguel),(Ruby,38,Doorknob),(Marbelous,36,es1024),(PHP,33,Ismael Miguel),(JavaScript,29,Joe),(JavaScript,28,Shawn Holzworth),(Ruby,35,histocrat ),(CJam,19,Ypnypn),(Ruby,17,Stephen Touset),(JavaScript,36,MegaTom),(JavaScript,24,fogcityben),(Python 3,21,Reticality),(JavaScript,10,Jamie Barker),(JavaScript,15,Jamie Barker) 20解决 feersum:(Python 3,44,Sp3000),(C,70,es1024),(MATLAB,41,COTO),(Brainfuck,118,Sp3000),(C,30,Ethiraric),(C,28,Mig),(Python 3,46,hosch250),(Java,70,Rodolvertice),(C,29,mallett),(Java,226,nhahtdh),(Little Man Computer,63,The Wolf),(Python 2,89 ,Beta Decay),(Python 2、41,mudyfish),(C,63,es1024),(C ++,192,Arcinde),(Java,108,durron597),(C#,604,eshansingh1),(C,44,Art),(Java,134,Olavi Mustanoja),(Bash,47,Vi。) 15解决 user23013:(CJam,18,Ypnypn),(JavaScript,26,hsl),(CJam,12,COTO),(PHP,23,bwoebi),(PHP,54,史蒂夫·罗宾斯),(CJam,32,Dennis),(CJam,19,MartinBüttner),(Bash,23,The Wolf),(Ruby,33,Doorknob),(CJam,34,Dennis),(JavaScript,82,Ismael Miguel),(PHP,80,Ismael Miguel),(QBasic,43,DLosc),(QBasic,42,DLosc),(ECMAScript,90,Cris) 10个解决方案 吱吱作响的ossifrage:(Python,44,Caridorc),(PHP,52,PleaseStand),(Befunge-93,17,user23013),(BBC BASIC,187,Beta Decay),(C,43,Allbeert),(Ruby, 58,Rodolvertice),(JavaScript,32,hsl),(PHP,33,kenorb),(Python 2,16,mallett),(PHP,53,PleaseStand) Sp3000:(Python,154,Fox Wilson),(Python,48,kgull),(Python,68,horns),(Python 2,38,FryAmTheEggman),(Python 2,57,FryAmTheEggman),(Python,74, …

26
崩溃您最喜欢的编译器
用您选择的体面语言编写完全合法的代码,其编译将使编译器崩溃或将其发送到无限循环(无限编译时间)中。 限制条件: 使用现实世界中使用的标准语言。 使用标准的,开发良好的编译器(没有答案,例如“我编写的C编译器崩溃了”)。 该代码必须使用该语言是合法的(因此,很可能您必须利用编译器或语言错误)。 提供您使用的编译器版本和选项,以便其他人可以复制它。 如果可能,说明编译器崩溃的原因。 玩得开心 :)

12
首要奇偶校验
这种挑战的目的是为了描绘图形平面上,其中,每个步骤的方向散步是由素性确定及其二进制展开的奇偶性。特别,ķkkķkk 初始方向是固定的,例如北。 所有步骤的长度相同。 步骤的方向可以是北,西,南或东,并确定如下: ķkk 如果不是素数,则方向不会改变。ķkk 如果是素数,的二进制展开拥有者的偶数,右转。ķkkķkk 如果是素数,的二进制展开具有奇数个1,左转。ķkkķkk 作为一个可行的示例,假设初始方向是北。第一步是: k = 1k=1k=1不是素数。因此,我们朝当前方向(北)移动了一步。 k = 2k=2k=2是质数,并且其二进制扩展10数具有奇数个。所以我们左转,现在正对着西方。我们朝这个方向迈出了一步。 k = 3k=3k=3是质数,它的二进制扩展11数,具有偶数个。因此,我们向右转,现在正对着北方。我们朝这个方向迈出了一步。 k = 4k=4k=4不是素数。因此,我们朝当前方向(北)移动了一步。 挑战 输入:正整数。ñNN 输出:如上定义的步走的图。ñNN 附加规则 的初始方向可以自由地选择(不一定北),但应该是全部相同。ñNN 的转动规则可以是与上述相反,即,右转奇校验并放置甚至; 但是对于所有它必须相同。ñNN 输出必须是步行的图形描述。例如: 可以用线段绘制步行。 可以使用标记(例如点)来显示访问点;有或没有连接线段。 可以提供两种颜色的光栅图像,一种颜色对应于已访问的点,另一种颜色则用于未访问的点。 水平轴和垂直轴的比例不必相同。轴标签和类似元素也是可选的。只要可以清楚地看到步行,该情节就是有效的。 请注意,某些点被多次访问。情节对此并不敏感。例如,如果在曲线图中显示了线段,则无论其经过多少次,每个单位段都将显示为相同。 该代码应适用于任何N给定的无限资源。如果在实践中N由于时间,内存或数据类型的限制而导致故障很大,则可以接受。 输入和输出像往常一样灵活。特别地,可以使用用于输出图像的任何标准装置。 以字节为单位的最短代码获胜。 测试用例 下图以北为初始方向。甚至平价向右转;并用线段描绘了步行路线。 N = 7: N = 3000: N = 20000: N = …

30
这条线是正方形吗?
如果满足以下条件,则将字符串视为正方形: 每行字符数相同 每行上的字符数等于行数。 您的任务是编写确定给定输入字符串是否为正方形的程序或函数。 您可能需要通过选择LF,CR或CRLF来分隔输入。 换行符不视为行长度的一部分。 您可能需要在输入中包含或不包含尾随换行符,这不会算作附加行。 输入是字符串或一维char数组;它不是字符串列表。 您可以假定输入为非空,并且仅包含可打印的ASCII(包括空格)。 您必须为平方字符串输出一个真值,为其他字符串输出一个虚值。 真实的测试案例: 富 酒吧 巴兹 。 .s。 .ss .s。 (s代表空间) ss ss (s代表空间) aa aa aa aa aa 虚假的测试案例: .. 。 。 。 .... .... 4444 333 22 333 333 abc.def.ghi 在某些虚假情况下,请注意额外的空白行。 这是代码高尔夫球 -最少的字节数获胜!

3
救命,我陷入了Sierpinski三角!
绘制谢尔宾斯基三角形已经被 做 死。我们还有其他有趣的事情可以做。如果我们在三角形处斜视的程度足够大,则可以将上下颠倒的三角形视为分形图的节点。让我们找到解决该图的方法! 首先,让我们为每个节点分配一个数字。最大的倒置三角形将是节点零,然后我们逐层向下移动(宽度优先),并按从上到下的顺序分配连续的数字: 单击以获取较大的版本,其中较小的数字不太模糊。 (当然,在该模式的蓝色三角形内部循环往复。)来定义的编号的另一种方式是,该中心节点具有索引0,并且节点的子节点i(下一个较小规模的相邻三角形)具有指数3i+1,3i+2和3i+3。 我们如何围绕该图移动?任何给定的三角形最多可以采取六个自然步骤: 一个人总是可以通过边之一的中点移动到当前节点的三个子节点之一。我们会指定这些举措为N,SW和SE。例如,如果我们现在走的节点2,这将导致节点7,8,9分别。不允许通过边缘进行其他移动(到达间接后代)。 只要不碰到三角形的边缘,也可以通过三个角之一移至直接父级或两个间接祖先之一。我们会指定这些举措为S,NE和NW。例如,如果我们当前在node上31,S将导致10,NE无效并NW导致0。 挑战 给定两个非负整数xand y,仅使用上述六个动作找到从x到的最短路径y。如果有几个最短的路径,请输出其中任何一条。 请注意,您的代码不仅仅可以在上图中描述的5个级别中工作。您可能会认为x, y < 1743392200。这样可以确保它们适合32位带符号整数。请注意,这对应于树的20个级别。 您的代码必须在5秒钟内处理任何有效输入。尽管这排除了蛮力广度优先搜索,但它应该是一个相当宽松的约束-我的参考实现在半秒内处理了深度1000的任意输入(对于节点来说约为480位数字)。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输出应该是字符串的平面,明确的清单N,S,NE,NW,SE,SW,使用任何合理的分隔符(空格,换行,逗号,","...)。 适用标准代码高尔夫球规则。 测试用例 可以使用上图手动计算出前几个测试用例。其他人确保答案足够有效。对于那些,可能没有列出其他相同长度的解决方案。 0 40 => N N N N 66 67 => S SW N N N 30 2 => NW NW -or- NE SW 93 2 => NE SW …

10
猎鹰重型战车
从以下四组中的任何一组中选择一组四个字节而不替换(即,不重复字节),并且不一定按任何特定顺序进行: 任何一个单字节编码的字符 Unicode字符,范围为​​00–FF 有符号十进制整数,范围为−128–127 无符号十进制整数,范围为0–255 您选择的四个值(请说明它们是哪个)将是有效输入。您必须将每个值与以下ASCII图稿之一配对。 给定(通过任何方式)您的四个有效输入之一,以相应的ASCII艺术形式响应(以任何方式,甚至是字符串列表)。只要图像在一个连续的2D区域中,在所有面上都可以有多余的空白。 第一个字节: /\ / \ | | | | | | |____| \__/ | | | | | | | | /\ | | /\ / \| |/ \ | || || | | || || | | || || | | || || …

23
用笔触覆盖天际线
给定一个非负整数天际线高度列表,请回答需要多少不间断的1个单位高的水平画笔笔划来覆盖它。 [1,3,2,1,2,1,5,3,3,4,2],可视为: 5 5 4 3 5334 32 2 53342 13212153342 需要九个笔触: 1 2 3 4 5555 66 7 88888 99999999999 例子 [1,3,2,1,2,1,5,3,3,4,2] → 9 [5,8] → 8 [1,1,1,1] → 1 [] → 0 [0,0] → 0 [2] → 2 [2,0,2] → 4 [10,9,8,9] → 11

30
黄金之战
这一挑战已经结束。要查看竞争对手的最终成绩,请单击此处 在此挑战中,每个提交都是一个机器人。每个漫游器都应该是一个Javascript函数。机器人将争取获得最高的黄金总价值。可以耕种黄金,也可以通过杀死其他机器人赚取黄金,黄金可以用来提高治疗,攻击,屏蔽和耕种的能力。 目的: 在多达1000轮的回合中(仅剩一个机器人时结束),总价值最高(获得的所有金币的总和)的机器人就是赢家。 转弯: 在每个回合中,每个存活(> 0 HP)的机器人都将运行一次。它可以返回移动,可以是以下之一: 治疗:恢复HP 攻击:从另一个机器人移除HP 盾牌:防御以后的攻击 晕眩:跳过另一个机器人的下一站 农场:以HP为代价赚钱 升级:改善某些动作 所有漫游器都将在执行任何动作之前返回它们的移动,因此眩晕,治疗,攻击,护盾等不会影响此后稍后移动的任何漫游器。例如,如果Bot A使Bot B昏迷,并且Bot B在回合顺序中紧随Bot A,则Bot B仍将在同一回合中稍后移动,并且在下一回合发生眩晕。 战斗,耕种和升级: 每个漫游器的最大HP为100,并且分配的UID在0到99之间。此UID在每轮之后都会更改,这是漫游器相互跟踪的方式。 修复是最简单的举动之一,增加的HP量取决于其等级(从5 HP开始)。机器人无法治愈100 HP以上的生命。 通过其UID攻击机器人是另一种可能的举动,在0级时造成5 HP的基本伤害。也可以使Bot昏迷,跳过下一回合,后者也使用UID。 机器人具有额外的防护罩HP,没有限制。此防护罩HP会吸收其他僵尸程序的直接攻击造成的损害,并通过防护罩添加。在0级时,屏蔽会增加5点屏蔽HP。 养殖将在0级获得5金,花费2 HP。这2 HP无法屏蔽。黄金的唯一用途(超越获胜)是升级动作。治疗,攻击和屏蔽的基础价值为5 HP,耕种开始于5金币。这些移动中的每一个都有各自的级别,从0开始。这些公式将确定移动的HP或黄金值,其中L是级别: 修复: L + 5 进攻: 1.25L + 5 屏蔽: 1.5L + 5 农业: 2L + 5 在某个级别上,升级任何移动的成本是相同的,并且由决定2.5L² + …

30
现代高尔夫的编程难题
您的任务是打印文本Good morning, Green orb!,并将每个字符重复出现在位置(模式)中最频繁出现的字节中。尾随换行符是允许的,不需要重复。 例如,如果您的来源是 print p 因为p出现两次,并且每隔一个字节出现一次,则需要打印 GGoooodd mmoorrnniinngg,, GGrreeeenn oorrbb!! 答案将通过其字节数与重复输出次数的乘积来评分。例如,上面的代码(如果可行)将获得7 * 2 = 14的评分。目标应该是最小化分数。 您的代码必须至少包含1个字节。 使用此程序来验证您的代码和输出是否匹配

30
实施iOS 11计算器
iOS 11有一个错误,使1 + 2 + 3的结果为24。这与动画速度有关,但是无论如何: 任务是制造1 + 2 + 3 == 24。但只有那样。所以,你应该提供正确总结大多数序列,但收益函数24时的参数是1,2和3以任何顺序。 输入示例: 1 2 => 3 3 4 => 7 1 2 3 4 5 6 7 8 9 => 45 3 2 1 => 24 2 1 3 => 24 1 1 => 2 1 2 3 …
43 code-golf  math  number 

24
混沌是ASCII阶梯
你一无所知 我为 “ 混沌是梯子 ” 做的事情是电视连续剧 “权力的游戏 ”中令人难忘的台词。 这项挑战的目的是从ASCII艺术的混乱中构建阶梯。 挑战 输入项 梯子宽度W >= 3(整数) 台阶高度H >= 2(整数) 梯级数N >= 2(整数)。 输出量 带有水平横档和垂直横档的梯子,全部为1个字符宽。梯子宽度(W)包括两个轨道,梯级高度(H)包括相应的梯级。 所有梯级,包括最上层和最下层,都将在其H-1正上方和正下方具有一条垂直轨道。该示例将使这一点更加清楚。 梯子将作出的可印刷,非空白ASCII字符,即,从包含的范围!(代码点33)到~(码点126)。实际的字符将被选择随机。给定输入,每个字符的随机选择都必须具有非零概率。除此之外,概率分布是任意的。 允许水平或垂直的前导或尾随空白。 例 给定W=5, H=3, N=2,一种可能的输出如下。 x : g h q$UO{ t T 6 < bUZXP 8 T 5 g 请注意,总高度为H*(N+1)-1,因为有N梯级和N+1垂直截面。 附加规则 输入方式和格式像往常一样灵活。例如,您可以按任何顺序输入三个数字,或包含它们的数组。 输出可以通过STDOUT或函数返回的参数进行。在这种情况下,它可以是带有换行符的字符串,2D字符数组或字符串数​​组。 可以提供程序或功能。 禁止出现标准漏洞。 以字节为单位的最短代码获胜。 …

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.