Questions tagged «tiling»

对于涉及将空间(通常是平面)划分为没有间隙的小块(通常使用有限的一组原形砖)的挑战。另请参见[set-partitions]。

10
小钱德勒很伤心。画他的云,使他振作起来
小钱德勒很伤心。画他的云使他振作起来。 注意:画云实际上不会使他振作起来。 圆可以定义为三元组(x,y,r),其中x是圆在笛卡尔平面上的x位置,是圆在笛卡尔平面y上的y位置以及圆r的半径。x并y可能是负面的。r永远是积极的。输入是以空格分隔的三元组形式的圆的列表。例如: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 的3,1,1意思是“在与中心点的圆3,1与1个半径。3,2,1.5是指”在与中心点的圆3,2用1.5半径。 如果我们在图形上绘制输入的所有这些圆,则看起来像这样(我仅出于清晰起见添加了网格线和标签;它们不是必需的): 注意所有的圆是如何凝聚的。也就是说,它们全部重叠在一起,从而形成一个大的组,而没有其他的小圈子。输入保证是内聚的。 假设现在绘制一条绕这些圆形成的“边界”行进的线,而没有其他任何线。就像绘制所有圆组成的轮廓的边界一样。生成的云看起来像这样: 因此,仅通过在输入中绘制形成边界的圆弧来形成单一形状即可形成此云。换句话说,仅通过绘制不在另一个圆内的圆弧来形成云。您的程序将以上述形式接受输入,并输出显示结果云的图像。云的整体形状必须正确,但是比例,颜色,线条粗细以及在顶点处的外观取决于您。请注意,云必须是可见的,因此您不能拉出类似“此程序在白色背景上绘制白色云”,“此程序以无限小的比例绘制云”,“此程序以0绘制云”之类的内容。线宽”等。还请注意,边框的颜色必须与填充或背景的颜色不同。 另一个例子。输入: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 输出: 如果云中存在“洞”,则也应绘制该洞。输入: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 输出: 这是一条重要规则:您的程序必须仅绘制形成边框的线。这意味着您不能简单地完全绘制圆,然后用白色填充将圆绘制得稍小一些,因为该方法仍会绘制不形成边界的线,之后只会将其覆盖。该规则的目的是防止“绘制圆,然后用白色填充再次绘制圆”的实现或类似的方法。预计答案将在绘制之前实际计算出绘制对象的位置。 这是代码高尔夫球,因此最短的字符数获胜。

2
扩展OEIS:计算钻石平铺
我保证,这将是我关于diamong拼贴的最后一个挑战(不管怎么说,还是一段时间)。从好的方面来说,这一挑战与ASCII艺术没有任何关系,而且也不是编码竞赛,因此实际上是完全不同的。 提醒一下,每个六角形都可以用三个不同的菱形来命名: 一个有趣的问题是,对于给定的六边形尺寸,这些平铺中存在多少个。似乎已经对这些数字进行了相当彻底的研究,可以在OEIS A008793中找到它们。 但是,如果我们问到旋转和反射之前存在多少个平铺,问题就会变得棘手。例如,对于边长N = 2,存在以下20个拼接: ____ ____ ____ ____ ____ ____ ____ ____ ____ ____ /\_\_\ /\_\_\ /\_\_\ /\_\_\ /_/\_\ /_/\_\ /\_\_\ /_/\_\ /_/\_\ /_/\_\ /\/\_\_\ /\/_/\_\ /\/_/_/\ /\/_/\_\ /\_\/\_\ /\_\/_/\ /\/_/_/\ /\_\/\_\ /\_\/_/\ /_/\/\_\ \/\/_/_/ \/\_\/_/ \/\_\_\/ \/_/\/_/ \/\_\/_/ \/\_\_\/ \/_/\_\/ \/_/\/_/ \/_/\_\/ \_\/\/_/ \/_/_/ \/_/_/ \/_/_/ …

13
我想要蜂窝
编写最短的程序来打印此六角形平铺或蜂窝状的 ASCII艺术部分: __ __/ \__ __/ \__/ \__ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ / \__/ \__/ \ \__/ \__/ \__/ \__/ \__/ \__/ 请勿输入任何内容。 输出到标准输出或您的语言最接近的替代产品。 您可以编写一个不带任何参数的命名函数,而不是程序,而可以正常打印结果或将其返回为字符串。 输出可以具有任意数量的前导和/或尾随换行符,并且输出中的每一行可以具有任意数量的前导和/或尾随空格(只要模式正确对齐即可)。 以字节为单位的最短代码获胜。

22
基本ASCII提示
替代标题:在墙上统计您的监狱判决 给定一个数字n,输出记录分为传统的每组5个和每行50个。 例子 1个 | | | | 4 |||| |||| |||| |||| 5 |||/ ||/| |/|| /||| 6 |||/ | ||/| | |/|| | /||| | 50 |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ |||/ ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| ||/| |/|| |/|| …
36 code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

24
这是Loeschian号码吗?
正整数k是Loeschian数,如果 k可以表示i*i + j*j + i*j为i,j整数。 例如,第一正Loeschian号码为:1(i=1,j=0); 3(i=j=1); 4(i=2,j=0); 7(i=2,j=1); 9(i=-3,j=3); ...注意i,j对于给定k的不是唯一的。例如,9也可以与产生的i=3,j=0。 这些数字的其他等效特征是: k可以表示i*i + j*j + i*j为i,j非负整数。(对于每对整数i,j都有一对给出相同值的非负整数k) 有一组k连续的六边形在六边形网格上形成网格化(请参见k = 4和的插图k = 7)。(由于这个属性,这些数字可在移动蜂窝通信网络中找到应用。) 在序列的OEIS页面中查看更多特征。 挑战 给定一个正整数,如果它是Loeschian数,则输出真实结果,否则,则输出虚假结果。 程序或函数应处理(例如不到一分钟)最多达1000或数据类型限制的输入。 代码高尔夫。最短的胜利。 测试用例 以下数字应输出真实结果: 1, 4, 7, 12, 13, 108, 109, 192, 516, 999 以下数字应输出虚假结果: 2, 5, 10, 42, 101, 102, 128, 150, 501, …
33 code-golf  math  number  number-theory  decision-problem  code-golf  kolmogorov-complexity  code-golf  sequence  code-golf  path-finding  chess  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  math  arithmetic  code-golf  code-golf  number  code-golf  geometry  code-golf  math  code-golf  code-golf  kolmogorov-complexity  alphabet  code-golf  regular-expression  hexagonal-grid  king-of-the-hill  path-finding  java  code-golf  string  sorting  code-golf  string  grid  code-challenge  compression  code-golf  random  code-golf  sequence  arithmetic  code-golf  number  grid  tiling  code-golf  tips  code-golf  sequence  number-theory  recursion  code-golf  string  grid  code-golf  math  number  combinatorics  permutations  string  code-challenge  code-golf  sequence  number-theory  subsequence 

7
一维有限平铺
该挑战的目的是确定是否可以平铺一维块的集合以形成有限的连续块。 阿片是零和一的一个非空的,有限序列的开始和结束与一个。一些可能的作品是1,101,1111,1100101。 平铺是指将小块排列成一个连续的块。一件中的一个可以占据零的位置,但另一件中的一个不能占据零的位置。 同样地,如果我们将一个视为“实心材料”,将零视为“孔”,则这些零件应适合于形成单一拉伸,而不会留下任何孔。 要形成平铺,只能沿着其一维空间移动碎片。(它们不能拆分或反映)。每件仅使用一次。 例子 三块101,11,101可以平铺如示于下,其中每个片与所需的移位表示: 101 11 101 所以获得的拼贴是 111111 作为第二个示例,片段11011和1001101不能平铺。特别是转变 11011 1001101 无效,因为有两个会发生冲突;和 11011 1001101 无效,因为结果将包含零。 附加规则 该输入是一个或多个片段的集合。允许使用任何合理的格式;例如: 字符串列表,其中每个字符串可以包含两个不同的一致字符; 几个数组,其中每个数组包含一块的位置; 一列(奇数)整数,例如每个数字的二进制表示形式定义了一个片段。 的输出应该是一个truthy值,如果平铺是可能的,和一个falsy值否则。输出值不必保持一致;也就是说,对于不同的输入,它们可以不同。 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 测试用例 每个输入在不同的行上 特鲁西 1 111 1, 1 11, 111, 1111 101, 11, 1 101, 11, 101 10001, 11001, 10001 100001, 1001, 1011 10010001, …

5
整数,集合!
您的任务是将从1到的整数N(作为输入)组装成一个具有宽度W和高度的矩形H(也作为输入提供)。单个数字可以旋转90度的任意倍数,但是它们必须在矩形中显示为连续的块。也就是说,您不能将其中一个数字分解为多个数字并将这些数字分别放置在矩形中,也不能将数字的三个数字弯曲到一个角上。您可以考虑每个数字都是用来建造墙的砖头。 这是一个例子。说您的输入是(N, W, H) = (12, 5, 3)。一种可能的解决方案是: 18627 21901 53114 为了清楚起见,这里有此网格的两个副本,一个副本隐藏了一位数字,而另一个副本隐藏了两位数字: 1#### #8627 2##01 #19## ##11# 53##4 如果矩形不能以独特的方式再次拆卸,那就很好。例如,在上面的示例中,12也可以这样放置: ##### 18627 21#01 ##9## ##11# 53##4 规则 您可以假定它N是正W*H数,并且与整数从1到N包含在内的位数匹配,并且存在将矩形平铺到给定数字中的情况。我目前尚无证据证明这是否总是可能的,但是如果您愿意,我会对此感兴趣。 输出可以是单个换行符分隔的字符串,也可以是字符串列表(每行一个),也可以是一位整数列表的列表(每个单元格一个)。 提交的结果必须是确定的,并且您应该能够在合理的台式机上在一分钟之内处理所有测试用例。 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 除了第一个,这些都不是唯一的。每个测试用例N W H后面都有一个可能的输出。当矩形太窄而无法水平书写较大的数字时,请确保您的答案有效。 1 1 1 1 6 6 1 536142 6 2 3 16 25 34 …

6
ASCII拼图
这是一个3x3ASCII拼图游戏: _____ _____ _____ | _| |_ | | (_ _ _) | |_ _|_( )_|_ _| | (_) |_ _| (_) | | _ _) (_ _ | |_( )_|_ _|_( )_| | _| (_) |_ | | (_ _) | |_____|_____|_____| 这也是一个3x3ASCII拼图游戏: _____ _____ _____ | |_ _| …

7
放大钻石拼贴
任何规则的六角形都可以用钻石平铺,例如: ______ /_/_/\_\ /_/\_\/\_\ /\_\/_/\/_/\ \/_/\_\/_/\/ \_\/_/\_\/ \_\_\/_/ 我们将考虑上面的大小拼贴1(因为钻石的侧面是由一个/或\每个组成)。相同大小的瓦片2看起来像: ____________ / / /\ \ /___/___/ \___\ / /\ \ /\ \ /___/ \___\/ \___\ /\ \ / /\ / /\ / \___\/___/ \/___/ \ \ / /\ \ / /\ / \/___/ \___\/___/ \/ \ \ / /\ \ / …

2
排列任意矩形以填充空间
这些矩形可以填充矩形空间吗? 给定一堆矩形,系统会询问您是否可以将它们安排为填充矩形空间。 眼镜 给定一堆任意m x n矩形;0 <= m, n <= 1000,确定是否可以对其进行排列,以使其完全覆盖矩形区域而没有任何孔洞或重叠。矩形不能旋转,每个矩形只能放置一次。 输入项 只要输入给出某种2维尺寸列表,此输入就非常灵活。例如,以下两个都是有效的: 按空格分隔,返回 1 2 1 5 4 5 3 6 尺寸表 [[1, 2], [1, 5], [4, 5], [3, 6]] 输出量 各种true / false值,例如true / false,0/1,T / F,True / False等。如果要使用不太明显的输出方法,请在答案中指定。 例子 测试用例1 输入: 1 1 1 5 2 6 …

3
实施简化字距调整
介绍 字距调整是指调整文本字母之间的间距。例如,考虑Top用以下三个字形写的单词: ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... 我们可以用点填充字形之间的间隙并完成它,但是间隙看起来太宽了。相反,我们将字形滑动到左侧,以便它们几乎可以接触: #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... 看起来好多了!请注意,的条形图T在的左边框上方o。在此挑战中,您的任务是为此类矩形字形实现一个简单的字距调整程序。 字距调整过程 考虑具有.和#形状相同的两个矩形2D字符数组。在简单的字距调整过程中,我们首先将数组并排放置,中间放置一列.s。然后,我们将#右阵列中的每一个向左移动一步,直到#左右阵列中的s正交或对角相邻。字距调整的结果是引入相邻s 之前的步骤#。您的任务是实施此过程。 让我们举个例子: Inputs: ..### #.... #.... ..##. ...#. ...## ..### ....# Process: …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

9
打印所有3 x 3坚固的正方形
坚固的正方形(类似于魔术正方形)是整数1到N 2在N by N网格上的排列,以使每2 by 2子网格具有相同的总和。 例如,对于N = 3,一个坚固的正方形是 1 5 3 9 8 7 4 2 6 因为四个2 x 2子网格 1 5 9 8 5 3 8 7 9 8 4 2 8 7 2 6 全部加起来等于23, 23 = 1 + 5 + 9 + 8 = 5 + …
24 code-golf  number  arithmetic  number-theory  grid  code-golf  binary  code-golf  popularity-contest  code-golf  chemistry  code-golf  code-golf  date  code-golf  quine  chess  code-golf  hexadecimal  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  math  date  code-golf  typography  code-golf  string  code-golf  string  code-golf  code-golf  math  arithmetic  array-manipulation  grid  code-golf  puzzle-solver  code-golf  music  audio  code-golf  decision-problem  code-golf  geometry  code-golf  number  bitwise  code-golf  string  metagolf  hexagonal-grid  code-golf  string  code-golf  sorting  popularity-contest  code-golf  game  sequence  base-conversion  binary  code-golf  decision-problem  graph-theory  natural-language  code-golf  math  parsing  optimized-output  code-golf  array-manipulation  code-golf  graphical-output  image-processing  tiling  code-golf  graph-theory  path-finding  chess  code-golf  code-golf  balanced-string  code-golf  number  code-golf  sequence  code-golf  math  arithmetic  statistics  code-golf  chemistry 

3
用王瓷砖填充屏幕
已经证明,以下的13平方的Wang块总是不定期地对平面进行平铺。这意味着,当正方形排列成网格时,所有相邻边的颜色都相同,图案的平移将永远不会与其自身匹配。 我们将通过一个3×3网格以文本形式表示每个图块,该网格在中心和拐角处都填充有空格,数字1到5代替了边缘处的红色,绿色,蓝色,黄色,灰色。 2 2 2 1 1 1 4 3 2 2 4 3 2 1 2 1 3 2 3 2 1 3 1 3 2 4 4 4 4 4 5 4 5 5 5 5 5 5 4 3 2 3 2 3 2 1 2 1 …

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

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

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.