catest.as

来自「在flashmx下编写的程序」· AS 代码 · 共 59 行

AS
59
字号
#include "gData.as"
#include "AidDraw.as"
#include "Ulti.as"
function lifeGame():Void
{
	//caculate.
	var squareSize:Number=10;
	for(var i:Number=0;i<_root.gRowNum;i++)
		for(var j:Number=0;j<_root.gColNum;j++)
		{
			var count:Number=0;		//the live neighbor num count.
			for(var k:Number=-1;k<=1;k++)
				for(var l:Number=-1;l<=1;l++)
				{
					if(_root.gMapXk[i+k][j+l]==_root.LIVED&&!(k==0&&l==0)&&i+k>=0&&j+l>=0)
						count++;
				}
				
			if(_root.gMapXk[i][j]==_root.LIVED)//original state is lived
			{	
				if (count<=1||count>3)
					_root.gMapXk_1[i][j]=_root.DEAD;
				else 
					_root.gMapXk_1[i][j]=_root.LIVED;
				/*if(i<=3&&j<=3)
				trace("s1:"+String(i)+String(j)+String(_root.gMapXk_1[i][j])+String(count));*/
			}
			else if(_root.gMapXk[i][j]==_root.DEAD)//original state is dead.
			{
				if (count==3)
					_root.gMapXk_1[i][j]=_root.LIVED;
				else 
					_root.gMapXk_1[i][j]=_root.DEAD;
				/*if(i<=3&&j<=3)
				trace("s2:"+String(i)+String(j)+String(_root.gMapXk_1[i][j])+String(count));*/
			}
		}
	//update show,and update XK
	for(var i:Number=0;i<_root.gRowNum;i++)
		for(var j:Number=0;j<_root.gColNum;j++)
		{	
			if(_root.gMapXk[i][j]==_root.LIVED&&_root.gMapXk_1[i][j]==_root.DEAD)
				{
					drawSquare(_root.gXOffset+j*squareSize,_root.gYOffset+i*squareSize,_root.gColorArr[12],squareSize);
					_root.gMapXk[i][j]=_root.DEAD;
				}
			else if(_root.gMapXk[i][j]==_root.DEAD&&_root.gMapXk_1[i][j]==_root.LIVED)
				{
					drawSquare(_root.gXOffset+j*squareSize,_root.gYOffset+i*squareSize,_root.gColorArr[3],squareSize);
					_root.gMapXk[i][j]=_root.LIVED;
				}
		}
		
	_root.gIterTimes++;
	trace3("IterTimes:"+String(_root.gIterTimes)+"\n");	
	
	//show2DArr(_root.gMapXk,50,50);
	//show2DArr(_root.gMapXk_1,50,50);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?