Questions tagged «code-golf»

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

30
我确实做了一个飞船的花胶!
介绍: 受到@MagicOctopusUrn在@Emigna的05AB1E答案中对我的“ 这仅仅是一个错误 ”挑战的评论的启发: 8F9ÝÀNð×ý}».∊我确实做了一个飞船的花胶!我对建议进行12字节的编辑感到非常兴奋。– 魔术章鱼缸 17年7月17日在20:10 这是一个05AB1E(旧版)程序,导致以下结果: 1234567890 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 …

19
创建一个太阳系
介绍 这是基于我最近在制作计算机游戏时遇到的一个实际问题,我认为这将使一轮不错的代码高尔夫成为可能。 有七种主要的恒星光谱类别,它们散发出不同的热量。从恒星接收的热量极大地影响了恒星周围行星的地质,这是光谱类别和距恒星距离的一个因素。因此,水星实际上是融化的,海王星冻结了。 我的游戏中的银河是程序生成的,并且为给定的恒星随机选择行星类型实际上是一个真正的“ if声明地狱”! 挑战 您的方法应基于最小热量阈值,最大热量阈值和随机数,从适合于恒星类别的行星类型列表中选择一个行星。为简单起见,此挑战将仅使用G级恒星,就像我们的太阳一样。 输入项 heat介于4到11之间的整数,表示行星从恒星接收的热量。 变数 该表显示了基于的可能行星heat。您的方法应首先根据最小热量和最大热量来缩小可用的选择范围,并且heat应介于两者之间或两者之间。例如,只有10的热量通过的是沙漠,铁和熔岩。 Planet type Heat min Heat max Random Chance Gas Giant 4 9 15 Ice 4 6 10 Ice Giant 4 6 10 Gaia class 5 7 10 Dense Atmosphere 7 9 10 Desert 7 10 25 Iron 7 10 …
39 code-golf  random 

30
有颠簸吗?
给定一个正整数列表,确定是否有一个元素大于其两个邻居或小于其两个邻居(“凸点”)。需要明确的是,颠簸永远不会成为列表的第一或最后一项,因为它们只有一个邻居。 您的程序应输出两个一致的值之一,每个值对应于一个没有凹凸的列表或一个带有凹凸的列表。这些值无关紧要,您可以自己选择它们。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 [] -> False [1] -> False [1,2] -> False [1,2,1] -> True [1,2,2] -> False [1,2,3] -> False [1,2,2,1] -> False [1,2,2,3] -> False [1,2,1,2] -> True [1,3,2] -> True [3,1,2] -> True [2,2,2] -> False

3
为我解决这个城堡
最近,我一直在玩一个叫做Alcazar的游戏。这是一款棋盘益智游戏,您的目标是从一扇门进入,穿过所有正方形,然后从另一扇门退出。唯一的规则是: 进入一次,离开一次; 穿过所有正方形; 不要多次穿过广场 下图显示了一个Alcazar板的示例,其右侧显示了已解决的难题(当然这是一个简单的难题): 您可以在http://www.theincrediblecompany.com/try-alcazar上找到更多拼图,并在PlayStore下载该游戏(PS:不是广告)。 我的问题是除了一个关卡之外,我几乎完成了游戏。我根本找不到解决方法。因此,我提出的挑战是:创建一个可以解决任何正常的1可解决的2城堡等级的算法。 当然,我不是要任何人来构建图像解释器来读取图像并解决难题(或者是吗?)。因此,我使用方框图字符重新绘制了上述难题。这个难题及其解决方案将是这样的: ╔═══════╗ ╔═══════╗ ║▒ ▒ ▒ ▒║ ║┌─┐ ┌─┐║ ║ ║ ║ ║│ │ │║│║ ╣▒ ▒ ▒║▒╠ ╣│ └─┘║└╠ ║ ══╦═╩═╣ ║│══╦═╩═╣ ║▒ ▒║▒ ▒║ ║└─┐║┌─┐║ ║ ║ ║ ==> ║ │║│ │║ ╣▒ ▒║▒ ▒║ ╣┐ │║│ │║ ║ ║ ║ …

30
我们曾经有一个仅在星期日失败的问题
受我们启发,我们曾经进行过一次单元测试,该测试仅在星期日失败,编写一个程序或函数,该程序或函数除了在星期日发生错误外什么都不做,然后在其他任何一天正常退出。 规则: 除了打印到STDERR或您的语言的同类产品外,请勿通过常规IO方法使用输入或显示输出。如果是错误的副产品,则可以打印到STDOUT。 一个函数可能在非星期日返回一个值,只要它不打印任何内容 您的程序可以使用任何时区或本地时区中的星期日,只要一致即可。 错误是导致程序异常终止的某种东西,例如被零除错误或使用未初始化的变量。这意味着,如果要在出现错误的部分之后添加任何代码,则不会在星期日执行该代码。 您还可以使用手动创建错误的语句,等效于Python的raise。 这包括运行时错误,语法错误和编译时的错误(祝您好运!) 错误时必须有一些符号将其与没有错误区分开 这是代码高尔夫球,因此每种语言中最短的字节数将获胜! 我要等到周日才能查看答案;)

30
标记我的邮件!-ASCII条形码
4状态条形码 许多邮政服务(英国皇家邮政,加拿大邮政,美国邮政等)都使用4状态条形码对有关其邮件的信息进行编码。以ASCII呈现,可能看起来像这样: | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4状态条形码是一行条。每个杆都可以向上,向下或两者同时延伸,从而有4种可能性。这意味着每个条形图基本上代表一个以4为底的数字: | | 酒吧:| | | | | 位数:0 1 2 3 该符号体系的问题在于,每个条形码都是有效的,上下颠倒的不同条形码:如果方向不正确,则会大大改变含义。因此,通常会执行开始和停止序列,以便扫描仪可以计算应该以哪种方式读取它。 …

30
打印小册子
读书很容易,但是印刷书可能有点棘手。在打印小册子时,打印机需要以某种方式排列页面,以便从左到右阅读。完成此操作的方式是使用如下所示的模式 n, 1, 2, n-1, n-2, 3, 4, n-3, n-4, 5, 6, n-5, n-6, 7, 8, n-7, n-8, 9, 10, n-9, n-10, 11, 12, n-11… 测试用例 4页的小册子: 4, 1, 2, 3 8页的小册子: 8,1,2,7,6,3,4,5 12页的小册子: 12,1,2,11,10,3,4,9,8,5,6,7 16页的小册子: 16,1,2,15,14,3,4,13,12,5,6,11,10,7,8,9 20页的小册子: 20,1,2,19,18,3,4,17,16,5,6,15,14,7,8,13,12,9,10,11 任务 给定一个整数n,该整数是4的倍数,您的任务是显示一个数字数组,该数字数组可用于打印一本书n。 注意:只要输出生成正确的数字(无论是由空格,逗号,连字符还是括号定界),都可以使用任何方法来求解 这是一个代码高尔夫问题,因此答案将以字节计分,赢得的字节数最少。

15
用单词数到20!
使用以下以长度分隔的单词列表: https://github.com/魔术八爪鱼缸/ wordListsByLength 从每个列表中打印1个单词,长度n 从1一直到20,这是一个有效的示例: a an and hand hands handle handles abandons abandoned understand outstanding newfoundland understanding characteristic characteristics characterization characterizations characteristically characterologically chemotherapeutically 或者(数组): ['a', 'an', 'and', 'hand', 'hands', 'handle', 'handles', 'abandons', 'abandoned', 'understand', 'outstanding', 'newfoundland', 'understanding', 'characteristic', 'characteristics', 'characterization', 'characterizations', 'characteristically', 'characterologically', 'chemotherapeutically'] 或者(除以外的任何可打印的非字母分隔符\n): a:an:and:hand:hands:handle:handles:abandons:abandoned:understand:outstanding:newfoundland:understanding:characteristic:characteristics:characterization:characterizations:characteristically:characterologically:chemotherapeutically 规则 您可以选择自己的20个字。 …

30
查找第一个重复的元素
给定一个数组a,其中只包含从1到a.length范围内的数字,请找到第一个重复的数字,其第二次出现的索引最小。换句话说,如果重复的数字多于1个,则返回其第二次出现的索引小于另一个数字的第二次出现的索引的数字。如果没有这样的元素,您的程序/函数可能会导致不确定的行为。 例: 对于a = [2, 3, 3, 1, 5, 2],输出应为 firstDuplicate(a) = 3。 有2个重复项:数字2和3。第二次出现3的索引比第二次出现2的索引小,因此答案是3。 对于a = [2, 4, 3, 5, 1],输出应为 firstDuplicate(a) = -1。 这是代码高尔夫球,因此最短答案以字节为单位。 奖金:您能以O(n)的时间复杂度和O(1)的额外空间复杂度来解决它吗?

29
输出金字塔(或公路)
给定长度为偶数的非空字符串s和代表其高度的正整数n,使用以下规则构成金字塔: 金字塔应包含n条非空行;尾随换行符是允许的。对于每个1 <= i <= n,第i行应包含该字符串,其中每个单独的字符在位置重复i次;abcd重复了3次,因此变成aaabbbcccddd。每条线应以填充空间居中,以使每条线的中间垂直对齐。每行末尾都可以使用空格。在第一行之前,您最多可以有一个换行符,但没有其他空格。 输入的字符串不能保证是回文。 测试用例 s = 'o-o o-o', n = 10: o-o o-o oo--oo oo--oo ooo---ooo ooo---ooo oooo----oooo oooo----oooo ooooo-----ooooo ooooo-----ooooo oooooo------oooooo oooooo------oooooo ooooooo-------ooooooo ooooooo-------ooooooo oooooooo--------oooooooo oooooooo--------oooooooo ooooooooo---------ooooooooo ooooooooo---------ooooooooo oooooooooo----------oooooooooo oooooooooo----------oooooooooo

3
辅助工具高尔夫
塔斯高尔夫 在风格TAS竞速一个代码高尔夫扭曲,这一挑战的目标是完成世界1-1原来的超级马里奥兄弟中的几个字节尽可能游戏在你选择的编程语言中的NES,仅使用我将在下面描述的格式的游戏内控制器输入。您的程序必须以stdout这种格式输出到专门为此挑战创建的行列表: up down left right start select A B 从第一帧开始,每条换行符代表特定帧的Controller 1输入。每帧按钮的顺序无关紧要,它们可以用任意数量的非换行空格分隔。每行可以包含全部或不包含或包含一些按钮名称。例如,一个简单的Python程序向右按D-pad 3帧,然后按A可能看起来像这样: for _ in range(3): print('right') print('A') 其输出(我将输入我的仿真器进行验证)将是: right right right A 在这里,我们将“成功”定义为到达上图所示的世界1-1末尾的旗帜。此示例Python提交的得分(如果成功)(如果没有成功),将为44字节,即Python程序的原始长度。 有关基于当前最快的TAS创建的示例工作输入文件,请参见以下Github要点:https : //gist.github.com/anonymous/6f1a73cbff3cd46c9e1cf8d5c2ff58e1注意,此文件可以完成整个游戏。 无法输入子帧输入。也没有办法在Player 2的控制器中输入输入,但是这对于完成关卡或游戏也不是必需的(或有用的)。 使用的SMB版本将是原始的美国/日本iNES ROM(md5sum 811b027eaf99c2def7b933c5208636de-美国版本与日语版本完全相同,因此可以使用,通常使用ROM标记Super Mario Bros (JU) (PRG 0)或相似)。 为了测试提交的内容,我将运行程序,将它们通过管道stdout输入到input.txt文件中,然后使用mario.lua我为该挑战编写的Lua脚本将其加载到FCEUX中: for line in io.lines('input.txt') do local t = {} for w …
39 code-golf  game 

13
579085261是CRAZY,725582是GOLF,10757494是…?
您的任务是使用以下描述的方法将103平滑数字转换成英文单词。 怎么样? 生成输入数字的主要因子列表(重复)。 排序列表: 如果2不是主要因素之一,请按升序对列表进行排序。 如果2是主要因素之一,请从列表中将其删除,然后按降序对其余因素进行排序。 使用下表将每个因子转换为字母: 3 = S 13 = L 29 = X 43 = O 61 = Z 79 = H 101 = K 5 = P 17 = Q 31 = N 47 = R 67 = T 83 = V 103 = Y 7 …

1
麦卡锡的LISP
麦卡锡的1959 LISP 1959年初,约翰·麦卡锡(John McCarthy)撰写了一篇具有开创性的论文,其中仅定义了9种原始函数,这些函数组合在一起仍然构成了当今所有LISP类语言的基础。该文件可在此处数字化: http://www-formal.stanford.edu/jmc/recursive.pdf 你的任务是全面落实正是在1960年的论文中描述McCarthy的LISP解析器和解释:也就是说,功能QUOTE,ATOM,EQ,CAR,CDR,CONS,COND,LAMBDA,和LABEL都应该发挥作用。考虑到答案的正确性,本文将优先于本挑战性文章,但我尝试总结以下九个功能。请注意,该语言将为ALL CAPS,并且无需进行错误检查,所有输入均应假定为有效。 种类 麦卡锡的LISP中只有两种类型:原子和链表,它被递归地定义为头(可以是列表或原子),以及头连接到(尾)的列表。NIL具有既是原子又是列表的特殊属性。 根据论文,原子名称将仅由大写字母,数字和空格字符组成,尽管连续空格的字符串应仅视为一个空格,而所有前导和尾随空格字符均应删除。实施例等效原子名称(替换空格字符下划线): ___ATOM__1__ = ATOM_1。示例不等效的原子名称:A_TOM_1 != ATOM_1 列表用括号表示NIL,每个列表的末尾都包含一个隐含符号。列表中的元素用逗号隔开,而不是像大多数现代Lisps一样用空格隔开。因此,清单(ATOM 1, (ATOM 2))将是{[ATOM 1] -> {[ATOM 2] -> NIL} -> NIL}。 QUOTE: 接受一个参数,该参数可以是一个原子(单个元素)或一个链表。精确返回参数。 测试用例: (QUOTE, ATOM 1) -> ATOM 1 (QUOTE, (ATOM 1, ATOM 2)) -> (ATOM 1, ATOM 2) ATOM: 接受一个参数,该参数可以是一个原子(单个元素)或一个链表。T如果参数是原子,则返回(true),如果参数不是原子,则返回(NILfalse)。 测试用例: (ATOM, …

14
让我们画蒙娜丽莎
2014年,演示者Jakub'Ilmenit'Debski 为Atari XL 发布了一个250字节(1)的程序图形演示,名为Mona。它绘制了以下图片(2张): 您的任务是使用您选择的语言生成完全相同的图片。 (1)细分:136个字节的数据+ 114个字节的代码。 (2)原始图片为128x96。上面的版本放大到256x192。几个像素与原始像素不同,但这是此挑战中描述的伪代码的预期输出。 怎么样? 这是代码高尔夫球。尽管您有权使用任何方法,但使用下面描述的原始算法很可能会获得最佳结果。 注意:本段不是说明,而是一般说明。有关算法的详细信息,请参考伪代码和参考实现。 该图像由64个伪随机笔触组成(请参见此视频),并循环显示以下颜色(以RRGGBB十六进制格式): COLOR = [ 0xFFE289, 0xE99E45, 0xA55A00, 0x000000 ] 最初,背景填充有第四种颜色(黑色)。每个笔画都比上一个笔画短。 伪随机数发生器在初始设置为0x7EC80000并与进行XOR 运算的32位整数上使用线性反馈移位寄存器(LFSR)0x04C11DB7。 每个笔画均以16位值初始化,该值将覆盖种子的最低字节: BRUSH = [ 0x030A, 0x37BE, 0x2F9B, 0x072B, 0x0E3C, 0xF59B, 0x8A91, 0x1B0B, 0x0EBD, 0x9378, 0xB83E, 0xB05A, 0x70B5, 0x0280, 0xD0B1, 0x9CD2, 0x2093, 0x209C, 0x3D11, 0x26D6, 0xDF19, 0x97F5, 0x90A3, …

21
数组对齐加法
介绍 考虑两个非空整数数组,例如A = [0 3 2 2 8 4]和B = [7 8 7 2]。要对其进行对齐添加,请执行以下操作: 重复每个数组足够的时间,使其总长度为lcm(length(A),length(B))。在这里,lcm代表最低公倍数。 A -> [0 3 2 2 8 4][0 3 2 2 8 4] B -> [7 8 7 2][7 8 7 2][7 8 7 2] 在重复的数组上执行逐元素加法,并在每个数组中都有剪切的位置处剪切结果。 A -> [0 3 2 2 8 4][0 3 …

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.