绘制静物(或移动的静物)-在“生命游戏”中绘制图像
输入的是灰度图像。您的任务是在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] …