用Excel实现生命游戏
同学的数据结构课程作业是实现生命游戏的演示。经典的生命游戏规则不再赘述,网上也有很多用C等其它编程语言的实现。这里我们看看如何用Excel快速地实现生命游戏。注意我们仅使用Excel函数即可,无需调用宏与VBA。
步骤:
1、新建一个空的Excel工作表,选中所有单元格,调小字号,并调整单元格长宽使之成为恰好容纳一个字符的小正方形。
2、为方便后续观察,对所有单元格设置条件格式:当单元格值为1时背景变为红色。
3、在A1单元格填0,拖动A1句柄将A1:P16单元格(当然可以更大范围)全部填充为0,表示无生命点。
4、设置初始生命状态:将B2:O15单元格中任意个填为1,表示有生命点。第1、16行与第A、P列用作边界限制,不作为生命点。
5、将A18:P33单元格全部填充为0(空出第17行以免上下混淆),用来显示生命过程第一次迭代的结果。
6、在B19单元格中输入以下公式:
=IF(B2=1,IF(OR(A1+B1+C1+A2+C2+A3+B3+C3=2,A1+B1+C1+A2+C2+A3+B3+C3=3),1,0),IF(A1+B1+C1+A2+C2+A3+B3+C3=3,1,0))
用以计算该位置当前生命状态。拖动B19句柄填充B19:O32单元格,Excel将自动修改公式中的相对引用地址。
7、A18:P33单元格已随即显示生命过程第一次迭代的结果。将A18:P33单元格选中并复制,依次粘贴到A35:P50、A52:P67等与上次结果相隔一行的位置,Excel将自动计算后续的生命迭代状态。
8、现在修改A1:P16单元格中的初始生命状态,会看到下方的迭代生命状态自动更新。
事实上,我们可以把一个Excel单元格理解为一个有限状态的自动机。一群相互关联的自动机在确定的规则(公式)下以相同的周期改变自身状态,从而形成复杂但有序的群体行为。Excel为我们提供了这样一个平面结构的自动机运作平台,大家能否在其基础上构思出一些更有意思、更加实用的应用呢?
下载:
http://www.linjian.cn/files/excel/LifeGame.rar
http://files.linjian.org/excel/LifeGame.rar





