PDA

Просмотр полной версии : Клеточный автомат


Altera Pars
02.04.2009, 23:29
Здравствуйте, уважаемые флешеры. У меня к вам просьба. Помогите пожалуйста реализовать механизм работы игры "Жизнь". Есть исходник, но в нем как раз нет это механизма, ибо не знаю я как его написать. Помогите, пожалуйста.

Stargazer
02.04.2009, 23:40
Чего именно вы не знаете?
Если знаете, что такое for и что такое a[i][j] - то сможете написать.

Altera Pars
03.04.2009, 07:52
Я не могу разобраться с тем, как сделать саму жизнь.
То есть у меня есть два массива, один для клипов, другой для значений true и false.
Все прекрасно работает, если вводить данные в коде, а по нажатию на квадратик сам ничего не получается:( :(

Altera Pars
03.04.2009, 09:01
Cells=new Array(24);
Curr=new Array(24);

function UpdateCells(){
for (i=1; i<=23; i++){
for (j=1; j<=23; j++){

if (not Curr[i][j]){
Cells[i][j].gotoAndStop(2);
}
else{
Cells[i][j].gotoAndStop(1);
}
};
};
};

function TorIt(x, y)
{
if (x==0) {x=23};
if (x==24) {x=1};
if (y==0) {y=23};
if (y==24) {y=1};
return Curr[x][y];
};

mov0.GotoAndStop(1);

for (i=1; i<=23; i++){
Cells[i]=new Array(24);
Curr[i]=new Array(24);

for (j=1; j<=23; j++){
mov0.duplicateMovieClip("mov"+i+"-"+j, i*23+j);
Cells[i][j]=eval("mov"+i+"-"+j);
Cells[i][j]._x=mov0._x+(mov0._width+1)*(i-1);
Cells[i][j]._y=mov0._y+(mov0._height+1)*(j-1);
Curr[i][j]=false;
};
};

Curr[12][10]=true;
Curr[11][11]=true;
Curr[13][11]=true;
Curr[12][12]=true;

Curr[11][13]=true;
Curr[13][13]=true;
Curr[12][14]=true;

UpdateCells();
btn.onRelease = function()
{
//_root.onEnterFrame = function()
//{
ANew=new Array(24);

for (i=1; i<=23; i++){
ANew[i]=new Array(24);
for (j=1; j<=23; j++){

// tor by x
if (i-1==0)
{il=23}
else
{il=i-1}

if (i+1==24)
{ir=0}
else
{ir=i+1}

// tor by y
if (j-1==0)
{jl=23}
else
{jl=j-1}

if (j+1==24)
{jr=0}
else
{jr=j+1}


ANew[i][j]=Curr[il][jl]^
Curr[il][j ]^
Curr[il][jr]^
Curr[i ][jl]^
Curr[i ][j ]^
Curr[i ][jr]^
Curr[ir][jl]^
Curr[ir][j ]^
Curr[ir][jr];

if (not ANew[i][j]){
Cells[i][j].gotoAndStop(2);
}
else{
Cells[i][j].gotoAndStop(1);
}

};
};

_root.Curr=ANew;

// updateCells();
//}
}



Проблема в том, что во второй, в массиве Cells хранятся имена клипов-клеток, а в Curr - значения true и false. Задача тут стоит в том, чтобы по нажатию на любую из Cells в соответствующую Curr добавлялось true.

Добавлено через 57 часов 36 минут
Ауу... ну хоть кто-нибудь, отзовитесь...