Questions tagged «code-golf»

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

6
当try块中的所有内容都已被捕获时达到catch
我猜这仅限于Java和C#。 在此编程难题中,您将产生Exception可被捕获但又在catch块末尾再次抛出的。 try { while(true) try { // you are only allowed to modify code between this try { } brackets } catch(Exception ex2) { } } catch(Exception ex1) { // your goal is to reach this catch block by modifying the code ... // in the inner try block …

11
将ASCII文本转换为盲文
编写将ASCII文本转换为盲文输出的程序。要求: 输入可能来自stdin,命令行或其他外部输入源。 输出应可识别为盲文,输出形式由您决定。一个例子是o凸起的点和.非凸起的点。诸如此类的文本模式表示形式1-3-4是不可接受的。不需要长行换行。 最少需要26个字母字符和空格。解决方案不支持的所有输入字符都应忽略。 评分是根据源代码中的字符数进行的。罚款和奖金为: 使用Unicode盲文字符作为输出时,+ 50罚款。 支持大写字母,数字和标点符号的奖励为-50。 -200英镑奖金,用于支持英语(第2级)盲文的连字和单字母收缩。(这将是一个单独的挑战,因为这是一个完全不同的问题。) 样本调用和输出(最小解决方案): $ braille Hello world o . o . o . o . o . . . . o o . o . o . o o o o . o o . o . . o . . o o …
19 code-golf 

5
解决爱因斯坦之谜
爱因斯坦写了一个谜。他说,全世界98%的国家无法解决这个问题。 在上班的大约25分钟内,我解决了这个谜语。基本上只是推论。 谜语 连续有5座房子以5种不同的颜色。 每个房子里都有一个不同国籍的人。 这5位主人喝某种类型的饮料,抽烟某种雪茄和养宠物。 没有主人拥有相同的宠物,抽相同品牌的雪茄或喝相同的饮料。 问题: 谁拥有鱼? 为了解决这个难题,爱因斯坦提供了15条提示: 英国人住在红房子里。 瑞典人养狗作为宠物。 丹麦人喝茶。 温室在白宫的左侧。 温室的主人喝咖啡。 吸烟颇尔购物中心的主人饲养鸟类。 黄房子的所有者抽烟登喜路。 住在中心房屋的主人喝牛奶。 挪威人住在第一所房屋。 抽Blends的主人住在养猫的人旁边。 养马的主人住在旁边的吸烟者登喜路。 抽Bluemasters的老板喝啤酒。 德国人抽王子。 挪威人住在蓝房子旁边。 抽Blends的屋主与喝水的人住在一起。 有了这些提示,您就可以找到解决方案。 您的任务:编写一个程序来为您解决这个难题。不允许对解决方案进行硬编码(duh) 允许以任何格式对提示进行硬编码。 格式范例: //Hints in order (Nationality:Brit)==(Color:Red) (Nationality:Swede)==(Pet:Dogs) (Nationality:Dane)==(Drink: Tea) (Color:Green)/(Color:White) (Color:Green)==(Drink:Coffee) (Smoke:PallMall)==(Pet:Birds) (Color:Yellow)==(Smoke:Dunhill) (House:3)==(Drink:Milk) (Nationality:Norwegian)==(House:1) (Smoke:Blend)/\(Pet:Cats) ==等于 /表示 \的左侧=表示 / \的右侧表示左侧或右侧 就像我说的那样,它允许对提示进行硬编码或将其作为输入。 输出:输出应采用以下格式(具有正确的值,仅表示巨魔;)) …
19 code-golf 


3
啊!野兽在这里!
正如我们从IBM PC AT,YouTube(请参阅视频),Wikipedia(请参阅文章)和芝麻街所了解的: 字母H是字母表中最无情的字母! (即使实际上是由代码页437中的两个元素组成的,实际上,这种方式更无情。) 就像外星人一样,呃...呃... 外星人,野兽不懈地追求所有敢于靠近卵子的人。他们没有理由。如果不灭,就必须压扁它们。 对于这种情况,我们将假设您已经到了最后一生,并且您在没有卵的地形中遇到了野兽(如Wikipedia屏幕快照中所示)。您没有数字键盘,只能直接向上/向下/向左/向右移动...但是这些野兽显然有一个,可以在转弯时对角移动。 野兽在其选择中的移动选择将是使与玩家的距离最小化的选择。如果距离相等,则完成平局决胜,偏爱向左+向上胜于向右+向下,但这是明确的消歧矩阵...最低的平局决胜数: 1 3 4 2 H 5 6 8 7 野兽从不睡觉,但幸运的是,它们比玩家还慢。他们每隔一圈移动一次(通过在第二个回合开始他们的交替来让玩家领先。)如果可能的话,他们必须移动,无论这是否使他们离玩家更远。 如果将一列可移动的墙壁移动到封闭的缝隙中,则可以将其压碎。这些普通的野兽每头值2点。 输入项 一对整数,指示列大小,然后按行大小。 输入行的行数,每列大小...包含实心壁​​(#),活动壁(~),野兽(H),播放器(O)或仅一个空格。 输入将是U,D,L,R,表示玩家尝试移动...或等待等待的W。请注意,尝试推动被阻塞的可移动墙是合法的输入,只会导致不采取任何措施。 输出量 aHHHH! 如果野兽杀死了玩家...或者如果玩家赢了而没有剩下的野兽则一无所获 比分 (注意:出于调试目的和/或娱乐目的,您可能希望能够在每个步骤中输出状态;但这太长了,无法在此处发布。) 澄清说明 确保地图被实心墙包围。 谁依次移动的顺序对结果很重要。因此:玩家总是先走,然后如果您从左上到右从屏幕上扫过,则根据野兽的初始地图位置对其进行排序。(第1行的野兽移动到第2行的野兽之前,并且同一行上的两个野兽将是具有最低列号的野兽,然后移动到另一行) 对角移动的野兽可以移动到任何相邻的对角线开放空间中,而不管是否需要在墙壁之间挤压。 只要另一端有空间或野兽,玩家就可以将任何数量的可移动墙沿一条线推入。但是,尝试将一列墙壁推入没有固定在墙壁之间的野兽中时,会将野兽视为墙壁,并且不允许移动。 野兽在回合中的移动决定取决于玩家在回合开始时的位置。它对“玩家距离”的理想优化是通过“乌鸦飞翔”计算。从其正方形的中心到玩家正方形的中心测得的结果相同的任何近似值都可以。 如果由于较高优先级的野兽而无法将其作为第一顺位的行动,那么它将选择其第二个最佳选择,而不是保持原状(如果仍然可以采取行动)。 样品盒 简单粉碎 输入项 5 3 ##### #O~H# ##### R 输出量 2 偏好矩阵->死亡 输入项 5 …
19 code-golf  game  maze 

2
单数还是复数?
以下是30个单数和复数形式的英语名词的列表。您的工作只是写最短的正则表达式,以一种形式匹配所有名词,而以另一种形式都不匹配(容易,所有英语名词都s以复数形式结尾吗?)。 SINGULAR PLURAL --------- -------- car cars boat boats man men woman women omen omens bus buses cactus cacti spy spies pie pies louse lice mouse mice amice amices goose geese creese creeses person people child children siren sirens ox oxen foot feet tooth teeth formula formulae minx minxes sphinx …

10
命运笔记-在职员上放笔记
僵尸启示录已经来临,世界即将终结。突然,某人发现了一个公式,该公式需要当前的小时,分​​钟和日期,然后吐出一个完美的音符以弹奏钢琴,这会立即杀死每一个听到它的僵尸。不幸的是,世界上只剩下一名钢琴演奏者,他已经忘记了如何阅读笔记,但是他仍然知道如何阅读乐谱。当然,这是非常时间敏感的事情,因此拥有一台计算机似乎很自然。1个 您的挑战是记下一个音符(例如)G,并输出放在五线谱上(高音谱号)的音符,如下所示: ----- ----- | ---|- | --O-- ----- 规格: 您必须输出由-----(5点划线)和空白行组成的交替行。总共有5 -----s。注释必须叠加在此职员的上方。 输入将指定注释的位置。输入将是: 可选的H或L,指定“高”或“低” 从Ato 的字母G,指定音高 可选的#或b,指定为锐利或平坦。 “注释”定义为: 一个O(大写O)与工作人员中间对齐,位于笔记的位置。(最上面的一行是HF(高F),最下面的一行是E(正常E)。) 三秒|(竖线),茎,将为: 如果音符在中线(B)或上方,则在音符左侧留一个空格,然后向下移动(从音符下方开始一个空格),或者 音符右边的一个空格,如果音符在中线以下,则向上移动(从音符上方开始一个空格)。 如果在输入中指定,则在音符左侧直接一个#或b一个空格。 如果音符太高或太低,则必须添加分类帐行。这些行将是---(宽度只有3个破折号,而不是5个破折号),并且仅在注释在总帐本行的上方或下方(分别针对顶部/底部总帐行)时才显示。 多余的空间可以放置在您想要的任何位置;例如,如果可以帮助保存任何字符,则可以使空白行具有空格或在分类帐行之后具有空格。 这是一个可视化视图,为了更容易地理解规格,所有注释名称都位于各行旁边: HB --- HA HG ----- HF HE ----- HD HC ----- B A ----- G F ----- E D --- C LB --- LA …

25
增量博彩
几个月前,我把这个问题当作一次面试的难题。最近,在考虑博客材料时,它突然成为一个很好的例子,可用于从功能上解决问题。写完博客文章后,我将立即发布解决方案。 注意:这个问题是一年前在StackOverflow上提出的,在回答了几个(不正确)答案后被否决。我认为这是一个显而易见的面试或作业问题,因此被否决了。我们在这里的答案应该是经过深思熟虑的代码,以便有人不要考虑使用它们! 在比赛中,您使用以下策略下注。每当您输掉一个赌注时,就将下一轮的赌注值翻倍。每当您获胜时,下一轮的赌注将为一美元。您通过下注一美元开始本轮比赛。 例如,如果您以20美元开始,并且在第一轮中赢得赌注,在接下来的两轮中输掉赌注,然后在第四轮中赢得赌注,您将得到20 + 1-1-2 +4 = 22美元。 您应该完成函数,该函数带有g两个参数: 第一个参数是一个整数a,它是我们开始下注时所拥有的初始资金。 第二个参数是一个字符串r。结果的第i个字符将是“ W”(胜利)或“ L”(失败),表示第i回合的结果。 您的函数应该返回所有回合之后您将拥有的金额。 如果在某个时候您的帐户中没有足够的资金来支付下注的价值,那么您必须停止并退还当时的金额。 样品运行 1st round - Loss: 15-1 = 14 2nd round - Loss: 14-2 = 12 (Bet doubles) 3rd round - Loss: 12-4 = 8 4th round - Win: 8 + 8 = 16 5th …

29
确定胜出力
让我们打一些代码高尔夫! 给定井字游戏板状态(示例:) |x|x|o| |x|o|x| |o|o|x| 确定游戏是wina lose还是cat。给定状态,您的代码应输出所有这些选项。上面的游戏应该输出lose 需要明确指出的是:获胜定义为x连续3 秒(对角线,水平线,垂直线)。失败是o连续3 秒,而cat游戏却是连续3 秒。 为了使事情变得有趣,您需要确定状态的输入结构,然后必须对其进行解释。例如,xxoxoxoox如上所示是一个有效状态,其中从左到右,从上到下读取每个字符。[['x','x','o'],['x','o','x'],['o','o','x']]是以类似方式读取多维数组中的游戏。虽然0x1a9这是十六进制为110101001可能的工作作为一个适当的压缩,其中1可以针对被操纵xS和0可以被操纵o。 但这只是一些想法,我相信您可能会有很多想法。 基本原则: 您的程序必须能够接受任何可行的状态。 输入形式必须能够表示任何状态。 “获胜状态必须从董事会中确定” 假设一个完整的董事会 Win之前,lose例如在的情况下“xxxoooxxx” 最低字符数获胜
19 code-golf  game 

14
四个正方形在一起
拉格朗日的四平方定理告诉我们,任何自然数都可以表示为四平方数的和。您的任务是编写一个执行此操作的程序。 输入:自然数(10亿以下) 输出:四个数字的平方和等于该数字(顺序无关紧要) 注意:您不必进行暴力搜索!这里和这里的细节。如果有一个函数可以解决此问题(我将确定),则不允许这样做。允许自动素函数和平方根。如果存在多个表示,则任何一个都可以。如果选择进行暴力破解,则必须在合理的时间内(3分钟)运行 样本输入 123456789 样本输出(都可以) 10601 3328 2 0 10601 3328 2

12
确定土地是否被栅栏完全包围
想象一个二维的布尔值数组,其中0代表矩形土地上草的正方形,而1代表栅栏。 编写一个函数,该函数接受2D数组作为输入,并确定是否可以仅使用向北/向东/向西/向南移动来从任何一个草丛区域移动到任何其他草丛区域,而不会碰到篱笆。 如果阵列中的任何草地区域都被栅栏完全包围(这意味着您不能以N / E / W / S的方式到达阵列中的所有其他草地区域),则函数应返回false;否则,该函数将返回false。否则,它应该返回true。 下面是两个可以用作输入的示例数组,尽管函数不仅应该能够处理这些数组,而且还可以处理任何2D布尔值数组: 0 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 (should return true) 0 1 0 1 0 0 1 1 0 0 0 0 …
19 code-golf 

1
奎宁井字游戏
用您选择的语言编写一个程序,该程序可以在3 * 3板上与人类玩家玩井字游戏。但是,每一步都必须是从上一次迭代生成的不同程序。 评估人工输入的方式和方式由您决定,但是必须从标准输入中读取。同样,您可以自由选择一种方法来确定哪个玩家开始游戏(例如,您先问一个问题,或者您允许人类输入一个无效举动来表明计算机已经开始运转,或者其他想法)。 不需要验证动作,您可以假设一个公平的人类对手。 基本上,您具有与电路板状态相对应的程序。状态以任何可识别的方式打印,但是至少需要以下详细级别: X.. 00X x.. 在人类玩家输入动作之后,您的程序必须以相同的语言(标准输出或文件)将自身的下一个迭代生成为源文件并终止。不允许将信息存储在该源文件之外的任何其他位置。(您的程序不必构建和运行所生成的程序,它可以由用户完成-但是,这不是禁止的)。生成并运行生成的程序时,它的行为类似,显示状态,等待用户输入等。 在游戏结束时,您必须以任何明确的方式打印结果(无论您赢了还是平局)。 完美发挥,我的意思是程序一定不能输,如果有可能迫使获胜,那就应该赢。 最短代码获胜,第一个有效条目至少10天后选出获胜者。 如果您的程序可以处理下一个迭代的构建和启动,您的得分将减少10%。(我知道,这很可能不值得)当然,程序本身必须在下一次迭代接受用户的移动时终止。 如果您使用一些奇怪的不常见技巧,请在代码中附上简短的说明。
19 code-golf 

28
计算主要差距
寻找素数是程序设计的一种仪式,而且经常是某人创建的第一个严肃程序(通常是审判部门)。 但是,素数已经破旧了。接下来更有趣的事情是获得质数差距:连续质数之间的迄今为止最长的差距。这些是非常稀有和“珍贵的”。前几对及其区别是: 2 3 1 3 5 2 7 11 4 23 29 6 89 97 8 113 127 14 ... 我父亲过去常常手工计算出这些数据的趣味性,最高可达1万。让我们看看您能得到的代码有多短。 规则: 没有内置功能可用于主要测试,主要生成或主要差距 不能检索http://oeis.org/A002386或类似的东西(我可以闻到你很远的作弊者:)) 没有预先计算的数组 继续打印,直到内部整数类型对您失败 最少的字符数获胜。+10个字符(如果仅打印不带撇号的空格)。 如果有趣的话,您也可以展示带有内置函数的版本。要有创造力。 澄清:您经历了素数,并且每次看到的差距都比以往任何时候都要大时,您都要进行报告。例如,在3到5之间,有2个单位宽的间隙。5与7之间的差距也为2,但这已经是个老新闻了,我们不再关心。只有看到新的最大差距时,才进行报告。这反映出,随着差距越来越大,素数的频率越来越低。 编辑:大多数答案都是出色的,应该得到更多的认可。但是,到目前为止,具有48个字符的GolfScript条目是最短的。
19 code-golf  primes 

6
国际象棋-查找所有合法举动(cast子和传人除外)
编写最短的代码,根据给定的FEN字符串计算当前玩家的所有可能(合法)移动。什么是FEN字符串?(维基百科) 最短的代码胜出,语言无关紧要。 输出动作必须遵守国际象棋的移动规则, 除了传球,cast和典当提升外。 忽略检查,将死和僵持,国王也无法被捕获。 您可以设置输出不同,只要你想(例如:A2-A4,A2A4,a2a4,a2->a4...) 测试用例: #输入1: rnbqkbnr / pppppppp / 8/8/8/8 / PPPPPPPP / RNBQKBNR w KQkq-0 1 #输出1 A2-A4,A2-A3,B2-B4,B2-B3,C2-C4,C2-C3,D2-D4,D2-D3,E2-E4,E2-E3, F2-F4,F2-F3,G2-G4,G2-G3,H2-H4,H2-H3,B1-A3,B1-C3,G1-F3,G1-H3 #输入2 7k / 8/8/8/8/8 / PP6 / Q1q4K w--0 1 #输出2 A1-B1,A1-C1,A2-A3,A2-A4,B2-B3,B2-B4,H1-H2,H1-G1,H1-G2
19 code-golf  chess 

21
可逆换向器
您的任务很简单。该程序从标准输入中读取一行文本,并以字符反转的形式打印出相同的文本。不允许打印其他任何东西。 例如: 输入:“ Hello!”,输出:“!olleH” 要注意的是,如果源代码本身是字符反转的,则您的程序必须能够执行完全相同的操作! 评分:应用标准的代码高尔夫评分,并进行了以下修改以限制无聊 //margorp program// 风格答案:任何回文解决方案都会对分数加+ 25%,四舍五入。例如,如果您在程序中插入没有任何作用的字符,只是为了打破回文,这种惩罚仍然适用。

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.