编程拼图和代码高尔夫

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

2
绘制3D网-阿基米德固体
我对3d蚊帐有一个缺点,当将其剪裁和折叠后,可以用纸或卡片制作3d形状。任务很简单,编写了可以用最短的程序绘制13个阿基米德固体的网。输出应该是任何合理格式(png,jpg)的图像文件。 在http://en.wikipedia.org/wiki/Archimedean_solid以及从此处获取的下表中,描述了所有13种形状。 输入: 1到13之间的整数。假设形状的编号与上表完全相同,因此“截头四面体”为1,“双十二面体”为13。 输出:包含该形状网的图像文件。只需包括内部线条的轮廓即可。无需用颜色填充 您可以使用自己喜欢的任何编程语言,也可以使用不是专门为这次比赛而制作的任何库。两者都应该在线免费提供(从两种意义上来说)。 我会在一周的时间内接受最少字符数的答案。 只要有答案,答案就会被接受。 (否)获胜者。 遗憾的是没有有效的进入者。也许太难了?
12 code-golf 

4
设置我的微波炉[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 我很懒惰,所以我尽量总是用最少的按键来编程微波炉。我的微波炉有以下按钮: 一个“分钟加”按钮,只能先按一下,并表示“开始”。可能会多次按下它几分钟,但不会在手动输入的时间上增加一分钟。 输出量+ 一组0-9按钮。时间输入为MMSS(即“ 130”表示1分30秒)。秒的范围从0..99。因此,“ 130”和“ 90”是等效的条目。显然,即使输入的秒数部分超过59,每分钟也是60秒。 输出0..9 如果手动输入时间,则必须按下“开始”按钮才能启动微波炉。 输出量S 我的食品包装以MM:SS指定时间,因此程序必须接受该输入。 例子 1:00是+(记住“分钟加”表示开始) 1:01是61S(秒可以超过59,但是“分加”不能与数字结合使用-我认为这是我微波炉的设计缺陷) 9:00是900S(比短+++++++++)

6
扫雷器
与生成扫雷器网格类似,尽管面临的挑战是要使扫雷器网格正常工作。 这将比普通代码(我认为)更长的代码。 有关扫雷的更多信息。 扫雷(Minesweeper)是大多数操作系统上都能找到的逻辑游戏。该游戏的目标是确定地雷在网格上的位置,并给出指示该点周围地雷数量的数字。 所需功能: -Randomized mine generation -8x8 field with 10 mines -Mine and "unknown" flags -Reveal nearby blank spaces when a blank space has been revealed. -Input and output code: It must be playable. (Input and output code counts in the total) 计分注意事项: Anything that is needed to …

6
得分Yahtzee游戏
对于Yahtzee计分表的13行中的每行,您都会(从stdin中)获得一个由5个数字(骰子)隔开的列表。您的任务是计算每条线的分数并输出游戏的总计。 例 输入及其解释: Input Box Score 6 1 4 1 3 Aces 2 3 2 2 1 2 Twos 6 6 3 2 3 3 Threes 9 4 2 3 6 5 Fours 4 6 3 5 5 1 Fives 10 1 5 6 5 6 Sixes 12 Bonus - …
12 code-golf  number  game 

12
寻找最“独特”的词
使用您选择的语言,编写最短的函数/脚本/程序,以识别文本中唯一字母数量最多的单词。 唯一字母应使用UTF-8编码包含任何不同的字符。 相同字符的大写和小写形式不同且不同; 'a' != 'A' 单词受任何空白字符限制。 “字母”是可以用单个unicode字符表示的任何符号。 文本文档必须由您的代码读取-不允许对文本进行预加载/硬编码。 输出应该是单词,然后是唯一字母的计数。 llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch - 18 两个值之间的任何定界符/间距都取决于您,只要有至少一个字符将它们分隔即可。 如果存在多个单词且具有最高计数,请打印该单词的所有单词,并用新行分隔。 超级肯定-16 伪lambranchiate-16 这是代码高尔夫,所以最短的代码获胜。 这个关于English.SE的答案启发了我去挑战。该示例仅使用单词列表,但是任何文本都应能够处理。
12 code-golf  word 

5
使用ASCII艺术显示长乘法
挑战 编写一个程序,该程序从标准输入中获取两个整数,并用逗号分隔,然后将这两个整数的长倍乘积打印到标准输出中。 例如: 输入值 14, 11 程序输出 14 x11 _____ 14 14 ______ 154 输入值 -7, 20 程序输出 -7 x20 _____ 00 14 _____ -140 假设输入和数字始终在[-999,999]范围内正确 获奖标准 最短的代码胜出!

27
从字符串中删除唯一元素
我遇到了这个问题,因为在字符串中查找唯一字符似乎是非常常见的用例。但是,如果我们想摆脱它们怎么办? 输入仅包含小写字母。仅使用从a到z的字母。输入长度可以是1到1000个字符。 示例: 输入:helloworld 输出:llool 目标:最短的代码胜出 语言:TIOBE语言的前20名
12 code-golf  string 

4
绘制任意大小的平铺立方体
用ASCII艺术画一个任意大小的平铺立方体。 您将得到三个数字a,b和c,程序将输出一个a * b * c大小的立方体。 例子 3 3 3 -> ____ ____ ____ /____/____/____/| /____/____/____/|| /____/____/____/||| |____|____|____|||/ |____|____|____||/ |____|____|____|/ 5 2 3 -> ____ ____ ____ ____ ____ /____/____/____/____/____/| /____/____/____/____/____/|| /____/____/____/____/____/||/ |____|____|____|____|____||/ |____|____|____|____|____|/ 4 6 5 -> ____ ____ ____ ____ /____/____/____/____/| /____/____/____/____/|| /____/____/____/____/||| /____/____/____/____/|||| /____/____/____/____/||||| |____|____|____|____|||||| |____|____|____|____|||||/ |____|____|____|____||||/ …

2
Code Golf:宇宙飞船的命运是什么?[浮点版本]
这个问题比ASCII艺术版本要难一些。没有艺术,现在您可以进行浮点运算了! 挑战 当船上发生天文爆炸时,USS StackExchange正在穿越cg-00DLEF行星的重力场。作为该船的首席程序设计官,您的工作是模拟船的轨迹,以预测您是否会被迫撞倒cg-00DELF的太阳系中的土地。在爆炸期间,您的船严重受损。由于飞船的免费DEEEPRAROM *有限,因此您必须以尽可能少的字符编写程序。 *动态可执行电子擦除可编程随机存取只读存储器 模拟 有点像ASCII艺术版本,会有时间步伐的想法。在另一个版本中,时间步长是相对较长的时间:船舶可以在单个时间步长中超越行星的重力行进。在此,由于所涉及的距离较大,因此时间步长要小得多。然而,一个主要的区别是不存在细胞。飞船的当前位置和速度将是浮点数,以及所涉及的重力。另一个变化是,行星现在的尺寸更大。 模拟中最多有三个行星。这三个都将具有特定的位置,半径和重力。每个行星的重力是一个向量,直接向行星中心施加力。查找该矢量强度的公式为(Gravity)/(Distance**2),其中距离是从船到行星中心的精确距离。这意味着重力可以到达的地方没有限制。 在任何特定时间,飞船都有一个速度,即它从最后一个时间步到现在的距离和角度。该船也有动力。它在当前时间步与下一时间步之间行进的距离是其当前速度加到该位置所有重力矢量的总和。这成为飞船的新速度。 每个模拟的时间限制为10000个时间步。如果太空飞船在行星内部移动(比行星的半径更靠近行星的中心),则它会撞入该行星。如果到模拟结束时飞船没有坠入任何行星,则可以认为它已脱离重力。这艘船不可能如此完美地对准,以至于它能够在10000个时间步长上坠毁而设法在轨道上停留10000个时间步长。 输入值 输入到STDIN的四行。每行由四个逗号分隔的数字组成。这是数字的格式: ShipLocX,ShipLocY,ShipVelX,ShipVelY Planet1LocX,Planet1LocY,Planet1Gravity,Planet1Radius Planet2LocX,Planet2LocY,Planet2Gravity,Planet2Radius Planet3LocX,Planet3LocY,Planet3Gravity,Planet3Radius 如果少于三个行星,则剩余线将对所有值填充零。这是一个示例输入: 60,0,0,10 0,0,4000,50 100,100,4000,50 0,0,0,0 这意味着太空飞船位于(60,0),并且以“ 10个单位/时间步长”的速度直线“向上/向北”行驶。有两颗行星,一颗位于(0,0),另一颗位于(100,100)。两者的重力为4000,半径为50。即使所有这些都是整数,它们也不总是整数。 输出量 输出将是一个字到STDOUT,以告诉飞船是否坠毁。如果船舶坠毁,请打印crash。否则,请打印escape。这是上述输入的预期输出: crash 您可能想知道发生了什么。这是一个Pastebin帖子,其中包含该飞船的详细飞行日志。数字并不能很好地帮助人们可视化事件,所以这是发生了什么:飞船设法借助第二个行星(向东北)的引力逃脱了第一个行星(向西)的引力。它向北移动,然后略微经过第二个行星的西面,几乎没有丢失它。然后,它绕行星的北侧弯曲并撞向第二颗行星的东侧。 其他一些案件进行检查 60,0,10,-10 0,0,2000,50 100,100,1357.9,47.5 0,0,0,0 逃逸(由于平方反比定律,如果您离60个单位远,则2000重力不大) 0,0,0,0 100,100,20000,140 -50,-50,50,50 -100,-100,50,50 坠毁(第一颗行星非常巨大且非常接近) 0,0,0,0 0,0,0,0 0,0,0,0 0,0,0,0 逃脱(这是一个极端的情况:没有行星,直接的解释将表明飞船直接在行星的顶部) 规则,限制和注释 这是代码高尔夫。适用标准代码高尔夫规则。您的程序只能用可打印的ASCII字符编写。您无法访问任何类型的外部数据库。您可以用任何语言(除了专门用于解决此挑战的语言)编写条目。 结束传输

26
去嵌套列表
给定一个列表,该列表中嵌套有列表,请返回该列表,其中嵌套列表的项目已取消嵌套。 输入值 该列表最多具有4个深度的嵌套列表。将输入中的所有0计数为空空间。 输出量 分别打印出每个项目。不要将输出作为列表打印。您可以使用任何类型的空格分隔每个项目。 案例案例 [[1, 0], [2, 0], [2, 3]] -> 1 2 2 3 [[[4, 5, 8]], [[5, 6, 20]], [[1, 20, 500]]] -> 4 5 8 5 6 20 1 20 500 [[[1, 0], [0, 0], [0, 0]], [[1, 0], [1, 2], [2, 0]], [[2, 0], …
12 code-golf 

1
做点好吃的![关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 您的挑战是编写一个既可以用作食谱又可以用作程序的Chef程序。严格要求将其用作食谱(我不想要巧克力芥末酱中的葡萄叶食谱);它作为程序的实用性是一个较宽松的要求,因此足以打印一些有趣的东西(例如,前几个整数,或者“仅仅是另一个厨师”,或者“只是另一个厨师黑客”,或者“你好,世界”),或者做一些有用的计算(例如打印两个数字的和)。投票应考虑到这一点,赢家是一段时间后获得最多净投票的节目。 (代码长度在这里并不重要。)

11
演示语言完整语法的最短程序
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 3年前关闭。 挑战 编写最短的程序来演示编程语言的全部语法:语句,表达式,运算符,保留字等。 采用该语言的语法(通常在EBNF中)并创建一个使用所有语法的程序。 该程序不需要做任何特别有用的事情,但是如果这样做的话,那是一个好处:) 规则 您必须使用该语言的所有语法:该语言定义的每种类型的语句,表达式,运算符,关键字等。 除了语言附带的标准库(它不需要使用整个标准库)以外,它必须能够无依赖地运行。 包括指向您所使用的语言规范的链接(例如,这里是Python 2.7语法)。
12 code-golf 

13
创建一个ascii进度条
好吧,这类似于这个问题,但有一点区别。您必须编写一个程序来询问进度条的宽度以及完成了多少工作。然后绘制具有以下功能的进度条: width表示绘制进度条必须使用多少个字符 进度是通过介于0.1.1之间的浮点值给出的 进度栏中的第一个和最后一个字符应与所有其他字符不同,例如“ [”和“]” 您的程序应使用两个不同的字符来表示自开始以来已完成的进度 您必须使用十进制数字+“%”符号在进度条的中间写出要完成的工作量。 处理极端输入(例如完成的150%或-5%)的奖励积分。 得分字符数*(1个不带奖金或0.75个宽度的奖金) 有效输出的一些示例 79 0.15 [|||||||||||| 15% ] 25 0.76 [##########76%#####.....] 39 -0.12 [ -12% ] 25 7.6 [##########760%#########]

16
查找单手单词
“夸大”是一个单词的示例,可以在普通的qwerty键盘图的左手输入。“垄断”就是右手的一个例子。 在unix words文件中搜索可以输入的单词。输出应为两行:左手用空格分隔的单词列表,后用右手列表。例如 a abaft abase abased abases abate abated abates abbess abbesses ... h hi hill hilly him hip hippo hippy ho hokum ... 左边的字母是: qwertasdfgzxcvb 右侧字母为: yuiophjklnm' 大写字母为单手;带变音符号的字母算作双手,因此包含它们的单词可以忽略。
12 code-golf 

4
从前缀表示法转换为前缀表示法
给定一个算术表达式,可以包括括号(()),指数(^),除法(/)和乘法(*),加法(+)和减法(-)(按该操作顺序),例如 a ^ (2 / 3) * 9 * 3 - 4 * 6 以前缀表示法输出相同的表达式。 (- (* (* (^ a (/ 2 3)) 9) 3) (* 4 6)) 输入和输出中的空格都是可选的。您可以假定所有运算符都是左关联的,并且表达式中的所有数字都是一位整数(即[0-9])。 这是一场代码挑战赛,因此最短的解决方案将获胜。
12 code-golf  math 

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.