编程拼图和代码高尔夫

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

12
从给定的字符串中提取一个字符串
系统会为您提供一个字符串和两个字符。您必须在字符串中这些字符之间打印字符串。 输入项 输入将首先包含一个字符串(非空或null)。在下一行中,将有两个字符,中间用空格隔开。 挑战 返回两个字符之间的字符串 例 Hello! What's your name? ! ? 应该导致输出: " What's your name" 规则 该字符串不得超过100个字符,并且仅包含范围(空格)至~(波浪号)(字符代码0x20至0x7E(包括0x20至0x7E))的ASCII字符。请参阅ASCII表以获取参考。 您必须从stdin(或最接近的替代方法)获取输入。 输出应用引号(")括起来。 您可以编写完整的程序或接受输入并输出最终字符串的函数 这两个字符将仅包含(空格)至~(波浪号)范围内的ASCII字符(字符代码0x20至0x7E(包括0x20至0x7E))。请参阅ASCII表以获取参考。 不能保证两个字符都在字符串中。 如果在字符串中找不到任何字符,请打印"null"。 如果在一个字符串中找到多个字符(除非两个字符相同),请打印"null"。 如果两个字符都相同,请打印字符串"null"。 测试用例 1) <HTML>code</HTML> > < --> "null" 2) What's what? ' ' --> "null" 3) abcdefghijklmnopqrstuvwxyz n k --> "lm" 4) Testing... e …
17 code-golf  string 

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

9
不对称KOTH:抓住猫(捕手的线)
不对称的KOTH:捉住猫 更新: 由于Controller.java没有捕获到异常(仅错误),因此更新了主要文件(包括新的次要任务)。现在,它确实可以捕获错误和异常并打印它们。 这个挑战包括两个线程,这是捕手线程,猫线程可以在这里找到。 控制器可在此处下载。 这是不对称的KOTH:每个提交物都是猫还是捕手。每对猫和捕手之间都有游戏。猫和捕手的排名各不相同。 捕手 六角形网格上有一只猫。您的任务是尽快捕获它。每转一圈,您都可以在一个网格单元上放置一个水桶,以防止猫能够去那里。但是猫不是(也许)那么笨,每当您放置一个桶时,猫就会移动到另一个网格。由于网格是六角形的,因此猫可以向6个不同的方向移动。您的目标是用水桶包围猫,速度越快越好。 猫 您知道捕手想通过在您周围放水桶来接住您。当然,您会尝试逃避,但是由于您是一只懒惰的猫(就像猫一样),您当时确实迈出了一步。这意味着您不能待在同一个地方,而是必须移至周围的六个景点之一。每当您看到捕手放了一个新的水桶时,您就会转到另一个牢房。当然,您会尽力逃避。 格网 网格是六边形的,但是由于我们没有六边形的数据结构,因此我们采用一个11 x 11二维二维数组,并模仿该六边形的“行为”,即猫只能在6个方向上移动: 拓扑是环形的,这意味着如果您踩到阵列“外部”的单元格,您将被转移到阵列另一侧的相应单元格。 游戏 猫从网格中的给定位置开始。捕手可以先走,然后猫及其捕手交替走动,直到猫被抓到为止。步骤数是该游戏的分数。猫试图获得尽可能高的分数,捕手试图获得尽可能低的分数。您参与的所有游戏的平均总和就是您提交的分数。有两个单独的等级,一个用于猫,一个用于捕手。 控制者 给定的控制器是用Java编写的。作为捕手或猫,您每个人都必须完成一个Java类(已经有一些原始示例)并将其放在players包中(并更新Controller类中的猫/捕手列表),但是您也可以编写该类中的其他功能。控制器附带了简单的cat / catcher类的每两个工作示例。 该字段是一个11 x 11二维int数组,用于存储单元格当前状态的值。如果一个单元格为空,则它具有值0;如果有一只猫,则它具有值-1;如果有一个存储桶,则有一个值1。 您可以使用一些给定的功能:isValidMove()/ isValidPosition()用于检查您的移动(类别)/位置(类别)是否有效。 每次轮到您时,takeTurn()都会调用您的函数。参数包含当前网格的副本,并具有类似于read(i,j)读取处的单元格的方法(i,j),以及isValidMove()/ isValidPosition()检查答案是否正确的方法。这也可以管理环形拓扑的环绕,这意味着即使网格只有11 x 11,您仍然可以访问单元格(-5,13)。 该方法应返回一个int包含两个元素的数组,这些元素代表可能的移动。对于猫来说,{-1,1},{0,1},{-1,0},{1,0},{0,-1},{1,-1}它们代表了猫想去的位置的相对位置,而捕手则返回了他们想要放水桶的位置的绝对坐标{i,j}。 如果您的方法产生无效举动,则您的提交将被取消资格。如果在您的目的地已经是一个铲斗或不允许该举动/目的地已被占用(作为猫),或者如果已经有一个铲斗/猫(作为捕手),则该举动被视为无效。您可以使用给定的功能事先检查一下。 您的提交应该工作得相当快。如果您的方法每个步骤花费的时间超过200毫秒,则也将被取消比赛资格。(最好少得多...) 程序可以在步骤之间存储信息。 意见书 您可以根据需要进行任意数量的提交。 请不要显着改变您已经提交的提交。 请每个提交一个新的答案。 每个提交最好都具有唯一的名称。 提交内容应包括您班级的代码以及可以告诉我们您提交内容如何工作的描述。 您可以在<!-- language: lang-java -->源代码前写一行,以自动突出显示语法。 计分 所有猫都将与所有捕手竞争相同的次数。我将尝试经常更新当前分数,当活动减少时将确定获胜者。 这项古老的Flash游戏启发了这一挑战 感谢@PhiNotPi进行测试并提供一些建设性的反馈。 当前分数(每对100场比赛) Name …

11
数金字塔
您应该编写一个程序或函数,该程序或函数接收一个不同整数的列表作为输入,并输出或返回以下倒置数字金字塔中输入数字的出现次数。 在每个步骤中,从原始列表开始,我们创建一个新的列表,其中包含每对相邻数字的最大值(例如5 1 2 6变为5 2 6)。当列表中只有一个数字时,我们停止。 完整的金字塔5 1 2 6就是 5 1 2 6 5 2 6 5 6 6 结果发生的次数分别3 1 2 4为5 1 2 6。 输入项 无重复的一个或多个整数的列表。(例如1 5 1 6无效。) 输出量 正整数列表。i列表的第th个元素是i金字塔中第th个输入数字的出现次数。 例子 输入=>输出 -5 => 1 8 4 => 2 1 5 9 7 => 1 …
17 code-golf  number 

4
如何从DDOS的互联网恢复
互联网失败。DDoS攻击现在非常普遍。由您决定控制和修复互联网。 每个漫游器将控制此网络中的20个节点。每个节点都是活动的或安全的,具有所有者,并且具有从2开始的强度。每个活动节点都连接到所有其他活动节点。 每转一圈,您将收到所有活动节点及其强度的列表。对于您拥有的每个活动节点,您可以: 指定一个活动节点,您要将其全部力量转移到该节点,或 保存并增强其强度 然后会发生以下情况,以便: 选择保存其强度的节点将使其强度增加1。 所有选择转移其强度的节点都将同时将其全部强度转移至新节点。 如果一个节点从敌方节点转移了力量,则会发生攻击。如果敌方拥有者集体转移的力量大于原始拥有者(和所有其他攻击者),则该敌人将成为新拥有者。然后,该节点的强度变为攻击者的强度。如果实力并列,那么将随机选择所有者。 所有没有任何强度的节点都将被视为安全节点,并向所有者分配1分。 在100个回合中进行100场比赛后,所有游戏中拥有最安全节点的所有者将获胜。编辑:我将其从2000更改为100转,因为最后1900转没用 IO 您将通过以下方式(通过命令行args)传递活动节点列表: F20 F4 E7 E2 E20 F2 F指定该节点为友好节点,并E指定该节点为敌人。 对于每个友好节点,您都应通过以下方式返回操作(通过STDOUT): 0,0 1,3 5,0 上面的意思是您想增加第一个节点的强度,使用第二个节点攻击第四个节点,最后一个节点将把它的强度传递给第一个节点(如果没有人攻击它,它将成为一个安全节点)。 返回后,您的程序应退出。 计分板 累计3240分 优雅得了2370分 dumbot获得2262分 random_bot获得1603分 smarter_random_bot获得1319分 stable_bot获得1097分 控制器可以在这里找到:https : //github.com/nathanmerrill/NetAttack

4
团体疗法:确定团体
编写一个程序,确定给定的有限岩浆的乘法表是否代表一个组。岩浆是具有关闭的二进制运算的集合,这意味着 对于G中的所有a,b,a * b再次在G中(闭合) 令(G,*)为岩浆。如果(G,*)是一个组 对于G中的所有a,b,c,(a * b)* c = a *(b * c)(关联性) G中存在元素e,使得G中所有a的e * a = a * e = a(中性元素的存在) 对于G中所有a,G中都有ab使得a * b = b * a = e其中e是中性元素(存在逆) 眼镜 输入的字符串为n ^ 2-1个字符(岩浆中每个元素一个字符,允许为0-9,az),并且仅代表逐行读取的表,省略了操作员名称。您可以假定输入代表一个有效的岩浆(这意味着每个元素在标题行/列中仅出现一次)。 示例:这里有Z_4的表 + | 0 1 2 3 ----------- 0 | 0 1 2 3 …

7
使用Damm算法计算校验位
有流行的校验数字算法,例如Luhn,然后有很好的的,例如Damm算法。诸如Luhn之类的算法流行背后的唯一可能原因是,存在着代码实现它们的实现。这意味着我们作为一个社区有能力通过提供更好算法的高尔夫实现来改变世界。 因此,这个挑战就是通过使用您选择的语言编写一个函数或完整程序来改变世界,该函数或完整程序使用Damm算法来计算校验位。字符数最少(不是字节)的答案将在几周内被选为优胜者。请注意,所有帮助功能和操作表的声明都必须包括在字符计数中。如果是平局,将选择最流行的答案。 该算法围绕一个运算表,该运算表必须是10阶的弱完全反对称准群。可以在Wikipedia中有关Damm算法的文章中找到该运算表,该运算表将用于此挑战中。为了完整起见,我将在下面复制它: | 0 1 2 3 4 5 6 7 8 9 ----+---------------------------------------- 0 | 0 3 1 7 5 9 8 6 4 2 1 | 7 0 9 2 1 5 4 8 6 3 2 | 4 2 0 6 8 7 1 3 5 …
17 code-golf 

16
为黄金分割率连续分数生成MathJax
考虑到暂时禁用 MathJax,此问题中渲染的MathJax已替换为图像。仍然欢迎您发布答案,但是您必须在另一个站点上查看渲染的MathJax 。 PPCG 刚得到 MathJax!这意味着我们现在可以轻松地将格式正确的数学公式包含在帖子中。(便捷的MathJax教程。) 例如,这是用无限连续分数表示的黄金比例: 该公式的MathJax代码为 $$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}}$$ 您可以通过右键单击公式并遵循将数学运算显示为 → TeX命令来找到它。 该$$方法是在页面的,而不是内联中心显示自身。$内联使用单个。 挑战 编写一个程序,该程序接受一个非负整数n,并为黄金分割率的连续分数的许多“步”输出MathJax代码。 为了使所有答案都符合标准,您必须使用以下确切的 MathJax语法: 对于n = 0,输出必须为$$\varphi=1+\dots$$。 呈现为: 对于n = 1,输出必须为$$\varphi=1+\cfrac1{1+\ddots}$$。 呈现为: 对于n = 2,输出必须为$$\varphi=1+\cfrac1{1+\cfrac1{1+\ddots}}$$。 呈现为: 对于n = 3,输出必须为$$\varphi=1+\cfrac1{1+\cfrac1{1+\cfrac1{1+\ddots}}}$$。 呈现为: 对于较大的n,此模式继续。您可以说n代表方程式中分割线的数量。 笔记 \cfrac用于代替较常见的\frac。 \dots用于代替\ddotsn = 0。 从标准输入或命令行输入。 输出到标准输出(带有可选的尾随换行符)。 或者,您可以编写一个函数,将n作为整数,然后将MathJax代码作为字符串返回(或仍然打印出来)。 计分 以字节为单位的最小提交数将获胜。抢七局(Tiebreaker)转到了较早的提交。

30
打印先前答案的第一个字符
接受的优胜者isaacg,带有7位ASCII答案。但是,挑战尚未结束-悬赏被授予最短的答案。如果您以某种方式将所有其他答案的所有第一个字符缩减为10个字节,则将赢得赏金。其中包括第二回合的GolfScript答案中的所有字符(以及该答案本身添加的字符)。这是我一次让您乱序-如果您对此有任何异议,请在评论中告诉我。 我想赞扬randomra,他帮助我解决了旧想法,并给了我这个新想法。 历届获奖者 第1轮:isaacg,具有7位ASCII码 Next bytes: 30 (or 10 if you want that sweet, sweet rep) 您知道,代码查询真的很酷。人们接受挑战,然后逐渐变小!但是,让我们以另一种方式来做。所以,这是我的挑战: 代码将按发布顺序打印所有先前答案的第一个字符(第一个答案不打印任何内容) 该代码从100字节开始,每次减少5。 如果两个帖子的答案相同(即它们都在几秒钟之内发布),则新帖子必须添加旧角色的字符并减少5个字节(甚至减少几秒钟)。 可以使用任何语言。 您的代码不得产生任何错误。 您的代码必须使用第一步所需的所有字节。 您的代码必须打印到STDOUT。 不可打印的字符可以,但是: 他们不能是第一个字符(出于这个问题的目的) 你必须让所有人知道他们在哪里 您可以发布多个答案,但是: 在发布另一个答案之前,您必须等待2个答案(因此,如果发布了100个字节,则必须等到85个字节。) 您不能: 使用超过10个字节的注释 具有整个程序未使用的变量 用空格填充程序 变量名的长度超过10个字节(但是您可以有多个少于10个字节的变量) (EMBLEM的第一个答案是这些规则的例外,因为它是在这些限制之前发布的。) 没有标准漏洞。除非您想摆脱挑战中的所有乐趣。 如果3周内没有其他答案提交,则以字节数最少的答案为准。(如果出现平局,则打印较长弦的人获胜。) 示例:第三个答案必须是一个90字节长的代码,输出两个字符(100字节代码的第一个字符,然后是95字节代码的第一个字符)。第一个答案什么都不输出(没有以前的答案可获取字符)。

2
帮助我们的机器人到达传送器
更新:添加了一个Python框架来开始。 太空站已经被破碎机器人取代。在站点自毁之前,您必须将许多昂贵且易碎的被称为“兔子”的高科技机器人引导到出口传送带,但是破碎机器人正在走廊上巡逻。 您的程序将获得一个ASCII映射,并且每转都会告诉破碎机器人在哪里以及您当前的兔子在哪里。然后,您的程序应将兔子移向出口传送带,同时避开破碎机器人。 执行 使用以下命令运行Python 2控制器: python controller.py <mapfile> <turns> <seed> <runs> <prog>... <prog> can be <interpreter> <yourprog> or similar. 种子是用于破碎机和程序PRNG的小整数,因此运行是可重复的。不管实际使用的种子如何,您的程序都应一致地执行。如果种子为零,则控制器将为每次运行使用随机种子。 控制器将使用地图文本文件的名称和种子作为参数来运行您的程序。例如: perl wandomwabbits.pl large.map 322 如果您的程序使用PRNG,则应使用给定的种子对其进行初始化。然后,控制器通过STDIN发送程序更新,并通过STDOUT读取兔子的运动。 控制器每转一圈将输出3行: turnsleft <INT> crusher <x,y> <movesto|crushes> <x,y>; ... rabbits <x,y> <x,y> ... 然后等待程序输出一行: move <x,y> to <x,y>; ... 更新:在控制器发送第一行之前,您的程序将有2秒钟的初始化时间。 如果您的程序在输入控制器兔子位置后花了0.5秒以上的时间来响应移动,则控制器将退出。 如果网格上没有兔子,则Rabbits行将没有值,并且您的程序应输出一条裸露的“ move”字符串行。 请记住,每转一圈都要刷新程序输出流,否则控制器可能会挂起。 …

7
数字的排序词法分区
挑战非常简单:给定一个数字,将其数字拆分为一个较小数字的数组,以使结果数字不变。要注意的是,您必须将其拆分为最大数组长度。 困惑? 您可以通过STDIN(或最接近的替代方法),命令行参数或函数参数以任何方便,明确的输入格式为您提供正整数。 您必须将数字的十进制数字划分为连续的,不相交的组。 这些数字组代表的数字数组应排序(按通常的,不递减的顺序),而无需重新排列组。 如果存在多个这样的分区,则必须将输入划分为尽可能多的数字。如果是平局,则返回一个这样的结果。 您可以将数组输出到STDOUT(或最接近的替代品)或作为函数返回值。如果是STDOUT(或最接近的替代产品),则应以任何方便,明确的列表格式打印阵列。 分割数不应包含前导零。因此,例如1002003,不能将其打印为[1, 002, 003]或[1, 2, 3],并且唯一有效的答案是[100, 2003]。 测试用例: 123456 -> [1, 2, 3, 4, 5, 6] 345823 -> [3, 4, 5, 8, 23] 12345678901234567890 -> [1, 2, 3, 4, 5, 6, 7, 8, 90, 123, 456, 7890] 102 -> [102] 302 -> [302] 324142 …

9
评估不平等链
编写代码以评估不等式链是对还是错。输入示例是字符串 3<=4!=9>3==3 这是正确的,因为其每个组成部分都是正确的: (3<=4) and (4!=9) and (9>3) and (3==3) 输入: 代表一个或多个不等式链的字符串。允许的比较运算符为 == equals != does not equal > is greater than >= is greater than or equal to < is less than <= is less than or equal to 允许的数字是1位数字0通过9。不会有任何空格,括号或其他符号。 输出: 不等式作为一致的Truthy或Falsey值的正确性。一致意味着每个Truthy输出都是相同的,每个Falsey输出都是相同的。 限制: 挑战的目的是让您编写处理不平等的代码,而不是让它们将它们作为代码进行评估,即使对于链中的单个不平等也是如此。因此,像Python的方法eval和exec计算结果或执行代码被禁止。查找以字符串形式给出的方法或运算符的函数也是如此。也不允许启动流程或程序来为您进行评估。 测试用例: 3<=4!=9>3==3 True 3<=4!=4 False …
17 code-golf 

6
追踪图像的色调
将图像加载到该堆栈片段中,然后将鼠标移到该片段上。将绘制一条从您的光标点开始跟随色相角的黑色曲线: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><style>canvas{border:1px solid black;}</style>Load an image: <input type='file' onchange='load(this)'><br><br>Max length <input id='length' type='text' value='300'><br><br><div id='coords'></div><br><canvas id='c' width='100' height='100'>Your browser doesn't support the HTML5 canvas tag.</canvas><script>function load(t){if(t.files&&t.files[0]){var e=new FileReader;e.onload=setupImage,e.readAsDataURL(t.files[0])}}function setupImage(t){function e(t){t.attr("width",img.width),t.attr("height",img.height);var e=t[0].getContext("2d");return e.drawImage(img,0,0),e}img=$("<img>").attr("src",t.target.result)[0],ctx=e($("#c")),ctxRead=e($("<canvas>"))}function findPos(t){var e=0,a=0;if(t.offsetParent){do e+=t.offsetLeft,a+=t.offsetTop;while(t=t.offsetParent);return{x:e,y:a}}return void 0}$("#c").mousemove(function(t){function e(t,e){var a=ctxRead.getImageData(t,e,1,1).data,i=a[0]/255,r=a[1]/255,o=a[2]/255;return Math.atan2(Math.sqrt(3)*(r-o),2*i-r-o)}if("undefined"!=typeof img){var a=findPos(this),i=t.pageX-a.x,r=t.pageY-a.y;$("#coords").html("x = "+i.toString()+", y = "+r.toString());var o=parseInt($("#length").val());if(isNaN(o))return void …

2
Snakepit的食物短缺
Snakepit的食物短缺 蛇窝是35年以来的第一次,粮食已经耗尽。现在,居住的蛇必须互相搏斗,以度过这种粮食短缺的状况。食物链的顶端只能有一条蛇! 排行榜 还没来 2月24日的最新更新 链接到最近比赛的可视化 描述 如果您想争取剩下的所有苹果/樱桃/其他东西,则必须以程序的形式提供一条蛇,该蛇可以接受给定的输入并返回下一步。 唯一的转折是您并不孤单。另一条蛇也会尝试获得稀有食物!但是蛇形洞内部很暗,所以您只能看到自己和苹果。撞到对手会导致您死亡,就像咬自己或撞墙一样。此外,由于这些天苹果很少见,如果对手的进食量足以达到7岁,您就会饿死。 蛇形坑是一个二维地图,宽度和高度为15,而最外面的砖块则筑起了不可逾越的墙: 0 1 2 . . . c d e 0 # # # # # # # # # 1 # # 2 # x # . # # . # # . # # c # # d # …

3
单词内的单词单词内的单词。。。
在这种大写字母的像素化字体中,所有字符均为5个单位宽和5个高。 ███ ████ ███ ████ █████ █████ ████ █ █ █████ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ █ ██ ██ █████ ████ █ █ █ ████ ████ █ ██ █████ █ █ ███ …

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.