Questions tagged «game-of-life»

挑战约翰·康威(John Conway)的《人生游戏》。

6
在Conway的《人生游戏》中制作俄罗斯方块的工作游戏
这是一个理论上的问题-在任何情况下都无法给出简单的答案,即使是琐碎的问题也无法解决。 在Conway的《生命游戏》中,存在诸如metapixel之类的结构,这些结构使“生命游戏”也可以模拟任何其他“生命游戏”规则系统。另外,众所周知,生命游戏是图灵完成的。 您的任务是使用Conway的生活游戏规则构建一个细胞自动机,该规则将允许您玩俄罗斯方块游戏。 您的程序将通过手动更改特定世代的自动机状态来表示中断(例如,向左或向右移动,放下,旋转或随机生成新的片段以放置到网格上),计数来接收输入特定数量的世代作为等待时间,并将结果显示在自动机上的某个位置。显示的结果必须明显类似于真实的俄罗斯方块网格。 您的程序将按以下顺序进行评分(较低的标准充当较高标准的决胜局): 边界框大小-面积最小且完全包含给定解的矩形框将获胜。 对输入的更改较小-需要手动调整的最少单元格(对于自动机中最坏的情况)会获胜。 最快的执行速度-最少的一代可以在模拟中获胜。 初始活细胞计数-较小的计数获胜。 先发布-早先发布。

1
在Conway的《人生游戏》中构建数字时钟
您的任务是构建一个代表数字时钟的生活游戏模拟,该模拟满足以下属性: 时钟显示在十进制小时和分钟(例如12:00,3:59,7:24)与对于每个1440分钟一天中的不同的状态-要么小时会从0到23或者从1到12与PM指示器。 该模式是周期性的,状态在没有任何外部交互的情况下循环。 分钟数会定期更新-从一分钟的更改到下一次更改需要相同的世代数。 匿名旁观者可以一眼看出该显示器应该是数字钟。特别是,这需要: 这些数字是可见的并且可以清楚地区分。您必须能够一目了然地确定显示的时间。 数字将更新到位。每个新数字都与前一个数字出现在相同的位置,并且数字的边界框几乎没有移动。(特别是,一个数字在不同的地方不会包含10个不同的数字,每次数字变化时,数字都会被发现。) 这些数字彼此相邻出现,它们之间没有过多的空格。 您的程序将按以下顺序得分(较低的标准充当较高标准的决胜局): 边界框大小-完全包含给定解的最小面积的矩形框将获胜。 执行速度最快-前进一分钟的最少几代人获胜。 初始活细胞计数-较小的计数获胜。 先发布-早先发布。

16
在常规网格之外的任何东西上实施生活游戏
康威的《人生游戏》(几乎)总是在规则的正方形网格上播放,但不一定如此。 编写一个程序,该程序在不是欧式正方形,三角形或六边形的规则平铺的欧几里德平面的二维平铺上实现Conway的《生命游戏》中的标准单元格相邻规则。 具体来说,您选择的平铺... 必须包含至少2个(但数量有限)形状不同的原生动物。 不同的形状可以彼此缩放或旋转。 他们必须能够平铺整个平面而不会留下孔。 它们必须是具有有限周长的简单多边形。(它们可能不是那么简单。) 必须与正方形,三角形和六边形网格同构不同。 不允许将任何细化为规则正方形,三角形或六边形网格的平铺。(您仍然可以在其他拼贴中使用正方形/三角形/六边形。) 任何两个原生动物之间的边界可能包含多个边和顶点,但必须连续。 您的平铺可能是周期性的,也可能是非周期性的,但是当扩展到覆盖整个平面时,每个prototile必须无限次出现。(因此,无需对切片的某些部分进行“硬编码”以帮助实现下面的额外要点。) 您的每个人工繁殖体都代表一个与其他细胞相邻的“生命游戏”细胞: 共享任何边或任何顶点的像元都被视为相邻像元。 共享多个边或顶点的像元仍仅在彼此相邻的邻居处计数一次。 细胞不能与自己相邻。 拼贴灵感链接: http://en.wikipedia.org/wiki/Tiling_by_regular_polygons http://en.wikipedia.org/wiki/List_of_uniform_tilings http://en.wikipedia.org/wiki/Aperiodic_tiling http://en.wikipedia.org/wiki/Penrose_tiling 输出量 您的程序应该输出其中包含正在玩的生命游戏的拼贴形式的图形表示,您当然应该以image / gif / jsfiddle格式发布。 请绘制瓷砖边缘线,对死细胞使用浅色,对活细胞使用深色。 计分 您的投稿分数是增票数减去减票数,以及在平铺中发现常见的“人生游戏”模式的加分: 寻找静物 -从一代到下一代都不会改变的模式。(+2) 查找周期2到29的振荡器。(每找到5个周期,每个周期+3,或者最多+15点) 查找周期为30或更长时间的振荡器。(+7) 找到一艘太空飞船 -它可以任意离开其起始位置而不会留下任何碎片。(它不一定是移动的振荡器。)(+10) 找到另一个以明显不同的方式移动的太空船(而不是第一个太空船的镜像版本),例如,请参见glider和LWSS。(+10) 寻找无限增长的模式。您不必证明增长是无限的,只需向我们显示足够的证据证明这种增长实际上是肯定的。(+25) 找到枪 -可以永久产生飞船的东西(这也算作无限增长)。(+50) 无限的生长模式必须以有限数量的活细胞开始,其他模式必须始终包含有限数量的活细胞(例如,太空船不应随时间而任意增大)。 由于非定期平铺的性质,似乎其中许多模式无法实现。因此,任何可验证的非定期平铺都会自动获得+40分。在非定期平铺中某个位置起作用的模式不必在其他位置起作用。 每个奖金只能应用一次。自然,我们需要查看输出以验证它们。最高分获胜。 笔记 每个答案只能将奖金应用于一个特定的拼贴。(尽管可以包括相关的拼贴图。) 人生游戏规则如下: 任何少于2个或超过3个活邻居的活细胞都将死亡。 任何具有3个活着邻居的死细胞都可以存活。 其他单元格不变。 不管边界条件如何,都可以使用加分点的模式,但否则,您可以选择所需的任何边界条件。 默认情况下,背景应为所有无效磁贴。 …

30
最短的人生游戏
康威的《人生游戏》是蜂窝自动化的经典例子。这些单元形成一个正方形网格,每个单元具有两个状态:存活或死亡。在每个回合中,每个小区都会根据其状态及其八个邻居的状态同时进行更新: 如果一个活细胞恰好有两个或三个活的邻居,则它仍然活着 如果一个死细胞正好有三个活着的邻居,它就会活着 您的任务(如果您选择接受)是用您喜欢的语言编写最短的《人生游戏》实现代码。 规则: 网格必须至少为20x20 网格必须环绕(所以网格就像圆环的表面一样) 您的实现必须允许用户输入自己的启动模式 如果您看不到正在发生的事情,GoL会毫无意义,因此必须有自动机运行的视觉输出,每转的结果显示的时间足够长!

7
生命,吉姆,但据我们所知
您可能知道Conway的“生命游戏”,这是数学家John Conway发明的著名的细胞自动机。生命是一组规则,这些规则可以使您一起模拟二维的细胞板。这些规则决定了板上的哪些单元生存,哪些单元死亡。凭空想像,您可以说Life是一个零玩家游戏:一种旨在发现有趣行为模式的游戏,例如著名的滑翔机。 零人游戏...直到今天。您将编写一个程序,玩人生游戏-并玩赢山丘之王。您的对手(单数)当然会尝试这样做。获胜者要么是拥有任何活细胞的最后一个机器人,要么是10000代后活细胞最多的玩家。 游戏规则 这些规则与正常(B3 / S23)寿命几乎相同: 少于两个友好邻居的活细胞因饥饿而死亡。 具有两个或三个友好邻居的活细胞可以存活。 具有三个以上友好邻居的活细胞会因人口过多而死亡。 如果没有敌方邻居,则死者牢房中只有一个同一个玩家的三个邻居,可以为该玩家战斗。 ...但是每一代人之后,您和您的对手都有机会进行干预。您最多可以唤醒30个细胞为您而战。(谁先走是由服务器决定的。) 面板是一个(x,y)单元格正方形。所有方块最初都死了。边界不环绕(这不是圆环状的世界),并且永久死了。 这是本着Battlebots和Core Wars精神进行的竞赛。有一个将运行机器人的中央服务器,可以在这里找到 协议 竞技场服务器使用通过argv通信的简单JSON协议 其中Values是JSON编码的字符串 y_size:消失之前的最大y坐标 x_size:消失之前,瓦片的最大x坐标 tick_id:当前的刻度号 board:字典,键的形式为'(y,x)',值的形式为bot_id(int) bot_id:具有此ID的木板中的瓷砖是您的 例: {"y_size":2000,"x_size":2000,"board":{},"bot_id":1,"tick_id":1} 告诉服务器您的选择: 向服务器发送一个瓷砖列表以转换为您的颜色。 只有那些空的将被更改 嵌套坐标列表格式 [[0,0], [0,1], [100,22]...] 注意:您的机器人完全不需要更新磁贴-服务器会自行更新 比赛规则 如果您的实现未能遵循该协议,那么该行为将被没收;服务器将保持状态不变 不允许您故意利用竞技场服务器中的故障。 让您的AI在合理的时间内决定动作。请尽快发送您的下一步行动。 最后,请对服务器友好。它在那里供您享受。 不遵守这些规则会导致失格。 如果出现平局,则两名玩家的总胜利数为1 自己运行控制器 控制器的源代码可以在这里找到。有两种运行控制器的方式: 竞赛模式(终端) 设置 python3 get_answers.py 每个机器人相互竞争,进行全面竞争。 测试模式(GUI) 跑 python3 …

30
显示黑客徽标
您可能听说过“ Hacker徽标”,也称为“ Hacker标志”。看起来像这样: 这是来自称为生命游戏的数学模拟的一种模式。滑翔机是移动最简单的生活模式,也是所有生活模式中最容易识别的。 挑战 挑战非常简单:显示黑客徽标。定义为: 具有边框,白色背景和灰色网格线的3x3网格。 以GoL滑翔机模式排列的五个黑点。 没有其他的。 规则 黑点必须填写40% - 80%的其个人网箱。 您将使用图形输出显示标志,但不显示ASCII文字。 输出必须至少为30x30像素。 输出只能具有灰色,黑色和白色。 网格中的每个网格框都将具有相同的大小。网格将是规则的3x3正方形。 您不得从互联网或文件系统中提取徽标。 您的程序将在空白屏幕/窗口上显示徽标。如果终止,则必须正常进行。 注意,“点”不一定表示“圆圈”。“点”是居中于具有一个表面的网格框中间的单个几何形状。例如,一个圆形或正方形将被视为一个点,而两个三角形或一个棋盘将不被视为一个点。 赢家 因为这是代码高尔夫,所以每种语言中最短的答案将获胜! 请在答案中包括程序输出的屏幕截图。

3
自行运行生命游戏的代码
编写两个矩形代码块,每个代码块宽w个字符,高h个字符,这些代码块在排列成网格时实现Conway的生命游戏。(w和h可以是任何正整数) 例如,两个代码块可能是:(w = 3,h = 2,不是实际代码) XX| --+ 和 | --+ 将第一个块视为“生命游戏”中的“活动”单元,将第二个块视为“死亡”单元。 现在,将这两个块的多个副本安排到一个更大的程序中,该程序代表一个生命游戏网格,例如以下滑翔机: | | | | | --+--+--+--+--+ | |XX| | | --+--+--+--+--+ | | |XX| | --+--+--+--+--+ |XX|XX|XX| | --+--+--+--+--+ | | | | | --+--+--+--+--+ | | | | | --+--+--+--+--+ 现在是关键点:运行此代码时,输​​出必须是“生命游戏”网格,此后就是该网格,并为单元格使用相同的活动代码块和无效代码块。 因此,上面程序的输出将是下一代滑翔机,它也可以作为可运行程序: | | | | …

3
绘制静物(或移动的静物)-在“生命游戏”中绘制图像
输入的是灰度图像。您的任务是在Conway的《生命游戏》中找到与输入图像尽可能相似的静态或循环模式。 您的输出可以是任一个静止图像或在一些格式可以被转换成GIF一个循环动画。输出图像的尺寸应与输入的尺寸相同,并且必须仅包含黑白像素。 如果输出是动画,则必须根据“生命游戏”规则从上一帧生成每个帧,每个像素一个单元。动画必须循环播放,第一帧是根据相同规则从最后一帧生成的。 如果输出是静态图像,则对其应用生命周期规则必须产生相同的图像。这意味着没有一个“活动”单元可能具有三个以上或少于两个“活动”邻居,并且没有“死”单元可能恰好具有三个“活动”邻居。(请注意,这基本上与上述动画相同,但只有一帧。) 额外的规则和说明: 您(或您的程序)可以选择将“活动”单元格表示为白色,将“无效”单元格表示为黑色,反之亦然。也就是说,您可以对此进行硬编码,或者您的程序可以根据输入图像进行选择。(但是动画的每一帧都必须相同。) 边界条件应该是周期性的,这意味着最右边一列的单元格在最左边一列具有邻居,依此类推。 对于动画,帧频取决于您(或您的程序);我认为快速帧速率可以很好地近似于灰色像素。 请在您的答案中至少嵌入两个结果。如果您可以从下面所有输入的图像中发布结果,那是可取的。 如果需要这样做,可以按比例缩小测试图像,以便以足够小的文件大小获得GIF。如果您也想链接到更大的文件,那很好。如果要炫耀,请随时查找一些更高分辨率的源文件。 请尝试避免代码中包含太多可控制的参数-最好是程序的唯一输入是图像。唯一的例外是,如果您想使用一个参数来控制动画帧的数量,因为这会影响文件的大小。 您可以使用外部程序来更改输入和输出文件的格式,和/或根据需要将输出帧编译为动画。(这不是文件格式处理方面的挑战。) 这是一场人气竞赛,因此得票最多的答案将获胜。 这是一系列测试图像,主要来自本网站的其他问题。(以后我可能会添加其他“奖励”输入图像。) 刚开始时,这是Python 2中非常笨拙的参考尝试,它利用了一个事实,即四个正方形的块在生命游戏中是稳定的结构。它只是将输入图像缩放4倍,如果对应的像素比0.5暗,则会绘制一个块。 from skimage import io from skimage import transform import sys img = io.imread(sys.argv[1],as_grey=True) source = transform.resize(img, [i/4 for i in img.shape]) img[:]=1 for x in xrange(source.shape[0]): for y in xrange(source.shape[1]): if source[x,y]<0.5: img[x*4, y*4] …

4
生活可以丰富多彩!
栩栩如生的细胞自动机中的每个细胞仅需要一位来表示,因为它只能是生的或死的。这意味着只有两种颜色。很无聊。 普通图像的每个像素为24位(RGB中的每个像素为8位)。这意味着在以像素为单元格的正常图像中,您可以一次模拟24个逼真的游戏! 挑战 您的任务是编写一个程序,该程序将逼真的蜂窝自动机的一代规则应用于24位深度图像(以您喜欢的任何已知格式),然后输出结果图像。 24层中的每一层都将使用相同的栩栩如生的规则集,严格在其自己的层之内。这24层不会互相影响。 也 零是死细胞,一个是活细胞。 边界条件是周期性的(形成圆环)。 任何图像尺寸都可以。 输入输出 您的程序需要通过stdin或命令行(或您的语言最接近的等效语言)接受3个参数: 输入图像文件的名称。 由0到8的数字组成的字符串,以递增的顺序表示新单元格的诞生时间: 如果数字d在字符串中,则死细胞在有d个存活邻居时会恢复活力。 示例:3正常的生命 -刚好有3个存活邻居的死细胞复活。 从0到8的数字字符串,以递增的顺序表示现有的单元格何时存活: 如果数字d在字符串中,则具有d个存活邻居的存活细胞将存活到下一代,否则它们将死亡。 示例:23正常生命-只有具有2或3个邻居的细胞才能存活到下一轮。 请注意,始终使用摩尔街区。阅读这个或这对精确什么定义了一个栩栩如生的自动机和许多有趣的规则集的更多信息。 1代以后的输出图像应显示或另存为out.png(bmp或其他任何形式)。 投稿 以字节为单位的最短代码获胜。 对于某些非平凡的规则集,您需要至少包含一个测试映像及其三个后继代。如果您想不出更好的方法,请使用您的头像和正常的生活规则。 如果您愿意,可以使用这种Gosper Glider Gun,其中唯一的活物在绿色的128层中(只能确保在正常的Life中工作): 强烈建议张贴有趣的序列甚至动画。

18
旋转对称数
给定一个整数,如果它是相同的上下颠倒(旋转180°),则输出真实值,否则输出虚假值。 0,1并且8具有旋转对称性。6成为9,反之亦然。 产生真实结果的数字序列:OEIS A000787 0, 1, 8, 11, 69, 88, 96, 101, 111, 181, 609, 619, 689, 808, 818, 888, 906, 916, 986, 1001, 1111, 1691, 1881, 1961, 6009, 6119, 6699, 6889, 6969, 8008, 8118, 8698, 8888, 8968, 9006, 9116, 9696, 9886, 9966, 10001, 10101, 10801, 11011, 11111, 11811, 16091, …
27 code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

3
生命游戏arrowlits
背景 这项挑战是为了纪念Apsiller,他们凭借自己的挑战赢得了2016年PPCG最佳影片中的“ 看起来并不那么简单”类别的奖,我的4音符音乐盒可以播放那首歌吗? 恭喜你! 在他们的“关于我”页面上,该用户有一个非常精美的模拟器,用于“ 生命游戏”蜂窝自动机。(严重,请检查一下。)另一方面,单词aspillera在西班牙语中代表“ arrowslit”。鉴于这些事实,这一挑战是关于“人生游戏”中的箭眼。 生命游戏arrowlits 在GoL中,我们将用滑翔机代表一个箭头,并用一系列方块代表一堵墙。一架滑翔机从上方接近墙壁,并试图飞过墙壁的缝隙(箭头所示)。您的任务是检查滑翔机是否穿过箭孔或撞到墙上。 输入项 您的输入是位网格,代表GoL配置。您可以采用任何合理的格式(任意两个可离散打印的ASCII字符的多行字符串,字符串列表,2D整数数组,2D布尔数组等)。为了清楚起见,下面将使用字符的多行字符串.#。 确保输入具有多个属性。首先,它的高度是2N一些Ñ≥6 ,其宽度至少是2N + 2。输入将全部为.s,除了在最上面的三行中的某个位置是滑翔机,而在中间的两行中是一堵墙。滑翔机将向西南或东南方向移动,其位置应确保如果移除了墙,则滑翔器在到达底部边缘之前不会穿过侧边缘(但可能会到达网格的某个角)。滑翔机最初与左边缘和右边缘分开至少.s 步长。它可以处于任何阶段。 墙由块组成,这些块由一列.s 隔开,但在一个地方,它们之间至少由两列.s 隔开。像滑翔机一样,最左边和最右边的块也与边缘分开.s 一步。左边缘上总是至少有一个块,而右边缘上总是有一个块。 这是有效输入网格的示例: ....#...................... ..#.#...................... ...##...................... ........................... ........................... ........................... .##.##............##.##.##. .##.##............##.##.##. ........................... ........................... ........................... ........................... ........................... ........................... 输出量 如前所述,您的任务是确定滑翔机是否撞入墙壁或使其滑到南边。出于此挑战的目的,如果配置不再由单个滑翔机和木块墙组成,则会发生崩溃,无论以后在仿真中发生什么。下图显示了东南滑翔机在两个不同的阶段中不会崩溃的最小间隙(西南滑翔机的条件是对称的)。 ...#........... .#.#........... ..##........... ............... ............... ##...........## ##...........## ...#........... ....#.......... ..###.......... ............... ............... ##...........## …

1
康威的Hello World
人们常说,所有程序员只要瞥一眼任何语言,就应该能够用任何一种编程语言编写一个“ hello world”程序(再看一眼,就可以快速排序)。 由于Conway的《人生游戏》已经完成了图灵(因此符合通用编程语言的要求),这个问题不言而喻: 创建一个“ Hello World!” 仅使用Conway的生命游戏的应用程序!唯一有效的条目是Conway的生命游戏的初始状态,该状态为: 不包含任何类似于文字“ Hello World!”的可识别形状。 将包含类似于文字“ Hello World!”的可识别形状。在合理的周期数内(在一台好的PC上,它不应运行超过几分钟-这可以实现数十亿个周期,应该足够了) “ Hello World!”所在的区域 文本将在初始状态下显示为空!(否则问题将很容易解决)如果没有人设法做到这一点,我们可以将这一要求减少为“大部分为空” 得分: 获胜者将基于第一次有效提交后约一周内的投票数。 投票准则: 更精致,更漂亮的输出值得更多 在许多周期内保持稳定的输出应该比在下一个周期内逐渐消失而无法识别的值要多。 锁定在一个永久循环中或从一个有趣的模式开始的解决方案是最有价值的,因为它证明了状态的智能设计,而不仅仅是逆向模拟的随机试验和错误。 该条目应采用应答者链接到的著名模拟器或在线模拟器中的至少一个可读的格式。也接受(甚至鼓励)链接(指向设置为初始状态的动画或模拟器的链接)。如果输出在几个周期内不可见,则条目应指定在哪个周期后结果可见。 编辑: 要生成的短语可能会有一些容忍度。可以是“ Hello, World!”,“ hello, world”“ HELLO WORLD!”等。

15
推倒一些多米诺骨牌!
感谢这个问题的启发 在这个挑战,我们将代表一行多米诺骨牌作为串|,/和\。您将获得一串多米诺骨牌作为输入,并且必须确定它们安定后的样子。这是多米诺骨牌掉落的规则 |左下降的多米诺骨牌左侧的立式多米诺骨牌\也将变为左下降的多米诺骨牌。 |正确的多米诺骨牌的立式多米诺骨牌/也将变成正确的多米诺骨牌。 如果站立的多米诺骨牌介于左\下落的/多米诺骨牌和右下落的多米诺骨牌之间,它将保持站立状态。 重复应用这些规则,直到排列不再更改。 这是单个输入如何得出结论的示例 |||||||\/|||||||\||\|||/||||||\||||| ||||||\\//|||||\\|\\|||//||||\\||||| |||||\\\///|||\\\\\\|||///||\\\||||| ||||\\\\////|\\\\\\\|||////\\\\||||| |||\\\\\////|\\\\\\\|||////\\\\||||| ||\\\\\\////|\\\\\\\|||////\\\\||||| |\\\\\\\////|\\\\\\\|||////\\\\||||| \\\\\\\\////|\\\\\\\|||////\\\\||||| 您的任务是编写查找并输出输入最终结果的代码。您可以假定输入始终有效,并且至少包含2个字符。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 |||/|||| -> |||///// |||\|||| -> \\\\|||| |/||||\| -> |///\\\| ||/|||\| -> ||//|\\| ||\|||/| -> \\\|||//

1
计算常见的生活游戏模式
此处的任务是从Golly .rle或纯文本文件(您的选择)中读取文件(提供您的文件名)(在STDIN上或作为命令行参数),并在其中编码的网格中识别和计数通用模式。 或者,您可以选择直接通过STDIN提供文件的内容。 您的程序应该至少能够识别和区分15种最常见的严格静物,5种最常见的振荡器以及滑翔机。 应该识别出这些振荡器的所有相位,以及滑翔机的所有四个相位。 它应该输出一个列表,其中包含每个图案的最终计数,并在单独的行上包含每个图案的名称和数量。您的程序可能会将所有这些模式都包含在输出列表中,或者仅将其中至少一个找到。 作为计数中的其他图案的一部分的图案不应该计数。(例如,信标的8单元阶段也不应计为两个街区,并且船舶领带也不应计为两艘船) 您可以假定输入已经稳定并且不包含上述集合中没有的任何模式。您可能还假设输入网格将适合1024x1024框。 这是代码高尔夫球,因此最短的程序为准。 RLE文件格式说明 RLE文件包含游程长度编码的生命网格。以开头的所有行#均为注释,应忽略。 第一行非空,非注释行的格式为x=<width>,y=<height>,rule=<rule>。就此任务而言,规则将始终为B3/S23。它可能包含在处理该行之前应删除的空格(当然,根本不需要处理此行。) 第一行之后的非注释行应视为单个字符串。该名称只能由十进制数字,字符$,,b和o和换行符组成,并且不能以数字结尾。换行符将被忽略,但是您可以假定换行符不会中断数字字符串。 这可以由单个终止!。 b代表一个死单元,o代表一个活单元,并$代表一行的结尾。任何十进制数字表示以下符号将被视为重复多次。 纯文本模式编码 另一个选择是以此处描述的另一种纯文本格式读取模式。在此编码中,关闭的单元格用连字符表示,打开的单元格用大写字母Os表示,换行符分隔行。 您可以假定所有非注释行都将用连字符填充到相等的长度。 以开头的行!是注释,将被忽略。 一些测试案例 RLE: #This is a comment x = 35, y = 16, rule = B3/S23 bo$2o$obo5$22bo$22bo$22bo2$18b3o3b3o2$22bo$22bo10b2o$22bo10b2o! 纯文本: !This is a comment -O--------------------------------- OO--------------------------------- O-O-------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------O------------ ----------------------O------------ ----------------------O------------ …

5
是否有更多的硬物或软物
与假设分析书的开头相切。 输入是一个由空格组成的矩形,如字符串,字符串列表等,其对象由#内部组成: ######## # # ######## ### #### ### #### ### 对象将始终是非相交,非接触的矩形。软对象的定义是#中间没有用填充的对象,而只是边界,而硬对象则是填充的对象。具有宽度或高度的对象<=2被认为是坚硬的。所有对象都是硬的或软的。 如果输入,输出中有更多的硬对象"Hard",如果较软,则输出"Soft",如果相等则输出"Equal"。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 这些情况不是全部输入,而是每个对象应表征的内容。实际输入将类似于问题顶部的ascii艺术。 硬 # #### ## ## ########## ########## ########## 柔软的 ### # # ### ################### # # # # # # ################### #### # # # # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

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.