编程拼图和代码高尔夫

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

6
六角迷宫时间!
是时候进行另一个迷宫挑战了,但并不是您所知道的。 此挑战的规则与大多数迷宫挑战略有不同。磁贴类型定义如下: S:迷宫的起始位置 E:您要到达的位置 0:你无法穿越的墙 +:您可以越过的地板 您可以沿六个方向之一旅行:左上,右上,左,右,左下或右下。 \ / -S- / \ 迷宫不包裹。目的是找到从S到的最短路径字符串E。 输入: 输入是用空格隔开的线条,如所示的迷宫。后面没有空格。 输出: 一个字符串R,L和F在那里 R 向右旋转(顺时针)60度 L 向左旋转(逆时针)60度 F 在您指向的方向上移动一个空间 你开始指向 left-up 最短路径由生成的字符串的长度计算,而不是访问的位置数。您的程序必须打印最短路径作为解决方案。 如果迷宫无法解决,则应输出Invalid maze!。 (>>>是输出) 0 0 0 0 0 + 0 + 0 0 0 0 + + 0 0 + 0 + 0 + …

5
从字面上看是高尔夫球场
在现代标准中,高尔夫意味着高尔夫运动,而高尔夫本身就是大众汽车制造的汽车。 因此,今天您将开始编码高尔夫球,而不是通常的编码高尔夫球。 挑战 用语言A编写一个程序(A),它将输出另一种语言B的程序(B)的源代码,而该程序又将Vroom vrooom!在执行时输出。 规则 程序A的源代码被格式化为漂亮的ASCII汽车(不一定是大众汽车)。 程序A必须以您发布的格式执行。 语言A是不相同的语言的语言B. 程序B的输出可能以也可能不是以新行结尾。 程序A不接受任何输入。 请使用非显而易见的语言(深奥的语言)解释程序A。 您必须以# Language A, Language B例如开始您的答案。# Brainfuck, Python。 在发布此挑战时,有效语言必须包含英文Wikipedia文章,esolangs文章或Rosetta Code文章。 有创意:-) 计分 这是一次人气竞赛。到10月4日投票最多的答案将宣布为获胜者。 例 Brainfuck,Python 2 ++++++++++[>+++> ++++ ++>+++ ++++ +++< << -]>>> ++++++++++++. ++ .------ ---.+++++.++++++.<<++.++.>++++++++++++++ ++++++++++++.>--.---..--.<<--.>>+++++++++. ----.---...--.---------------------------- --------------------------------------- \--o--/ \--o--/ \-_./ \+_./ 输出以下代码,可以在Python 2中执行; print "Vroom vrooom!"

1
这是候选人卡尔文数吗?
这项挑战是对我们的传奇挑战作家( Calvin's Hobbies)(现在更名为Helka Homba)的致敬,其精神与“ 生成丹尼斯数字 ”相同 。 卡尔文(Calvin)是PPCG的杰出贡献者,在整体声誉中名列第六,在我们所有人当中,毫无疑问,最佳挑战写作技能是无可争议的。但是,当然,对于这一挑战,我们将重点关注他的用户ID。 起初26997可能看起来不太有趣。实际上, 从几个方面来说,这几乎是有趣的。例如,这是26997 mod <n>某些值的图表n: n | 26997 % n ----+----------- 3 | 0 4 | 1 5 | 2 6 | 3 7 | 5 :( 8 | 5 9 | 6 10 | 7 但是,26997是可以用表示的少数几个数字之一,其中整数> 0。(n * 10)n - nn 这是可以用这种方式表示的前几个数字,此后我们将其称为加尔文数字: …

6
披萨好吃吗?
这个问题是通过启发,是逆这个。 丹尼斯(E),门把手(D),马丁(M)和克里斯(C)点了一份披萨。矩形的比萨饼被分成方形的块,每个块上都标有其预定的食用者。 编写一个程序或函数,给定一个矩形比萨,该比萨由每个字母的0个或多个组成,确定是否: 每个人的每个片段都是相互联系的。这意味着所有相同的字母应彼此直接相邻(没有对角线连接)。 每个人的切片数对于所有人都是相同的。 您必须输出真/假值,并带有可选的尾随换行符,以指示给定的披萨是否公平。 有效的测试用例: DDDDDDDDDDDDMCCCCCCCCCCC DEEEEEEEEEEDMMMMMMMCCCCC DEEEEEEEEEEDMMMCCCCCCCCC DEEEEEEEEEEDMMMMMMMMCCCC DDDDDDDDDDDDMMMMMMMMMMMC DEMC DD EE MC MC EEDDMMMCCC EEEDDDMMCC 无效的测试用例: EDM EDMCCMDE DDDDDDDDDDDDMCCCCCCCCCCC DEEEEEEEEEEDMMMMMMMCCCCC DEEEEEEEEEEMDMMCCCCCCCCC DEEEEEEEEEEDMMMMMMMMCCCC DDDDDDDDDDDDMMMMMMMMMMMC DDMMEECC DMMEECCC 以字节为单位的最短代码获胜。

24
阿特巴什自我回文症
考虑一下Atbash转换: A|B|C|D|E|F|G|H|I|J|K|L|M Z|Y|X|W|V|U|T|S|R|Q|P|O|N 其中A⇔Z和L⇔O,例如,存在一些单词共有的有趣特性。当将某些字符串翻译成等同于atbash的字符串时,所说的翻译就是原始单词的反转。我称这些为Atbash自回文症。 例如,让我们翻译WIZARD: W→D 我→R Z→A A→Z R→我 D→W 结果是DRAZIW,它被向导反转了。因此,向导是一种atbash自我回文症。 目标给定一串可打印的ASCII字符,如果该字符串是atbash自回文,则输出或返回真实值,否则输出假值。(这是通过STDIN,最接近的等价函数,功能输入等完成的。如果您的语言不能执行任何这些操作,请考虑选择其他语言,您可以对输入进行硬编码。)您应该不区分大小写。如果输入是回文,并且不受atbash序列的影响,那么您仍然应该输出true,因为回文+本身就是回文。这是一个代码高尔夫球,因此以字节为单位的最短程序获胜。 测试用例 "Input" => true, false "WIZARD" => true "Wizard" => true // case doesn't matter "wIzArD" => true "W I Z A R D" => true "W IZ ARD" => false // the atbash of this is …

3
填充任意冰块托盘
假设此空间网格和X代表一些形状奇异的空冰块托盘的横截面: X X X X X X XX X XX X XXXXXX XXXXXXXXXXXXX 不带X的列表示无法容纳水的托盘中的孔或缝隙,从而排入了无限容量的水槽。从网格的最左边或最右边掉落的水也进入这个无尽的水槽。 如果我们将水龙头放置在托盘上方,并让它们充满水直到所有隔间中的水位保持稳定,则填充的确切隔间将取决于水流​​在托盘上方的确切位置。(假设有稀薄,稳定的水流,没有飞溅。) 例如,如果我们的水龙头F在最左边的网格列上方 F X X X X X X XX X XX X XXXXXX XXXXXXXXXXXXX 水会跌落到该X列的最顶部,并左右扩散,左半部分溢出到下方的水槽中,右半部分填充2×1隔室。一旦隔间装满,右边的一半水就无处可流,只能流入水槽,并且各处的水位基本稳定。 关闭水龙头,托盘现在看起来像这样:(与~水一起使用) X X X X~~X X XX X XX X XXXXXX XXXXXXXXXXXXX 同样,如果我们将水龙头定位如下: F X X X X X X …

4
亚皆老街ASCII艺术
编写一个使用正整数的程序(或函数)。 如果输入为1,则打印(或返回)并排相邻的两个菱形,每个菱形的边长为1斜线: /\/\ \/\/ 对于每个N大于1的输入,请查看输出,N-1并为每对相邻的菱形插入一个新的菱形,它们之间的边长是两个相邻菱形的边长之和。打印(或返回)这个新的菱形图案。 因此,当2输入时,我们查看的输出1,可以看到有两个相邻的菱形,它们的边长均为1。因此,我们在它们之间插入了边长2(1 + 1)的菱形: /\ /\/ \/\ \/\ /\/ \/ 对于输入,3我们看一下输出,2并在两对相邻菱形之间添加两个边长为3(1 + 2和2 + 1)的菱形: /\ /\ / \ /\ / \ /\/ \/ \/ \/\ \/\ /\ /\ /\/ \ / \/ \ / \/ \/ 继续该模式,输出为4: /\ /\ /\ / \ / \ /\ …

18
文字右对齐
您的工作是获取一个字符串输入和一个数字,然后将字符串向右对齐,使文本的宽度成为数字。当一行太长时,请将其断开,然后将其余部分放在下一行,重复进行直到不需要。如果一条线比宽度短,则用空格填充。可能会出现多个换行符,并且应将其与其他任何单个字符一样对待。 例如,字符串 Programming Puzzles & Code Golf 该数字5将产生: Progr ammin g Puzzl es & Code Golf 而相同的字符串和数字10将产生: Programmin g Puzzles & Code Golf 字符串 a b 而数字5会产生: a <-- note the 5 spaces b 最短的代码胜出!
27 code-golf  string 

2
Vim-用注释字符包围注释行
今天,我意识到我经常喜欢在代码中定义以下部分: #################### # Helper Functions # #################### 但这很乏味。假设我有这样一行: # Helper Functions # vim将其包装在最短的击键集合中是#什么?移位,并不能算作这一挑战击键。 测试用例: Input: "#test test test#" Output: ################ #test test test# ################ Input: "#this is a nice block comment#" Output: ############################## #this is a nice block comment# ############################## Input: "# s p a c e s must be …
27 code-golf  vim  comment 

25
反转和反转字符串
反转和反转字符串 挑战 在这个挑战中。您将要编写一个程序,该程序将输出或返回输入(反向和反向)。 首先,每个字符都应转换为其字符代码。然后,应将其转换为base-2。接下来,该字符串应颠倒。之后,字符串应取反(1-> 0和0-> 1)。最后,应将其转换回以2为基数,然后再转换回一个字符。如果某个字符导致无法打印,则可以选择输出该字符,但不必将其删除。 H -> 72 -> 1001000 -> 0001001 -> 1110110 -> 118 -> v e -> 101 -> 1100101 -> 1010011 -> 0101100 -> 44 -> , l -> 108 -> 1101100 -> 0011011 -> 1100100 -> 100 -> d l -> 108 -> 1101100 …

10
钩长产品
甲杨图是在左对齐的行和顶部对齐的列盒的布置。对于每个框,其上方和左侧的所有空间均被占用。 XXXXX XXX XXX X 盒子的挂钩长度是其行右边和框下面的盒子数,也可以自己计数一次。例如,第二个盒子的钩子长度为6: X**** X*X X*X X 这是所有钩子长度: 86521 532 421 1 您的目标是在此处计算弯钩长度的乘积8*6*5*2*1*5*3*2*4*2*1*1 = 115200。 (如果您对这个表达式的重要性感兴趣,请阅读钩子长度公式。) 输入:行大小的集合,如数字[5,3,3,1]或重复的一元符号(如[[1,1,1,1,1], [1,1,1], [1,1,1], [1]]或)"XXXXX XXX XXX X"。您可以根据需要将列表排序为升序或降序。该列表将为非空,并且仅包含正整数。 输出:挂钩长度的乘积,为正整数。不必担心整数溢出或运行时。 不允许专门处理Young图或整数分区的内置函数。 测试用例: [1] 1 [2] 2 [1, 1] 2 [5] 120 [2, 1] 3 [5, 4, 3, 2, 1] 4465125 [5, 3, 3, …

1
ASCII分数
在temp文件夹的深处挖掘,您会发现一些钢琴作品。不幸的是,这些作品只写有音符名称和时长,并且您只能访问文本终端。因此,您的任务是编写一个程序以将合成显示为ASCII艺术。 输入项 您的程序应接受两个字符串作为输入。第一个字符串代表高音谱号的音符(带有高音谱号),第二个字符串代表低音谱号的音符。 这些笔记将以科学的音高符号传递。顶部人员的笔记总是会之间C4和C6包容性。底层员工的笔记总是会之间C2和C4包容性。 每个音符都将拿出一个时间,这将是一个:1,2,4,8。它们分别代表整个音符(半缩音符),半音符(最低音符),四分音符(钩针)和八分音符(颤音)。 其他持续时间的注释将永远不会出现在输入中。 您可以自行决定如何将音符和持续时间分开,以及如何将每个音符与输入中的其他音符分开。以下是高级职员的样本输入: E4/4 A4/8 C#5/8 E5/2 在此,音符之间用空格隔开,并且持续时间与音符之间用正斜杠分隔。这些距离不是固定的,您可以选择更改或完全省略。 您可以假设每位职员至少有一张便条。输入中没有休止符。 输出量 您的程序将分数输出为ASCII艺术作品,并符合以下说明。 谱号应该是输出左侧的第一件事(两个谱号之间的距离不应更改): ^ | | ------|/---- / -----/|----- / | ---/--__---- | / \ ---\-\|-|--- \ | / ------|----- | \_/ ----___----- / \ | ---\---|---- | | -------/---- / -----/------ ------------ 如果音符的条干(圆旁边的垂直线)应指向五线谱的中线以下,则应指向上方。如果音符在谱线的中线上方,则应指向下方。如果音符在中线,则词干可以指向任一方向。(唯一的例外是奖金,并且在连接八分音符时发生,稍后将进行说明)。茎应该从圆的上面/下面的线开始,并且要6高。 除整个音符外,所有类型的音符都有词干。八分音符的标志由不同行上的两个正斜杠表示(请参见下面的示例音符)。 填充的音符头(用于四分音符和八分音符)由表示(@)。空的音符头(代表一半和全部音符)由表示( )。 …

9
山丘之王-消防员
在草原上,这是一个干燥的夏天。该地区的四位农民意识到他们可以烧掉邻居的农作物来垄断玉米市场。但是他们需要这样做的策略。那就是你进来的地方。 您的任务是编写一个机器人来告诉农民要燃烧的东西。目标是用最大的未燃烧土地完成游戏。比赛场地是32x32的网格。每个单元格可以是以下之一: . - Ground @ - A bot # - Ash W - Wet ground 1,2,3,4,5, or 6 - Fire 烈火每回合增加1点。一旦达到3或更高,它将在其旁边(水平或垂直)着火。着火后,它变成了灰烬。 在每个回合中,漫游器收到以下内容作为STDIN:漫游器开始x,漫游器开始y,漫游器当前x位置,漫游器当前y位置和板,以换行符分隔。一个例子: 8 22 6 24 ................................ ................................ ................................ .....................1.......... ....................1#1......... ...................1#363........ ....................16@1........ .....................31......... ................................ .........1.1.................... ........15#62................... ........15@2.................... .........32..................... ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ................................ ....4.1......................... …

7
放大钻石拼贴
任何规则的六角形都可以用钻石平铺,例如: ______ /_/_/\_\ /_/\_\/\_\ /\_\/_/\/_/\ \/_/\_\/_/\/ \_\/_/\_\/ \_\_\/_/ 我们将考虑上面的大小拼贴1(因为钻石的侧面是由一个/或\每个组成)。相同大小的瓦片2看起来像: ____________ / / /\ \ /___/___/ \___\ / /\ \ /\ \ /___/ \___\/ \___\ /\ \ / /\ / /\ / \___\/___/ \/___/ \ \ / /\ \ / /\ / \/___/ \___\/___/ \/ \ \ / /\ \ / …

8
创建仅似乎无法使用的编程语言(Robbers的线程)
有关更多信息,请参见cop线程。对这个问题的每个答案都应该在那里破解一个答案。也就是说,在该答案中给出的解释器中运行时,应该找到输入中第三大整数的代码。 如果您发布的裂纹被证明是无效的,则应将其删除,并且无权针对相同的答案进行其他尝试。 计分 这个问题的赢家是成功破解次数最多的强盗。

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.