编程拼图和代码高尔夫

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

3
让我成为窗口管理员!
我讨厌代码膨胀! 因此,我决定用高尔夫球版替换Windows 7系统。但是,我知道这并不容易,所以让我们首先构建一个原型。它将获取用户的窗口列表,并在标准输出上使用伪图形显示来显示它们。 例如:用户输入: 0,0,15,10 15,10,20,15 10,13,15,15 9,1,16,3 17,5,20,7 11,2,17,4 15,4,19,6 13,3,18,5 CodeGolf®Window Manager™输出: ────────────┐ │::::::::┌─────┴┐ │:::::::::││┌────┴┐ │::::::::└─┤:┌───┴┐ │:::::::::::└─┤::::├┐ │:::::::::::::└─┬──┘├┐ │:::::::::::::::├─┬─┘│ │:::::::::::::::│└──┘ │:::::::::::::::│ │:::::::::::::::│ └────────────┼ │::::│ │::::│ ┌────┤::::│ │::::││:::│ └────┴────┘ 输入: 来自标准输入(或者,如果您的系统没有stdin,那么任何可以提供多行输入的方法) 每行包含4个数字,以逗号分隔-窗口的坐标 前两个数字:左上角;最后两个数字:右下角 使用x,y符号 输出: 将其写入标准输出(或者,如果您的系统没有stdout,则显示等宽文本的任何内容) 使用代码页437中的单个框图绘制字符绘制窗口边界 稍后在输入中指定的Windows使先前指定的窗口模糊 用冒号填充窗口: : 开头和结尾的空格都可以,只要它们不中断窗口的对齐 笔记: 我要支持的最大分辨率:76(水平)乘57(垂直) 无需支持错误的输入 最大窗口数:255(如果需要限制) 我的Windows 7 cmdShell默认情况下显示代码页437个字符;如果有人可以在linux上(使用xterm或其他方式)执行此操作,请在此处进行描述 作为参考,字符代码为: …

9
模拟旋转板
介绍 您正在玩一个匹配的游戏,在该游戏中,硬币由于重力而插入顶部,然后跌至底部(位于顶部硬币上)。 所以这 O <- inserting this coin OO O OOOOO 会变成这个 O OO O OOOOO 现在想象有人顺时针旋转电路板。将发生以下情况: 1.旋转单板 OOO OO O OO O 2.硬币由于重力而掉落 O O OO OO OOO 你的任务 您的任务是通过编写程序或函数来模拟电路板的旋转。为了简单起见,我们只处理一种硬币(不是太刺激的配对游戏,是……)。您可以假定仅在旋转完成后才应用重力。电路板顺时针旋转。 输入值 输入将是一个字符串,其中包含3种类型的字符: O(大写o)或0(零)-一枚硬币(您决定解决方案支持的硬币) (空格)-空字段 \ n(新行)-行尾 输入代表板的状态。您可以假设输入格式正确,并且包含板的有效状态(没有硬币漂浮)。输入可以是功能参数,也可以从标准输入或文件中读取。 输出量 输出是旋转后板的新状态。输出包含与输入相同的3种字符。输出可以从函数中返回,也可以写入标准输出或文件中。 样品 输入1: O OO O OOOOO 输出1: O O OO …

7
极简主义的十六进制时钟
您面临的挑战是创建一个将时间显示为十六进制数字,将背景颜色显示为时间的十六进制颜色代码的时钟。 要求:无输入。在输出的中间,您应将数字符号和当前时间以24小时格式显示为“ #hhmmss”。程序应至少每秒更新一次到当前时间。文本必须居中且为白色(或突出的浅色)。背景应该完全是十六进制代码的颜色。最短的代码胜出,但鼓励创造性的答案。 现场例子。来自r / InternetIsBeautiful的想法。
14 code-golf  date 

7
斐波那契程序长度
编写一个长度为n的程序,该程序输出另一个程序,其长度为n之后的下一个斐波那契数。新程序必须做同样的事情-输出另一个程序,该程序的长度是下一个斐波那契数,以此类推 。n本身(原始程序的长度)不必是斐波那契数,尽管它可以是斐波那契数。 最短的代码获胜。 无需外部资源,仅ASCII,需要免费的编译器/解释器。 如果您的输出以换行符结尾,则也将对其进行计数。

28
随机选择一个与其他两个随机数不同的数字
已生成两个随机数A和B分别为1、2或3 您的工作是随机选择第三个数字C,该数字也可以是1,2或3。但是,C不能等于A或B。 是的,A可以等于B。 如果A = B,则C仅剩两个数字。 如果A不等于B,则C只能是一个数字。 假设已经为您选择了A和B 这就是在Python中创建A和B的方式 A = random.randrange(1,4) B = random.randrange(1,4) 假设这已经在您的代码中。 这是我在Python中想到的最短的 while True: C = random.randrange(1,4) if C != A and C != B: break 这就是A,B和C可以相等的。 1,2,3 1,1,2 2,3,1 3,3,2 这是A,B和C不能相等的 1,2,1 2,3,3 1,1,1 3,2,3
14 code-golf  random 

15
显示.txt文件中的帧
任务: 给定一个.txt文件,其中每个文件都有ASCII艺术图案,每个文件之间用分隔\n(如果不清楚,请参见本示例),以每秒1帧的帧输出运动图像。 请注意,\n最后一帧上有尾随。 每个框架尺寸为: X <80 Y <20 规则 在显示下一帧之前,必须清除上一帧,因此仅将每帧打印到终端上都不是有效的答案。 新建可以从文件名或sys args中获取所需的文件名。 新图像必须无限循环 这就是代码高尔夫:最小的程序胜出。 例 输入值 0 0 0 0 00000 0 0 0 0 00000 0 00000 0 00000 0 0 0 0 0 0 0 输出量 未打高尔夫球 import curses, time stdscr = curses.initscr() Frames = file.read(file('Frames.txt')).split('\n') while True: …
14 code-golf 

1
设计和解决迷宫[在沙箱中暂停]
你的任务是扮演的角色都在角色这一幕从成立。在其中,Cobb给Ariadne带来了挑战: 您有两分钟的时间设计一个迷宫,需要一分钟的时间来解决。 该描述将有一些自由。最重要的是,这种挑战不是基于时间的,而是基于迷宫和迷宫求解器的效率来得出分数。 对于此挑战的许多修改,我们深表歉意,因为我们正朝着一种简单而公平的格式过渡。 第一部分:迷宫格式 所有的迷宫都是正方形。迷宫中的一个单元表示为零索引元组row column。 墙由两个二进制字符串表示:一个用于水平墙(阻止行之间的移动)和用于垂直墙(反之亦然)。在NxN迷宫中,Nx(N-1)每种类型的墙壁都有可能。让我们以一个3x3的示例为例,其中标记了单元格: A B | C --- D | E F --- G H | I 所有可能的垂直墙为:AB BC DE EF GH HI。转换为字符串,显示的墙壁011001用于垂直墙壁和010010水平墙壁。另外,“二进制字符串”是指“字符'0'和'1'”。 完整的迷宫格式是一个字符串,其中包含以下顺序: 宽度 开始元组 末端细胞元组 水平墙 垂直墙 例如,这个迷宫: 0 1 2 3 4 _________ 0 | | E| _| 1 | _|_|_ | …

5
解决旋转难题
在一些旧的诺基亚手机上,有一个名为“旋转”的十五个谜题的变体。在此变体中,您不必一次滑动一个图块,而是在一个方向上一次旋转了四个图块。 在这个游戏中,您将从这样的棋盘开始: 4 9 2 3 5 7 8 1 6 通过顺时针旋转左下块两次,并顺时针旋转左上块,您将得到以下信息: 4 9 2 8 3 7 1 5 6 4 9 2 1 8 7 3 5 6 1 4 2 8 9 7 3 5 6 和1瓷砖是在它应该是左上角。最终,经过几步移动,您最终得到: 1 2 3 4 5 6 7 8 9 这是“原始”配置。 …

14
引发空指针异常
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 您的任务是生成一个空指针异常。也就是说,您的程序必须接受一个预期为非空的值,并由于该值为空而引发异常/错误或崩溃。 此外,从读取代码中不能明显看出该值为null。您的目标是使读者清楚地知道该值不为null,即使实际上是非null。 除了null之外,您还可以使用nil,none,nothing或您的语言中的任何等效项。您还可以使用未定义,未初始化等。 您的代码的问题必须是该程序期望一个非null的变量(令人惊讶地)为null。 您的程序可以通过引发异常,引发错误,崩溃或在遇到意外的null时通常执行的操作来响应null。 这是一次人气竞赛,请多加注意!

8
几乎等平的苍鹭三角形
一个几乎等边海伦三角形是与以下形式的整数长度的三角形n-1,n和n+1并且还具有整数区域。前几个是: 3, 4, 5 -> 6 13, 14, 15 -> 84 51, 52, 53 -> 1170 任务:生成最短的程序,输出该n三元组。(提示:这是一个已知序列)。 获奖者将于2014年5月2日入选。

15
呼吸时间!
旋转描记器是一种抽取次摆线和次摆线的玩具。对于这个挑战,我们将只关注下摆线。 来自维基百科: 下摆线是由与半径为r的圆相连的点围绕半径为R的固定圆的内部滚动而形成的轮盘赌,其中该点为距内部圆心的距离d。 它们的参数方程式可以定义为: 其中θ是由水平和滚动圆的中心形成的角度。 您的任务是编写一个程序,绘制上面定义的点所跟踪的路径。作为输入,您将获得R, r和d,所有介于1和200之间的整数(包括1和200)。 您可以从标准输入,参数或用户输入中接收此输入,但是不能将其硬编码到程序中。您可以以最方便的方式接受它;如字符串,整数等。 假设: 输入单位以像素为单位。 R > = r 输出应该是输入定义的下摆线的图形表示。不允许使用ASCII或其他基于文本的输出。该图像可以保存到文件或显示在屏幕上。包括输出的屏幕截图或图像,以供您选择输入。 您可以根据对比度限制为路径/背景选择任何喜欢的颜色。这两种颜色必须具有至少相差一半的HSV“值”分量。例如,如果您要从中测量HSV [0...1],则至少应有0.5差异。两者之间[0...255]应该有最小的128差异。 这是一个代码高尔夫,源代码的最小大小以字节为单位。

4
比较两个扑克手
挑战: 给定两张五张牌,通过标准手牌排名确定哪一个获胜。 输入: 十张卡,它们之间用空格隔开,这些空格与stdin或用作命令行参数,以您更喜欢的形式为准。前五张牌是玩家1的手,后五张是玩家2的手。每张卡都是RS格式的两个字母字符串,其中R是等级,S是适合的。等级范围为2-9,T代表10,J,Q,K和A分别代表Jack,Queen,King和Ace。西装分别是H,D,C,S,分别代表Hearts,Diamonds,Club和Spades。您必须输出获胜玩家的号码:“ 1”或“ 2”。 卡示例: AS - the Ace of Spades QD - the Queen of Diamonds 2C - the Two of Clubs TH - the Ten of Hearts 输入到输出示例: 5H 5C 6S 7S KD 2C 3S 8S 8D TD -> 2 说明:玩家1有一对5,而玩家2有一对8。 5D 8C 9S JS AC …
14 code-golf  game 

7
在此生成的二进制矩阵中打印特定值
假设我们以这种方式在M上N^2 -> {0, 1}(N从1代替0)开始定义一个无限矩阵: M(1, 1)= 0。 对于每个x > 1,M(x, 1)= 1if x是素数,0否则。 对于每一个y > 1,M(1, y)=的y中日长期Thue-Morse sequence。 对于每个x, y > 1,M(x, y)= M(x, y-1) + M(x-1, y) mod 2。 该16x16矩阵的左上部分看起来像(具有x行和y列): 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 …

3
找到最佳的起步动作
Chomp是一款两人游戏,具有矩形的碎片设置。每个玩家轮流移除任何棋子,以及其上方和右侧的所有棋子。拿到左下角的人都会输。可以很容易地证明第一个玩家总是有获胜的举动(除非有1 x 1矩形);找到它。 输入为矩形的尺寸(两个数字) 输出是获胜举动的位置(两个数字) 如果有多个获胜举动,则可以输出其中任何一个。 这是代码高尔夫;最短的代码(任何语言)均获胜。 例子 注意:输出仅是两个数字。下面的ASCII文字只是为了演示数字的含义。 输入:5 3(从左下角开始以1为索引) 输出:4 3 XXX-- XXXXX XXXXX 输入:4 4 输出:2 2 X--- X--- X--- XXXX 奖金 如果您输出所有获胜的动作,请从您的分数中减去15个字符。每对数字必须用换行符分隔。
14 code-golf 

4
带狗散步
我的狗在咆哮着我,但是我懒得带他去散步。我有个主意!我会邀请Code Golf的人为我做! 您的挑战是模拟狗的行走。这是walking狗的规则: 人类(H)将从0,0(笛卡尔)坐标平面开始,并将每秒随机地向上,向左,向右或向下移动一个空间。 狗(D)将在同一位置开始,并且每秒向上,向左,向右或向下移动零个,一个,两个或三个空格(当然是随机的)。狗的可预测性较差,有时会跑得更快或完全停止。 狗与人的距离永远不会超过一定数量的单位(以欧几里得距离为单位),这就是皮带的长度(L)。例如,如果L为6,则有效位置为H(0,0) D(4,4)(因为距离约为5.65单位),但不是H(0,0) D(5,4)(约6.4单位)。 如果狗在移动时会违反皮带距离要求,则它必须在不违反距离要求的确定方向上走得尽可能远。例如,如果位置为,H(0,0) D(3,4)并且随机决定将狗向右移动3个空格,它将转到D(4,4),因为这是它可以走的最远距离而不会超过6个单位。(请注意,这可能导致移动0个空格,即完全不移动!) 杂项规则:人类先行。人不得超过其移动的皮带长度。如果是这样,它必须选择另一个方向。“随机”是指“分布均匀且没有图案”。 输入将以以下格式给出(可以是STDIN,函数参数,文件等): "<amount of seconds the walk will last> <leash length>" 例如: 300 6 // a 5 minute walk with a 6 yard leash 您必须使用以下格式提供输出(可以是STDOUT,函数返回值,文件等): H(0,0) D(0,0) H(0,1) D(2,0) H(1,1) D(2,1) H(1,0) D(2,-1) ... (seconds + 1由于H(0,0) D(0,0)不计算行数,因此输出的行数为。) 这是代码高尔夫球,因此最短的代码(以字节为单位)将获胜!
14 code-golf  random 

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.