Questions tagged «code-golf»

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

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 

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 这是“原始”配置。 …

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 

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 

24
合并两个排序列表
合并排序 在此挑战中,您将实现合并排序的合并子例程。具体来说,您必须创建一个函数或程序或动词或类似词,该函数或函数或类似物包含两个列表,每个列表以升序排列,然后将它们组合成一个列表,以升序排列。要求: -您的算法必须在输入大小上采用渐近线性的时间量。请停止提供O(n ^ 2)个解决方案。 您不得使用任何能够对列表进行排序或合并列表的内置函数。作者的自由裁量权。 该代码应能够处理重复的元素。 不用担心空列表。 例子: merge([1],[0,2,3,4]) [0,1,2,3,4] merge([1,5,10,17,19],[2,5,9,11,13,20]) [1, 2, 5, 5, 9, 10, 11, 13, 17, 19, 20] 这是代码高尔夫球,所以可能最短的代码获胜!

2
填字游戏强迫!
克里斯,一个神秘的填字游戏瘾君子,针对其解决顺序有一套固定的算法。 我们将使用以上图像作为指导。 克里斯总是从第一个交叉线索开始,在这种情况下是1 Across。克里斯是一位能力强的填字游戏爱好者,因此假设他将始终知道他正在研究的线索的答案。 克里斯完成一个线索后,他将检查与已完成的线索相邻的所有线索(在第一种情况下为1 Down,2 Down和3 Down),然后以最低编号完成该线索。如果没有相邻的线索,他将转到步骤3。 如果线索使下一个数字(如步骤3中所述)同时具有交叉线索和向下线索,则他将首先完成跨线索(确定性为100%,这在OCD上是边界!)。 如果没有相邻的线索,他将转到下一个数字上的下一个可用线索(交叉或向下) 从第2步重复进行,直到完成所有线索。 亲爱的程序员,这就是您的责任所在。您的任务是创建代码,该代码可以在提供了填字游戏模板后,根据Chris解决问题的算法提供描述线索顺序的输出。 该代码将接受填字游戏模板的输入,其形式为.代表白色正方形和#代表黑色正方形。 范例: .....#......... .#.#.#.#.#.#.#. ...#...#....... .#.#.#.#.#.#.#. ....#.......... ##.#.#.#.#.#.#. ......#........ .###.#####.###. ........#...... .#.#.#.#.#.#.## ..........#.... .#.#.#.#.#.#.#. .......#...#... .#.#.#.#.#.#.#. .........#..... 输入可以通过以下方式进行:a)读取填字游戏的表示形式的文件,或b)填字游戏的每一行的行输入,后跟\n,第二个\n指示EOF。 然后,它将根据上面描述的算法确定克里斯解决该问题的方法。 输出必须采用一系列逗号分隔的指令格式,格式为n(A|D),其中n是线索编号,其后为Afor或Ddown。 因此,在上面的示例中(来自图像和示例模板,两者是相同的),输出将是: 1A,1D,2D,3D,9A,10A,4D,5D,6D,7D,8D,11A,12A,13A,15A,14D,15D,16A,17A,18D,19D,20A,21D,23A,22D,24A,25D,27A,28A,26D,29A,30A,31A 最短的代码胜出... 测试中 您必须在提交时提供代码,字节数以及以.和#格式表示的四个测试用例之一,以及从此输入生成的输出。有四个测试用例,以下三个以及上面的示例模板。 测试用例示例: 测试用例1 .....# .#.#.# ...#.. .#.#.# .....# ##.#.. 输出: 1A,1D,2D,3D,4A,5A,6A,7A 测试案例2 .....#.. .#.##..# …

21
寻找局部极端
编写一个接受列表并生成局部极值列表的函数或程序。 在列表[x_0, x_1, x_2...]局部极值是x_i这样x_(i-1) < x_i和x_(i+1) < x_i或x_(i-1) > x_i和x_(i+1) > x_i。请注意,列表的第一个和最后一个元素永远不能是局部极值。 所以对于一些例子 local_extremes([1, 2, 1]) = [2] local_extremes([0, 1, 0, 1, 0]) = [1, 0, 1] local_extremems([]) = [] 这是代码高尔夫球,所以最短的代码获胜!
14 code-golf 

7
解决反向箭头迷宫
这是一个“箭头迷宫”: v < > v > ^ > v ^ < * 该*标志的地方在那里你会完成。您的目标是找到迷宫的起始位置(因此称为反向迷宫)。在这种情况下,它>是第二行的第一行。 v------< S-+---v | | >--^ >-+-------v ^ < * 请注意,必须使用所有箭头。另请注意,您可以假设将用等长的空格填充行。 您的程序必须以任何合理的方式输入迷宫(从文件,消息框等输入stdin),但是迷宫必须是完整的。例如,您不能输入以逗号分隔的行;输入必须完全是迷宫。 您必须以任何合理的方式输出迷宫的起点。例如,您可以 输出起点的坐标 输出整个迷宫,开始箭头替换为 S 输出除开始箭头外的所有箭头的整个迷宫(保留空白)! 等等 只要您可以通过输出判断哪个箭头是开始箭头,那么就可以了。例如,输出 "0" "2" 没关系,无论换行和引号如何,因为您仍然可以知道开始的位置。 这是code-golf,因此以字节为单位的最短代码将获胜。
14 code-golf 

12
脑力激荡的方向
您的任务(如果您选择接受它的话)是构建一个程序,该程序分析并评估给出方向(左或右)的令牌字符串(从左到右,具有任意长度)。这是四个可能的标记及其含义: > go right one single step < go left one single step -> go right the total amount of single steps that you've gone right, plus one, before you previously encountered this token and reset this counter to zero <- go left the total amount of single steps that …

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.