编程拼图和代码高尔夫

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

10
9忍者之死
受到聊天中此对话的启发。 您在此挑战中的目标是模仿忍者并计算他留下的死亡人数。 眼镜 您的忍者开始时还有9人死亡。他还获得了不可或缺的开始健康状况作为输入。 然后,他将改变自己健康状况的事件清单作为输入。这些可以是负整数,正整数或零整数。 在任何时候,如果他的健康状况达到或低于零,他就会丧命,并且健康状况会恢复到最初的健康状况。 您的程序应报告他留下的死亡人数。如果他的剩余零个或更少,则应dead改为输出。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 3, [] -> 9 100, [-20, 5, -50, 15, -30, -30, 10] -> 8 10, [-10, -10, -10, -10] -> 5 10, [-10, -10, -10, -10, -10, -10, -10, -10, -10] -> dead 0, [] -> dead 0, [1] -> dead …

1
做一个青蛙解算器
🐸🐸 您必须制作最短的程序,才能始终在9x9网格上找到简化Frogger游戏的最佳解决方案。 课程内容: L-日志(长度:3-4)。当您跳上日志时,它将随身携带。 V -车辆(长度:1-2) 速度(1-2):在该行的左侧是该行中元素移动的速度。 空格:元素之间始终至少有两个空格。 方向:在“车辆”和“对数”部分中,每个车道的移动方向在左右方向上交替。 课程结构: 如果是资本,那就行了;如果是小写,则向左移动。连续的所有元素都朝着相同的方向。一旦元素的一部分离开屏幕,它就会出现在屏幕的另一侧。 第一行是安全区域。青蛙始于F,始终是同一地点。 接下来的3行是载有车辆的道路。 下一行是安全区域。 接下来的3行是带有Logs的水(接触水==死亡)。 一旦到达W车道,您就赢了。 如果青蛙死了,它会回到 F 播放器控件: L - 剩下 R - 对 U -向上 D - 下 W -等一下 移动后,另一帧通过。(请注意,帧是在移动之后通过的,而不是在移动的同时通过。)您的程序必须提供最佳解决方案,例如字符序列URWUUL。如果课程没有解决方案,则程序应输出N。 示例:(由于我是手工完成的,所以我不知道它们是否是最佳解决方案。) 0WWWWWWWWW 1升 2 LLLL 2 llll 0 1 vv vv 1 V V 1 vv 0楼 …

22
10 9 8 7 6 5 4 3 2 1…打印2016
为了解决我在Puzzling遇到的挑战,您的目标是输出2016。 规则: 您必须10 9 8 7 6 5 4 3 2 1按该顺序包括数字。它们可以用作单独的整数,也可以串联在一起(例如1098),但是它们10不能分隔为1和0-数字之间不能存在任何字符。请注意,在某些语言中,10可能实际上并不表示整数文字10,这是可以接受的。 您的代码不得包含任何其他数字或预定义的数字变量或常量(因此T,不允许使用Pyth,因为它是数字常量)。 您必须使用数字进行计算 2016。2016不允许简单地输出而不对所需的数字执行任何操作(例如,通过解码仅包含字母字符的编码字符串)。也不允许分段输出2016(例如20,16则为);您必须具有由数值组成的单个输出2016。 字节最少的有效答案将获胜。

7
屏蔽IP地址并广播
背景 受这个Unix.SE问题(当然还有我自己的回答)的启发。 当为接口指定IP地址时,通常以点分十进制形式给出: a.b.c.d e.f.g.h 其中a.b.c.d,实际地址e.f.g.h是子网掩码。 当用二进制表示时,网络掩码基本上是一堆1比特,然后是一堆0比特。当将网络掩码与给定的IP地址按位与时,结果将是地址的网络部分,或者只是网络地址。这将被编程到主机的路由表中,以便主机知道从该接口发送发往该网络的任何内容。 通过从上面获取网络地址并将所有主机位设置为1,可以得出网络的广播地址。广播地址用于发送到给定网络内的所有地址。 挑战 给定点分十进制的IP地址和有效的网络掩码作为输入,请以点分十进制格式提供网络地址和广播地址作为输出。 输入的地址和掩码必须为点分十进制格式的两个字符串。您可以将其作为2个单独的字符串,作为2个字符串元素的列表或数组,或者将地址和掩码由一些合理的分隔符分隔的单个字符串传递。 输出格式受与输入格式相同的约束。 例子 Input Output 192.168.0.1 255.255.255.0 192.168.0.0 192.168.0.255 192.168.0.0 255.255.255.0 192.168.0.0 192.168.0.255 192.168.0.255 255.255.255.0 192.168.0.0 192.168.0.255 100.200.100.200 255.255.255.255 100.200.100.200 100.200.100.200 1.2.3.4 0.0.0.0 0.0.0.0 255.255.255.255 10.25.30.40 255.252.0.0 10.24.0.0 10.27.255.255

12
说明小数
给定十进制形式的<float>, <precision>,您将绘制浮点数小数部分(即小数)的图形表示。例子: 输入:6.75, 4,输出: 6||| 7 ---- 6.75(输入中的第一个数字)是要解释的数字,4(输入中的第二个数字)是管道下方的破折号。 6是7底数6.75,是天花板6.75。管道数是decimal part of first input number * second input number。 输入:10.5, 6,输出: 10||| 11 ------ 输入:20.16, 12,输出 20|| 21 ------------ .16 实际需要1.92根管,但是由于我无法绘制1.92根管,因此我将其最高拉至2。 输入:1.1, 12,输出: 1| 2 ------------ .1 在这种情况下为1.2根管道,因此将其设置为1根管道。 此外,边缘情况。输入:(5, 4即数字为整数),输出: 5 6 ---- 要说明的数字是正浮点数,仅受您的语言能力的限制。 精度数是一个偶数整数,大于2(即,最低要求精度为4)。也可以任意大。 > =将n.5个管道四舍五入到n + 1(即1.5被四舍五入为2,2.5被四舍五入为3)。<n.5个管道四舍五入为n(即1.4 近似为1,2.4近似为2)。 如果您的语言更方便,则可以将输入作为数组,例如[6.75, …

3
重新造句
这一挑战包括两个部分。获胜者将是总字节数最少的解决方案。两种挑战都必须使用相同的语言。 第1部分: 编写一个函数或程序,该函数或程序将仅包含有效词的句子作为输入,并输出所用字符的列表,每个字母的使用次数以及原始句子中每个词的字母数。该程序的输出必须是对下一个程序的有效输入(与输出一样) 我将在后面添加示例和详细规则。 第2部分: 编写一个函数或程序,将第一个程序的输出作为输入,并使用此英语单词列表,并使用来自输出的信息重新创建一个句子。该句子不必与原始句子相同。 更多信息。规则和限制: 第1部分: 第一个输入可以是任何合适的格式,带或不带引号,作为函数参数或来自STDIN,带或不带括号等。 输入的句子将不包含任何标点符号或特殊字符,但最后一个句点/点除外。除句点符号外,输入中的所有字符都将在单词列表中。 句子的第一个字母为大写,其余字母为小写。 第2部分的输出必须以与原始句子相同的大写字母开头(因此不建议将输入转换为小写(但可以)。 输出可以是任何合适的格式: 必须可以将输出直接复制粘贴到下一个程序/函数中 粘贴粘贴时不能进行任何更改,必须将整个输出整体复制并粘贴,而不是部分粘贴。 例如,您可以输出字母表中所有字母的直方图,或仅输出所使用字母的直方图(通常,完成第二部分所需的一切) 您无法输出重复出现多次的字符列表。例如,The queue不能产生output:,Teeehquu (3,5)它应该类似于:Tehqu, (1 3 1 1 2),(3 5)。 第2部分: 程序/函数必须完全像第1部分一样接受输入(一个例外,请参阅以下有关将文件名作为输入的注释。) 如果必须使用方括号,引号或类似内容来解析输入,则这些必须是第1部分输出的一部分。 单词列表可以在这里找到。 单词列表可以在本地另存为w.txt,也可以从url中获取。该网址仅计为5个字节,因此您不需要网址缩短器。 如果程序无法打开文件,而不必读取名称从标准输入的输入(我相信这就是是为Pyth至少的情况下),然后将文件名可以作为一个独立的输入参数。 输出必须仅是一个句子(有效单词列表),以句点和可选的换行符结尾。 输出中的单词数必须与第1部分中原始句子的字母数相同(顺序正确) 原始句子中使用的所有字母都必须在新输出中使用。 句子必须以与原始输入句子相同的大写字母开头,并以句点结尾。 两个部分: 这两个部分的执行时间都不会超过2分钟(随机选择单词,直到无法解决为止)。 使用上面列出的规则,应该有很大的机会复制完全相同的句子,但这不是必须的。 例子: 在以下示例中,显示了一些不同的输入和输出格式。接受更多。 第1部分: 输入: Zulus win. 输出类型1: Z i l n s …

1
为2B写一个口译员
为2B写一个口译员 我喜欢大卫·卡特(David Catt)的深奥语言2B,将内存存储在磁带中,其中每个单元是一个单独的字节带(“子带”)。为此写一个翻译! 语言规范 官方规格可以在这里找到。在本说明书中,"表示范围内的数字0-9(0解释为10),_表示任意长度的字符串。每个像元都存储一个在range范围内的值0-255,上溢/下溢会像BF一样回绕。(感谢@MartinBüttner)。要将文本转换为数字0-255,请使用ASCII码。因为我找不到详细信息,所以我要说磁带长度应该255最小,但是如果您另外知道,请进行编辑。 +-------------+----------------------------------------------------------------------------------------------------------------------------------------+ | Instruction | Description | +-------------+----------------------------------------------------------------------------------------------------------------------------------------+ | 0 | Zeroes the current cell and clears the overflow/underflow flag. | | { | If the current cell is zero, jump to the matching }. | | } | A placeholder for the { instruction. | …

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, …

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.