[计算机模拟]元胞自动机[CA]初探---“生命游戏”的实现


首先看一下什么是元胞自动机(摘自一篇网文) 
[1b]      [/1b]元胞自动机(Cellular Automata,简称CA,也有人译为细胞自动机、点格自动机、分子自动机或单元自动机)。是一时间和空间都离散的动力系统。散布在规则格网 (Lattice Grid)中的每一元胞(Cell)取有限的离散状态,遵循同样的作用规则,依据确定的局部规则作同步更新。大量元胞通过简单的相互作用而构成动态系统的演化。不同于一般的动力学模型,元胞自动机不是由严格定义的物理方程或函数确定,而是用一系列模型构造的规则构成。凡是满足这些规则的模型都可以算作是元胞自动机模型。因此,元胞自动机是一类模型的总称,或者说是一个方法框架。其特点是时间、空间、状态都离散,每个变量只取有限多个状态,且其状态改变的规则在时间和空间上都是局部的。 
[1b]       [/1b]好了,有些抽像不是吗?下面看一个元胞自动机有趣的入门示例---LifeGame(生命游戏):[1b]     
[/1b]      生命游戏是由英国剑桥大学数学家Conway提出的,游戏的规则是这样的,在一个正方的棋盘格上,每格只有两个状态,”生”和”死”,分别表示是否被一个棋子所占有.每个方格有八个邻格,游戏的规则如下:
1.       对于处在”生态的格,若八个邻居中有2个或3个”生”,则继续存活,否则将因过于孤独或过于拥挤而死亡.
2.       对于处在”死”态的空格,若八个邻格中有3个”生”,则该格转变为”生”(代表繁衍过程),否则继续空着.
规则讲完了,看到这里,相信掌握了任何一种开发工具的图形编程的朋友应该都有能力去尝试相应的摸拟了,我这里给出我用AS2在Flash中的实现(PS:由于最近几天我的用来展示的个人空间登陆不上,所以放不到网上了,你可以下载回去看,需装FalshPlayer7.0若以上版本)
[1b]下面给出该游戏在AS2[/1b][1b]中的实现的代码:[/1b]
 
function lifeGame():Void
{
       //caculate.
       var squareSize:Number=10;
       for(var i:Number=0;i
本文转自:http://www.5uflash.com/flashjiaocheng/Flashyingyongkaifa/803.html

你可能感兴趣的:(html,游戏,编程,框架,Flash)