Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

1
Android锁屏
介绍 您正坐在长桌尽头的会议室。您环顾四周,可以看到苹果董事会的蒂姆·库克,史蒂夫·乔布斯的鬼魂和杰克·多纳西。苹果之所以召开这次会议,是因为他们意识到Android锁定屏幕要酷得多,并且他们希望1-UP。当Ghost Steve哭着时,房间里的每个人都在注视着你,“帮我,CodeGolf的人!你是我唯一的希望!” 问题 Android锁定屏幕是一个3 x 3的点网格,可以通过将手指从一个点滑到另一个点来建立路径来进行连接。密码被认为是任何可能的路径,包括任何数量的点,但不包括任何数量的点。(在实际的电话上,路径必须至少有4个点长。对此挑战,请忽略该限制。)苹果计划用M x N网格(即(M * N)/ 9)替换3 x 3网格。倍好! 规则: 零点路径不是密码,但一个点路径是 一条路可以穿越自己 路径不能直接跨越点而不包含该点 一个点只能使用一次 旋转相同的路径不是相同的密码 相同但反向排序的路径不是相同的密码 例如,在3x3网格上,点编号从1到9: 1 2 3 4 5 6 7 8 9 一些有效的路径是: 1 3 7,2,3 1,5,9,2 1,8,6,5,4 4,2,3,5,6,7,8,9 5,9,6,4 一些无效的路径是: 1,3 1,9,5 7,5,4,7 4,6 您的输入将是三个数字: (M,N,d) 其中格是M x N,而d是路径的长度 1 …

30
Pi的Monte Carlo估算器
大家快乐的Pi日!完全没有理由,我试图构造一个尽可能短的Pi蒙特卡洛估计器。我们可以构建一个可以在推文中显示的推文吗? 为了澄清,我想到的是从单位平方中绘制随机点并计算落入单位圆内的比率的典型方法。样本数量可以硬编码也可以不硬编码。如果对它们进行硬编码,则必须至少使用1000个样本。结果可以作为浮点数,定点数或有理数返回或打印。 禁止使用Trig函数或Pi常数作为Monte Carlo方法。 这是代码高尔夫球,因此最短的提交(以字节为单位)获胜。

19
创建一个呈现其自身源代码的“黑客打字机”程序
如果您不熟悉hacker typer,请参阅hackertyper.net。简而言之,它是一个程序,每次击键都会输出一个代码库的一部分,以实现喜剧效果。但是,hackertyper.net版本太容易实现了。它只是从任意一段代码中一次输出三个字符。为了应对这一挑战,程序必须输出自己的源代码,并在每次击键时打印一个空格分隔的代码块。 细节 不能为程序的文件名硬编码。它必须动态确定其名称。如果程序编译为可执行文件,则可以将标准文件扩展名附加到可执行文件的名称(如果使用Windows,则不包括.exe),并假定源文件在可执行文件的目录内。例如,如果C可执行文件名为“ hacker”,则它应从同一目录中名为“ hacker.c”的文件中提取其源代码。如果已编译程序具有扩展名,则应在确定其源代码名称之前将其删除(“ typer.exe”->“ typer.cs”)。 程序必须包含至少5个空格,每个空格之间至少要有一个字符。这意味着此挑战的最小可能大小为9个字节。空格对于程序的功能不必很关键。 任何格式(缩进,换行等)都必须保留在输出中。可以使用继续执行该代码的格式来打印该格式,也可以跟随其后的代码打印,重要的是要保持格式。 除非使用其他语言来实现空格,否则请避免使用注释来满足5个空格的要求。 编辑:可以使用新行来代替空格,也可以将空格用作块分隔符。

2
最后一站-击败僵尸部落
介绍 你一个人在岛上。人类的其余部分已死(可能是由于user12345的代码中的错误)。僵尸海盗部落已经到达您的岛屿,他们永无止境。是时候踢屁股或咀嚼泡泡糖了,而您全都没有泡泡糖了。 问题 我们的世界末日场景由一行中的2个整数m和来描述n。在您的岛上,前哨站的编号从1到唯一m。以下n各行包含三个整数,x,y,和z,用空格隔开。x和y两个前哨的唯一ID,并且z是将它们之间的道路上可能遇到的僵尸的数量。 当您沿着小路行驶时,您会丢失z弹药并杀死z僵尸。不幸的是,如果再次走同一条路线,您将遇到相同数量的僵尸。每次旅行时,所有前哨站都会产生+1枚弹药。您从前哨站1的弹药开始。所有前哨站的弹药从0开始。如果不存在弹药大于该路径上的僵尸数量的路径,则您会立即死亡,剩余的弹药将被转换为杀戮。这是你的最终立场。 编写一个程序,输出在给定情况下可以杀死的最大僵尸数量。如果您可以杀死无限数量的僵尸,只需输出x。 输入示例 5 6 1 2 4 2 3 4 3 1 4 2 4 10 2 5 10 1 1 50 示例输出 x 假设条件 路径将位于两个有效的前哨站之间。也就是说1 <= x/ y<=m 如果未列出x和之间的路径y,则无法通过 路径是双向的 1 m<<== 100 1 n<<= 500 输入必须通过stdin提供,从文件中读取或作为程序的唯一参数被接受,并且它必须完全遵循示例的格式 程序的运行时可能会很大,但必须是有限的 字符最少的代码胜出!
25 code-golf 

10
曼陀林奎因
写一个quine ...从中可以删除所有其他字符的quine仍然是有效的quine。您可以指定是从第一个字符还是第二个字符开始删除字符。 计分标准(将奖金/适当的百分比相加,得出总百分比): 答案必须至少包含4个字符 程序的来源中必须至少包含一个字母字符,例如,该12345!@#$%^&*()程序不合格 + 750%,如果使用的语言不是图灵完整的(我在看着你,HTML!) 如果解决方案未从任何地方以任何形式读取其来源,则为-15% 如果您也只能保留第5个字符并仍然成绳状,则为-20% 分数由第一个程序中的字符数来衡量。 示例(非真实程序): 如果123456789abcdef和13579bdf都是quines,则得分为15。此外,如果159d也是quines,则最终得分为12。 这是代码高尔夫球,因此得分最低者获胜。
25 code-golf  quine 

9
打保龄球比赛
您的任务是在最多 21局掷骰后,在 10针保龄球游戏中总结并输出一个球员的得分。 在您首选的输入法中,滚动表示为整数序列。每个整数对应于该卷中被击倒的引脚数。 计分 每回合之后,该回合中击倒的针脚数量将计入最终得分。如果玩家在第一回合中击倒所有十个别针,则为罢工,此回合结束。否则,该回合将继续进行一轮。如果第二回合击倒所有剩余的销,则这是备用的。 对于每次打击,都有一笔奖金,等于在接下来的两次掷骰中击倒的针脚的总和。对于每个备用零件,都具有等于下一轮击倒的销子数量的奖金。 在第10轮也是最后一轮,可能会给予玩家额外的掷骰:如果有罢工,则玩家会获得另外2个掷骰来弥补其罢工奖励。如果有备用的话,玩家还会获得一掷。 例子 Input: 4 3 8 2 7 1 10 7 3 0 10 2 2 10 10 5 4 Output: 131 Input: 10 10 9 1 7 3 2 7 10 1 9 10 7 1 10 10 10 Output: 183 规则 …
25 code-golf  number  game 

3
网球比分符合Code Golf
鉴于2014年在墨尔本举行的澳大利亚网球公开赛,以及斯坦尼斯拉斯·瓦林卡(Stanislas Wawrinka)对诺瓦克·德约科维奇(Novak Djokovic)的获胜,我提出以下代码高尔夫挑战赛! Wawrinka和Djokovic再次基于此CGC参加会议。您的挑战是取一个由1和2组成的字符串,并根据网球计分系统确定网球得分。“ 1”表示Wawrinka得分,而“ 2”表示Djokovic得分。 为了示例:1211222122111122111将生成两行输出: Wawrinka 1 - 40 Djokovic 1 - 30 字符串越长,得分越远。 规则: 最短的代码胜出,纯粹而简单。 显示时,分数必须右对齐,列也必须对齐;例如 输出的样本对齐: Wawrinka 7 5 3 - 0 Djokovic 6 7 4 - 15 如果正在进行游戏,则必须在设置分数之后显示分数。游戏分数必须遵循设置的分数,并使用空格----空格分隔符。如果碰巧是第一场比赛,则必须显示0-0的设定得分。 Wawrinka 0 - 0 Djokovic 0 - 15 游戏将按0、15、30、40和游戏点的顺序进行。如果一场比赛的比分达到40-40,则宣布为平局,分数必须在得分行上显示该平局: Wawrinka 7 5 3 - 40 Djokovic 6 …
25 code-golf  game 

13
这是什么ROT?-解密ROT-n
以下是按频率顺序排列的英文字母的字母: e t a o i n s h r d l c u m w f g y p b v k j x q z 即,e是最常用的字母,z也是最不常用的字母。(来自Wikipedia的数据。) 您面临的挑战是获取一些ROT文本,例如: ocdndnvqzmtnzxmzohznnvbzocvodnqzmtnzxpmzviynvaz 这是通过ROT-21(42的一半)“加密”的文本“ thisisaverysecretmessageverysecureandsafe”。使用上面的频率表,您的程序应该能够确定每个字符旋转了多少以及原始文本。 (如果您不熟悉ROT-n,则实际上是将每个字符移动n。例如,在ROT-2中,a -> c, b -> d, ..., x -> z, y -> a, z -> b。) 你怎么问?您必须使用的(非常幼稚的)算法是: 对于每个“ …

6
您可以使用Meta Quine吗?
与其他quine拼图(更具体地讲,这个)类似,编写一个程序为自己生成源。 这里是新的转折:产生的代码应该不等同于源。相反,它应该输出将创建第一个程序的其他程序。 与上述相关的挑战通过在两种语言之间跳转来实现。我认为仅用一种语言即可完成,但是源的两个(或更多)版本应该有显着差异(请参见以下规则)。在这种约束下,单字符答案将是不允许的,因此需要在最终提交中多加思考。 规则 您的代码必须仅以一种语言生成。(多次提交,每种语言都可以接受。) 您不同的代码版本在语法上必须是不同的。换句话说,如果要为代码绘制一棵抽象语法树,则至少应有一个不同的节点。 提供AST并不是必需的,但是如果您希望为每个程序提供一个AST,则将有助于判断。 您可以根据需要生成任意数量的迭代,只要它们在语法上保持不同即可。(更多信息将对您有所帮助,请参阅下文。) 计分 您的最终分数将是所有程序的平均时长,再除以程序数。 范例1: A(B来源)= 50个字符 B(A来源)= 75个字​​符 最终分数= 31.25 范例2: A(B来源)= 50个字符 B(C来源)= 75个字​​符 C(A来源)= 100个字符 最终分数= 25
25 code-golf  quine 

30
写一个多米诺骨牌效果
使用最少的Unicode字符,编写一个接受三个参数的函数: 多米诺骨牌总数 n受影响的多米诺骨牌 受影响的多米诺骨牌的倾覆方向(0或L向左1或R向右) 一旦多米诺骨牌倒塌,它也必须沿相同方向推倒其余的多米诺骨牌。 你应该输出与多米诺骨牌|代表一个常设Domino和\和/代表骨牌效应,向左,右分别。 例子 10, 5, 1应该返回||||////// 6, 3, 0应该返回\\\|||

11
计算pi的500位数字
编写一个程序来计算pi的前500位,并满足以下规则: 长度必须少于500个字符。 它不能包含“ pi”,“ math.pi”或类似的pi常量,也不能调用库函数来计算pi。 它可能不会连续使用数字“ 3”,“ 1”和“ 4”。 它必须在合理的时间内(不到1分钟)在现代计算机上执行。 最短的程序获胜。

9
在控制台/终端上重新创建“蛇”游戏
游戏很有趣 这里的代码高尔夫球是如此有趣,我必须为复杂度相似的其他经典游戏制作一个版本。用Python创建基本太空侵略者游戏的最快捷方法 但是,这一次,请尝试重新创建经典的“蛇”游戏,在这种游戏中,您从小形状开始,不断地移动以收集碎片来增加得分。当您收集一件物品时,您的“尾巴”就会增加,它沿着您所走的道路前进。目的是持续最长的时间而不会撞到自己的尾巴或墙壁上 资格: 您,组成尾巴,墙壁和收集的碎片的角色都应该是不同的角色 显示带有分数的HUD。每收集一件作品,分数就会提高1分 玩家与自己的尾巴或墙壁碰撞时会失败 一件物品被收集后立即在随机区域产生,更不用说在游戏开始时 游戏的速度并不重要,只要它是一致的 “单元格”应该是2x1个字符,因为块字符的高度约为宽度的两倍,可以是1x1,因为2x1很难看,我并没有真正想到 更改方向的键分别为awsd,左,上,下,右 起始方向应始终朝上 您必须显示墙的边缘。分数可能与墙重叠 满足上述条件的最短代码将获胜。创造力的虚构奖励积分
25 code-golf  game 

30
将字符串转换为小写(没有内置的转换函数!)
该代码高尔夫球的目标是创建一个代码,该代码允许用户输入ASCII字符串(仅包含可打印的ASCII字符),并且程序将输出此字符串的小写字母。 重要提示:不允许使用将字符串(或仅一个字符)转换为小写的内置函数(例如ToLower().NET,strtolower()PHP等)!但是,您可以使用所有其他内置函数。 另外要注意:输入字符串不包含仅大写字符。输入字符串是大写字符,小写字符,数字和其他ASCII可打印字符的混合。 祝好运!

30
以ASCII绘制骰子结果
如果用立方体形骰子完成,则显示掷骰子的随机结果,以ASCII表示。 $ dice 应该导致以下结果之一 ----- | | | o | | | ----- ----- |o | | | | o| ----- ----- |o | | o | | o| ----- ----- |o o| | | |o o| ----- ----- |o o| | o | |o o| ----- ----- |o o| …

21
吉米多样性的场景
您可能知道,最近出现了多个 可爱的 吉米 挑战 。在这些挑战中,您受到了我们挚爱的朋友的杂技技巧的挑战。现在,我们为您带来了另一个挑战。今天,您将确定吉米斯的不同类型! 说明 吉米斯有三种变体:矮人,杂技演员和健美运动员。 This is dwarf Jimmy: o This is acrobat Jimmy: /o\ This is bodybuilder Jimmy: /-o-\ 这些吉米人都是好朋友,他们喜欢彼此站在同一条线上。给定一个Jimmy场景,您的任务是: o /o\ o /-o-\/-o-\ o /o\ 分别输出线上的矮人,杂技演员和健美运动员的数量。 挑战 如上例所示,以任何合理的形式将输入作为Jimmy场景。 输入字符串应为一行,并且可以包含三种类型的Jimmys和可选的空格。 该字符串不一定包含所有Jimmy变体或空白。 该字符串将不包含任何不在中的字符o/\ -。 吉米品种的任何组合都是可能的。这意味着相同或不同类型的吉米可以彼此相邻。您必须考虑到这一点。 前导和尾随空格是可选的,并且绝不是必需的-您的程序应考虑带有或不带有前导和/或尾随空格的字符串。 该字符串应仅包含有效的Jimmys和空格。例如,---///---不允许使用,因为它不是有效的Jimmy序列。 输出三个数字:场景中的矮人,杂技演员和健美运动员的数量(按顺序排列)。 这可能是以空格分隔的整数形式输出到控制台,也可能是函数作为某种容器(即数组类型)的返回值。 必须按照此规则上方最上方的提示对任何格式的输出进行排序。 适用标准规则和漏洞。 测试用例 /-o-\ /-o-\ o/o\ /-o-\ /-o-\ /-o-\ …

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.