Questions tagged «graphical-output»

这项挑战涉及在屏幕上绘制图片或生成图像文件。对于纯ASCII艺术比赛,请使用[ascii-art]。如果参与者可以在图形和ASCII艺术作品之间进行选择,请同时使用两个标签。对于图像输入,请使用[图像处理]。

2
水暖随机路径
编写一个包含三个整数,宽度w,高度h和步数的程序或函数s。您将在一个按像素图像上绘制很长的非自相交随机 s步长,其中每5 x 5像素单元为空(纯米色)或以下十二个简单“管道”之一:5*w5*h 上面的图像被放大以显示细节。这是实际尺寸的管道: (灰色线仅用于分隔管道类型。) 随机游走将是一条连续的管道路径,该路径从一个管道端点(底部四种管道类型之一)开始,到另一个管道端点结束。 从一个空w的h网格开始,并随机选择一个单元格作为起点。然后随机选择四个方向之一以开始并绘制相应的管道端点。这个开始的单元格标志着您步行的第一步,每当您绘制一个新的单元格或覆盖一个现有的单元格时,它便被视为采取的另一步骤。 现在,如果选择的方向有效,则反复地随机选择向右,向左或向右走,绘制适当的管单元。回溯并重新选择方向,直到s形成完整的步阶路径才有效。该路径应以管道端点结尾,该端点可以在网格上的任何位置,具体取决于路径所采用的路线。 重要的是要注意,只有两个直管单元可以被覆盖,并且只能被方向相反的直管单元覆盖,结果是相交单元。否则,必须将所有管道放置在空的单元格中。 绘制相交时,应将路径中距起始像元更远的部分绘制在顶部。 由您决定网格是否具有周期性边界条件(PBC),即,从网格一侧退出的管道是否会从另一侧伸出。如果没有PBC,则网格边界会像其他管道一样成为障碍。 特别案例 当s为0时,不应绘制任何管道,并且输出5*w的5*h图像应为空白(即所有米色)。 当s为1时,单个管道存根 (实际尺寸:) 应该在随机选择的起始单元格上绘制。 其他详情 您可能会认为这s是最多的,w*h因此一条路径永远是可能的。(尽管由于相交,可能会有更长的路径。) w并且h将始终是积极的。 所有随机选择都必须一致地随机。例如,即使这样会使问题变得更容易,您也不应避免在可能的情况下进行交叉。允许使用伪随机数生成器。 可以使用任何三种视觉上不同的颜色来代替黑色,蓝色和米色。 您的输出图像可能会被放大,以使它们实际上是5*w*k按5*h*k像素(其中k为正整数)表示的。(即使您k是1,也建议您放大发布的所有示例。) 可以使用任何常见的无损图像文件格式,并且可以将图像保存到文件,显示或原始输出到stdout。 以字节为单位的最短代码获胜。 例子 (全部放大了500%。) 如果输入为,w=2, h=1, s=0则输出将始终为: 如果输入是,w=2, h=1, s=1则输出将是这些图像之一,机会均等: 如果输入为,w=2, h=1, s=2则输出为 或可能 如果假定网格具有PBC。 (请注意,像这样开始路径将使第二步变得不可能。) 以下是w=3, h=2, s=6假设PBC的一些可能的输出: w=3, h=3, s=9假设PBC,这是的可能输出: 请注意,由于相交计算为两个步骤,因此路径不需要覆盖所有像元。同样,我们可以推断出拐角端点是起始像元,因为必须在之后绘制交叉点立交桥。因此,我们可以推断出做出的随机选择的顺序: start at top left, …

5
从正方形到六角形的无缝转换
对于在网格上进行的许多游戏来说,六边形是“明显优越的选择”。不幸的是,许多免费游戏美术网站仅具有用于正方形地图的无缝磁贴集。在过去的项目中,我使用了其中一些,并将其手动转换为六边形。 但是,我在晚年变得懒惰。用一个小的脚本来自动化该过程应该很容易。 但是,我在晚年变得懒惰。因此,我将其外包给您,并将其伪装成高尔夫挑战赛1。 输入项 输入是具有24位RGB颜色的任何常见图像格式的正方形图像。您也可以将文件名而不是图像数据本身作为输入。 您可以假设图像是正方形的,并且边长是四的倍数。 输出量 输出是输入图块,但转换为六边形(图像本身将是正方形,带有透明区域)。您可以将其保存到文件或显示在屏幕上。 同样,任何常见的图像格式都可以。如果您使用的格式支持透明,则背景区域必须是透明的。如果不是,您可以使用#FF00FF颜色(可怕的紫红色)作为替代。 方法 那么我们该怎么做呢?我使用2的方法在垂直方向上稍微挤压图像,但总体而言,对于大多数情况而言,它看起来都不错。我们将使用此输入图像做一个示例: 缩放:将图像缩放到3:2的比例。由于我们的图像将是正方形,这意味着您只需将它们缩放到75%的宽度和50%的高度即可。我们的示例输入为200x200,因此最终得到以下150x100的图片: 平铺:将缩放后的图像的副本放到2x2的网格中: 裁剪:从2x2网格中的任意位置抓取大小适当的六边形。现在,为了便于平铺,此六角形并非完全规则。在裁剪了原始大小的正方形(此处为200x200)后,您便裁剪了角落。裁剪线应从(大约)每个左侧/右侧的中心延伸到顶部/底部边缘的四分之一: 这就是您的输出! 这是平铺时的外观示例(此处放大): 这是代码高尔夫,因此以字节为单位的最短代码获胜。适用标准漏洞,依此类推。 1信不信由你。 2 此帮助站点中的方法一。

30
制作棋盘
在PHP挑战中看到了这一点。目的是用最少的代码制作具有64个方格(8 * 8)的棋盘。很简单,我用356字节的PHP代码制作了我的代码(我知道这并不令人印象深刻),我希望看到其他一些方法。只要保持原样,就可以用您选择的语言来完成,因此不会导入。最小字节数获胜。 输出应如下所示: 而我的代码: <table><?php $c='black';function p($c,$n){echo'<td style="width:50px;height:50px;background:'.$c.'"></td>';if($n==1){echo"<tr>";}}for($i=1;$i<=64;$i++){if($i%8==0&&$c=="black"){$c="white";$n=1;}elseif($i%8==0&&$c=="white"){$c="black";$n=1;}elseif(isset($n)&&$n==1){$n=0;}elseif($c=="black"){$n=0;$c="white";}elseif($c=="white"){$n=0;$c="black";}p($c,$n);} 还是可读的: <table><tr> <?php $color = 'black'; function printcolor($color, $nl) { echo '<td style="width:50px; height:50px; background:' . $color . '"></td>'; if ($nl == true) { echo "</tr><tr>"; } } for ($i=1; $i<=64;$i++) { if ($i % 8 == 0 && $color == …

3
放置卡尔卡松瓷砖
棋盘游戏 在棋盘游戏“ Carcassonne ”中,玩家通过匹配边缘来放置瓷砖,并通过创建较大的连续地形获得最高分。以下是(大致)游戏中包含的图块的类型和数量: #01 x4 #02 x5 #03 x8 #04 x2 #05 x9 #06 x4 #07 x1 #08 x3 #09 x3 #10 x3 #11 x4 #12 x5 #13 x3 #14 x3 #15 x2 #16 x5 #17 x5 #18 x2 #19 x3 #20 x1 #21 x5 #22 x2 #23 x1 …

8
Piet Mondrian组合的娱乐
下午好, 您的目标是在最少的源代码字节中重新创建Piet Mondrian的任何“ Composition”绘画(例如,Composition#10)。 重新创建可以使用实际的颜色,也可以使用Windows默认16调色板中的适当颜色替换它。 您的娱乐活动可以PNG,BMP或NetPBM格式输出到文件或STDOUT,或直接输出到屏幕。 您的休闲娱乐必须是512x512或更高的分辨率。 您的娱乐活动不得访问互联网。如果您的程序需要数据文件,则它们的大小将添加到源文件的大小中。 分数将是源文件的大小(以字节为单位)。 请在您的输入中注明您要重新创作的绘画,并提供原始图片和休闲图片的链接。 祝好运。

16
提取图像的RGB通道
在给定图像的情况下,要么作为输入(可能是RGB三元组),要么使用文件名作为输入(您可以假定图像具有特定的文件名,可能没有扩展名),则输出表示图像的单个颜色通道的图像。 您还将接受另一个输入,代表要输出的通道。输入可以是任何3个不同的符号之一。但是,符号必须是字符串或数字。但是,您不能将矩阵应用于输入数组。(例如{1, 0, 0},或{0, 1, 0})。 您将输出<input>输入图像的通道。您既可以将其保存到文件中,也可以输出一组RGB对。 您的程序对图像的大小(以px为单位)应该没有限制,并且必须支持.png,.jpg/ .jpeg/ .JPG或RGB三胞胎作为图像格式。(但是它可以支持任意数量) 测试用例: 红色通道: 绿色通道: 蓝色频道: 还有另一个测试用例,完全是红色的。 原始照片,红色,绿色和蓝色。(警告:看得太久的普通和红色通道太痛了) 另外2个测试用例: 原始,红色,绿色,蓝色。 原始,红色,绿色,蓝色。 后两个测试用例来自所有颜色的图像。

30
获取一个具有不同数字的随机n位数字,第一个不是0
我读了这个问题,并认为这将是一个不错的挑战。 任务 给一个输入0<n<10生成一个随机数 正好n位数字 第一个不是 0 所以 f(n)>10**(n-1)-1 不同的数字 获奖标准 这是代码高尔夫球,因此最短的代码获胜。 随机 我的意思是随机分布均匀。因此,从程序的角度来看,每个可能的数字都有相同的机会。如果您使用的语言具有一个奇怪的随机数生成器,则可以使用该生成器。 例 要从中随机选择的值的列表n=2是: [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, …
22 code-golf  number  random  grid  game  king-of-the-hill  javascript  code-golf  arithmetic  statistics  code-golf  math  code-golf  math  code-golf  string  palindrome  code-golf  string  interactive  code-golf  quine  polyglot  code-golf  string  stack-exchange-api  code-golf  number-theory  decision-problem  code-golf  tips  code-golf  string  internet  code-golf  graphical-output  image-processing  fractal  code-golf  ascii-art  geometry  hexagonal-grid  code-golf  string  restricted-source  hello-world  code-golf  game  code-golf  cipher  code-golf  permutations  cops-and-robbers  permutations  cops-and-robbers  code-golf  internet  stack-exchange-api  code-golf  ascii-art  random  code-golf  tips  code-golf  ascii-art  code-golf  code-golf  kolmogorov-complexity  code-golf  string  unicode  code-golf  number  sequence  primes  palindrome  code-golf  game  decision-problem  code-golf  math  geometry  code-golf  graphical-output  interactive  code-golf  set-partitions  code-golf  number  arithmetic  restricted-source  code-golf  decision-problem  python  recursion  code-golf  ascii-art  code-golf  source-layout  code-golf  function  recursion  functional-programming  code-golf  game  combinatorics  permutations  code-golf  string  file-system  code-golf  string  hashing  code-golf  stack-exchange-api  code-golf  string  code-golf  math  number  arithmetic  polyglot 

10
两种颜色的重叠圆
编写一个程序或函数,以您选择的合理格式接收以下输入: 两个正整数W和H定义要生成的图像的宽度和高度。 两种RGB颜色C1和C2将用于为图像着色。 形式的三元组列表,(r, x, y)用于定义在图像平面中具有半径r和中心的圆x, y。r是一个正整数,x并且y是任何整数。图像的左上像素为0, 0,x轴向右增加,y轴向下增加。 输出尺寸为W x H的图像,并用C1和C2着色,以使所有重叠圆所定义的两个相邻区域都不是同一颜色。 例如:如果输入是 W = 300 H = 200 C1 = (255, 200, 0) C2 = (128, 0, 255) Circles = (25, 50, 80), (40, 80, 120), (300, -100, 6), (17, 253, 162) 那么圆边界看起来像这样: 圆圈创建的图像中有六个不同的连续区域。每个区域必须用C1(黄色)或C2(紫色)上色,以使没有两个相邻的区域具有相同的颜色。 有两种方法可以做到这一点,它们唯一的区别是可以交换颜色: 因此,对于示例输入,这两个图像中的任何一个都是有效输出。 喜欢的东西这是因为两个黄地区彼此相邻无效的输出。 您的输出图像应遵循以下准则: 除了C1和C2,第三种中性色(例如黑色或白色)也可以用于圆形边界,只要它们的厚度不超过5像素即可。(上面的示例中存在黑色的1像素厚边界。) 但是,圆边界不是必需的。这些区域可以彼此直接相邻: …

8
产生模数红斑
很酷的东西 以下玫瑰色可以帮助计算模7。 为此,您必须从0开始并顺时针旋转第一个数字给出的若干步。然后,对于每个连续的数字,跟随箭头,然后顺时针旋转该数字给出的步数。 这是您处理294号的方法: 您从圈子0开始。 您顺时针旋转第一个数字给定的步数(即2,最终为2)。 您跟随那里的箭头(最终到达6)。 您顺时针旋转第二个数字给出的步数(即9,最终为1)。 您跟随那里的箭头(最终到达3)。 您顺时针旋转第三个数字给定的步数(即4,最终为0)。 294 mod 7 = 0(意味着294是7的倍数)。 (如果您仍然听不到视频说明) 目标 弄清楚它是如何工作的(我知道,但我不会告诉你)。 创建一个程序,该程序使用一个带数字n的参数,并为生成一个玫瑰红mod n。 玫瑰色可以通过任何您想要的方式显示(ASCII,生成PNG,生成SVG等),只要它可以被8岁的孩子使用(所以没有规则列表,我想要一张图片)! 您可以使用海峡线,即使它比我在本示例中所做的不够清楚,但您 必须使用某种咬尾箭头清楚地指出指向自己的数字。 测试用例 (我只给出数字之间的链接,一旦您的程序成功生成了它们,请随时编辑我的问题) 模式2: 0 -> 0 1 -> 0 模式3: 0 -> 0 1 -> 1 2 -> 2 模组4: 0 -> 0 1 -> 2 2 …

10
用这个修改后的圆平铺平面
取一个以原点为中心的单位圆。在任何两个相邻的象限中,将圆的曲线跨连接圆的x和y截距的线镜像。 使用生成的形状,可以平铺平面: 我用了不起的2D物理沙箱Algodoo制作了这张图片! 编写一个程序,以某种常见的无损图像文件格式输出与此图像相似的图像。您可以将图像另存为具有您选择的名称的文件,也可以只显示它。请勿输入任何内容。 规则: 必须使用任何两种视觉上不同的RGB颜色将整个图像与修改后的圆形图块进行镶嵌处理:一种用于垂直指向的图块,一种用于水平指向的图块。 圆形图块的半径至少应为32个像素。(上图中的半径大约为110像素。) 图像至少应宽4格,高4格。结合上面的规则,这意味着图像可以具有256×256像素的最小尺寸。(上图是4块x 4块。) 镶嵌可以任意转换。例如,图像的左上角不必是图块相交的顶点。(但是,不应旋转镶嵌。) 您可以使用具有用于绘制圆形和输出图像等命令的外部图形库。 曲线确实应该近似圆,就像使用中点圆算法可以做到的那样,大多数图形库都可以为您做到。 允许但不要求在图块边缘周围进行抗锯齿。 以字节为单位的最短提交获胜。

3
绘制Epicyclogons
一个外摆线是曲线上的圆上的点使得滚卷围绕另一个圆。甲cyclogon是形状上的一个点正多边形使得因为它跨过平面滚动。一个外延多边形是一条曲线在一个正多边形上围绕另一个点滚动时所跟踪的曲线。 编写绘制给予epicyclogon程序r,r1,r2,n1,n2: r = number of clockwise revolutions rolling polygon makes around stationary polygon (any real number as limited by float values) r1 = distance from center of stationary polygon to each of its vertices (positive real number) r2 = distance from center of rolling polygon to each of its …

30
你好世界窗口
创建一个窗口,里面说你好世界,别无其他。内部没有任何“确定”或“取消”按钮。它必须只是一个简单的窗口,向您问好世界。我不在乎窗口框架的内容或窗口的外观,但是在窗口内部只能说“ hello world”。 例: 最短的代码胜出。 编辑:对不起,约翰内斯·库恩(Johannes Kuhn)窗口必须实际停留在那儿,它可能不会立即关闭。我没有想到这种情况,因此没有考虑到这一点。 编辑2:我们目前有3个并列答案(20个字符)。任何关于谁应该是赢家的建议都值得欢迎。

16
还有一个程序,我出去了!
给定一个正整数嵌套级n和字符串s的打印的ASCII字符(到~,输出一个。方案,其中,以相同的语言运行时,输出一个程序,其输出程序输出该串s。 总计 n应该生成程序,所有程序都应以与您的答案相同的语言运行。 注意:您可以输出程序或函数-默认情况下,您可以将任何内容作为提交提交。 您可以s使用转义字符输入,以您的语言编写的程序或函数通常会如何输入字符串。 例 例如,给定n=1和s="recursion",Python 2程序可能输出: print "recursion" 运行此命令将输出: recursion 给定n=2和s =“ PPCG”,Python 2程序可能输出: print "print \"PPCG\" " 运行此输出: print "PPCG" 运行此输出: PPCG 相关(+标题灵感):还有一个LUL,我出门了 也相关(在沙箱中-现在已删除,但仍然可以以足够的信誉查看):源代码递归 测试用例 确保您的代码适用于以下测试用例(每行一个): n s 2 PPCG 4 Robert'); DROP TABLE Students;-- 17 Deep 2 Spaces In Here 3 "Don't forget quotes!" 5 'Backt`cks …
21 code-golf  recursion  code-golf  kolmogorov-complexity  board-game  code-golf  number-theory  polynomials  code-golf  code-golf  array-manipulation  polyglot  alphabet  answer-chaining  code-golf  sequence  math  atomic-code-golf  abstract-algebra  proof-golf  code-golf  internet  code-golf  internet  code-golf  ascii-art  kolmogorov-complexity  code-golf  math  ascii-art  number  integer  code-golf  decision-problem  binary-matrix  code-golf  number  sequence  number-theory  code-golf  math  decision-problem  matrix  abstract-algebra  code-golf  string  keyboard  code-golf  fractal  code-golf  math  sequence  combinatorics  hello-world  vim  code-golf  sequence  code-golf  graphical-output  image-processing  code-golf  decision-problem  matrix  linear-algebra  code-golf  ascii-art  code-golf  math  code-golf  ascii-art  graphical-output  code-golf  string  code-golf  string  substitution  code-golf  string  ascii-art  code-golf  arithmetic  code-golf  number  array-manipulation  decision-problem  code-golf  kolmogorov-complexity  code-generation  fractal  code-golf  ascii-art  kolmogorov-complexity  code-golf  ascii-art  code-golf  string  array-manipulation  code-golf  music  code-golf  array-manipulation  code-golf  internet  stack-exchange-api  math  fastest-algorithm  code-golf  binary  bitwise  code-golf  date  code-golf  string  code-golf  sequence  integer  code-golf  arithmetic  number-theory  code-golf  string  random 

7
后勤地图的奇特魅力
挑战的目的是大约绘制吸引所述的逻辑映射作为其参数的函数[R (也称为分支图),或它的一个子区。在Wikipedia的以下图像中可以看到该图形的外观: 背景 该逻辑映射是一个数学函数,其采用输入X ķ并将其映射到输出X K + 1定义为 x k + 1 = r x k(1− x k) 其中r是映射的参数,假定位于区间[0,4]中。 给定[0,4]中的r以及间隔[0,1]中的初始值x 0,有趣的是将函数重复应用大量N次迭代,从而产生最终值x N。请注意,x N也必将位于[0,1]中。 例如,假设r = 3.2,N =1000。初始值x 0 = 0.01得出x 1000 = 0.5130。对于x 0 = 0.02,结果为x 0 = 0.7995。对于任何其他初始值x 0,最终值x 1000都非常接近0.5130或0.7995。在图中将其视为水平位置r = 3.2 处的两条线的高度。 这并不意味着对- [R = 3.2的每个序列收敛于这两个值中的一个。实际上,对于上面考虑的两个初始值,序列为(请注意振荡行为): x 0 …

8
阿诺德的猫地图
挑战 给定具有相同宽度和高度的彩色光栅图像*,输出在Arnold猫图下转换的图像。(*详细信息见下文) 定义 给定图像的大小,N我们假定像素的坐标由0和之间的数字给出N-1。 然后定义阿诺德的猫图如下: 坐标[x,y]处的像素移动到[(2*x + y) mod N, (x + y) mod N]。 这只是圆环上的线性变换:由于,黄色,紫色和绿色部分被映射回初始正方形mod N。 该地图(我们称之为f)具有以下属性: 它是双射的,意味着可逆:这是矩阵的线性变换[[2,1],[1,1]]。由于它具有行列式1且仅具有整数项,因此逆数也仅具有整数项并由给出[[1,-1],[-1,2]],这意味着它在整数坐标上也是双射的。 它是图像双射图组中的一个扭转元素N x N,这意味着如果将其应用足够多次,您将获得原始图像:f(f(...f(x)...)) = x保证将图应用于自身导致身份的次数减少或等于3*N。在下面的内容中,您可以看到经过多次重复应用Arnold的cat map之后的猫的图像,以及重复应用的外观的动画: 细节 您的程序不必一定要处理图像,但是2D数组/矩阵,字符串或类似的2D结构也是可以接受的。 您的(0,0)点位于左下角还是左上角都没关系。(或在其他任何角落,如果使用您的语言更方便)。请指定您在提交中使用的约定。 测试用例 矩阵形式([1,2,3,4]是第一行,1具有index (0,0),2具有index (1,0),5具有index (0,1)) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 maps …

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.