Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   И снова арреи, но не просто..... (http://www.flasher.ru/forum/showthread.php?t=24166)

Countach 07.12.2001 00:44

И снова арреи, но не просто.....
 
Я тут уже спрашивал недавно про массивы во флэше, а вот теперь появилось не сколько других проблем. PS мы говорим исключительно о двухмерных массивах. И просьба не засарять топик ненужными коментариями, спасибо. :)
В прошлый раз мы нашли очень удобный метод

Цитата:

a=new Array(2);
b=new Array(2);
myarray= new Array(a,b);
for (i=0; i<2; i++) {
for (j=0; j<2; j++) {
myvar=random(5);
myarray[i][j]=myvar;
}
}
for (i=0; i<2; i++) {
for (j=0; j<2; j++) {
myvar=myarray[i][j];
trace(myvar);
}
}
Тут вродеб все чудненько, но у меня такой случай, что я не знаю размеры массива с самого начала :(
То есть
будет например переменная
NoResources=6; //кол-во ресурсов в системе
И будет другая переменная, которую введет пользователь
NoProcesses

Вот мне и надо бы хотя бы один примерчик как такое осуществить, надо задекларировать массив, занести туда данные, а потом есстесно считать данные оттуда :) вот и все.

Пологите пожалуйста, и желательно не очень трудным способом, а то итак программа будет нагружена ойойой как :)
Всем заранее спасибо :)

Big_J_ 07.12.2001 12:42

Ну чтож наверно надо кратко да :)
 
Кароче говоря делаеш форму первое поле получает переменную "X" да и второе к примеру переменную "Y"...

потом пишеш

my_array = new Array () - создали одномерный массив но не определили для него размера :) !!!

за тем

Код:

for (i = 0; i<= X ; i++){
  //здесь присваеваеш для каждого элемента массива свой массив!!!
  for (j = 0; j<= Y ; j++){
    //здесь описуеш свой массив
    my_array[i] = new Array(); опять таки не определенного размера :). Затем тулиш туда свои переменные
    my_array[i][j] = {...}-это не указатель как прописывать строку а указатель на пустое множество типа можно присвоить чему хочеш ... Это не намек на C++... :D
  }
}

Ну вот и все но я кажется уже об этом писал когдато :D :) :D

Big_J_ 07.12.2001 12:50

Чуть не забыл :)
 
Читать массив my_array также как и заполнять

variable = y_array[x][y]

где
  • - x,y - переменные я думаю тебе известные
  • - variable переменная каторой нужно присвоить ечейку массива

Да чуть не забыл если у тебя массив будет не матричного вида а на пример такой

1,2,3,4,5,6,7,8,9,0
2,3,4,5,6,7,8
1,2,3,3,4,5,6,7,8,0
1,1,2,2,1,1
1,

то в место пустых ячеек flash присваюет нолики хотя я думаю ты и сам догадалси :D то есть получиш ты такое вот...

1,2,3,4,5,6,7,8,9,0
2,3,4,5,6,7,8,0,0,0
1,2,3,3,4,5,6,7,8,0
1,1,2,2,1,1,0,0,0,0
1,0,0,0,0,0,0,0,0,0

удачи ;)

Countach 07.12.2001 20:00

Блин ну написано вроде намана, но вот проблемки опять. Теперь конкретней :)

Код:

my_array = new Array ();
X=6;
Y=5;

for (i = 0; i<= X ; i++){
  for (j = 0; j<= Y ; j++){
      my_array[i] = new Array();
      my_array[i][j] = {...};
  }
}

my_array[1][1]=6;
trace(my_array[1][1]);

В output выводит следущее, просто во флешке такое никада не делал и не знаю, это наверное оч просто
Цитата:

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 8: Identifier expected
my_array[i][j] = {...};

Scene=Scene 1, Layer=Layer 1, Frame=1: Line 10: Unexpected '}' encountered
}
Вообщем помогите пожалуйста :( почему он так ругается?

ЗЫ мне это фигня не понятна на С++ смахивает но типа что тут, и действительно ли надо 3 и только 3 точки там, что синтаксис такой типа ? :)
Код:

my_array[i][j] = {...};

Countach 07.12.2001 20:03

А вот так ВАЩЕ ни хрена не выводит :(
Код:

my_array = new Array ();
X=6;
Y=5;

for (i = 0; i<= X ; i++){
  for (j = 0; j<= Y ; j++){
      my_array[i] = new Array();
      myvar=random(5);
      my_array[i][j] = myvar;
  }
}

trace(my_array[1][1]);

:confused:

Countach 07.12.2001 20:07

PS плиз не используйте Х и У как фиг знает чё, пишите плизззз row и column
а то итак через задницу все во флэшке ;)

Countach 07.12.2001 20:17

Не млин мне пора на прогулку, а то уже хернииииия пошла. :)
Код:

my_array = new Array ();
X=6;
Y=5;

for (i = 0; i<= X ; i++){
      my_array[i] = new Array();
  for (j = 0; j<= Y ; j++){
      myvar=random(5);
      my_array[i][j] = myvar;
  }
}

for (i = 0; i<= X ; i++){
  for (j = 0; j<= Y ; j++){
      trace(my_array[i][j]);
  }
}

Во так работаеть :)

Блин а все-таки Х=row, Y=column??? Правильно???

ЗЫ Big_J_=Big_thx_;

ish 07.12.2001 20:18

ну дык а количество элементо массива кто указывать будет? :)
или так тогда:

my_array = new Array ();
X=6;
Y=5;

for (i = 0; i<= X ; i++){
my_array.push(new Array());
for (j = 0; j<= Y ; j++){
myvar=random(5);
my_array[i].push(myvar);
}
}

trace(my_array[1][1]);

или же:

X=6;
Y=5;
my_array = new Array(X);


for (i = 0; i<= X ; i++){
my_array[i]=new Array(Y)
for (j = 0; j<= Y ; j++){
myvar=random(5);
my_array[i][j]=myvar;
}
}

trace(my_array[1][1]);

Countach 07.12.2001 20:22

2ish
пасибки
Но вот тока я смотрю вы тут все STACK любите трогать, со всеми там "пуш энд поп" :)

Вот как я сделал, так мона ж тоже. Наверно тоже прально. Или я не усек мистейку??? ;)

Countach 07.12.2001 20:26

[joke]
Эээээээ почему он мне 42 элемента в аутпут выдает вместо 30 (типа 6 на 5)????
Не понял :(
[/joke]

Код:

my_array = new Array ();
X=6;
Y=5;

for (i = 0; i< X ; i++){
      my_array[i] = new Array();
  for (j = 0; j< Y ; j++){
      myvar=random(5);
      my_array[i][j] = myvar;
  }
}

for (i = 0; i< X ; i++){
  for (j = 0; j< Y ; j++){
      trace(my_array[i][j]);
  }
}

Тут просто до меньше икса надо идти, а не до меньше равно :)
Код:

for (i = 0; i< X ; i++){


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

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