Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Клеточный автомат (http://www.flasher.ru/forum/showthread.php?t=123471)

Altera Pars 02.04.2009 23:29

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

Stargazer 02.04.2009 23:40

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

Altera Pars 03.04.2009 07:52

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

Altera Pars 03.04.2009 09:01

Код AS1/AS2:

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 минут
Ауу... ну хоть кто-нибудь, отзовитесь...


Часовой пояс GMT +4, время: 03:27.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.