Форум 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=76367)

Geo Storm 04.03.2006 06:41

Массив не заполняется
 
Пишу код:
Код:

Items = []; // и уже заполнен

Massiv = [[[[]]]]; // 5x5x5x8

for ( x = 0; x<4; x++) {
        for ( y = 0; y<4; y++) {
                for ( z = 0; z<4; z++) {
                        for ( i = 0; i<6; i++) {       
                                if ( Math.random() > 0.6 ) {       
                                        t = Math.floor( Math.random() * 13 );
                                        Massiv[x][y][z][i] = Items[t];
                                } else {                                               
                                        Massiv[x][y][z][i] = 0;
                                }
                                trace(Massiv[x][y][z][i]);
                                trace(x+"_"+y+"_"+z+"_"+i);
                        }
                        Massiv[x][y][z][6] = Math.floor( Math.random() * 8 );
                        trace("Цвет:"+Massiv[x][y][z][6]);
                        if ( Math.random() > 0.7 ) {               
                                Massiv[x][y][z][7] = Math.floor( Math.random() * 6 );
                        } else {                                               
                                Massiv[x][y][z][7] = 0;
                        }
                        trace("Тема:"+Massiv[x][y][z][7]);
                }
        }
}

Первый цикл по z отрабатывается - и все. Дальше trace дает пустые места для Massiv, даже не undefined.
Что за беда, подскажите, пожалуйста.

Буньков Максим 04.03.2006 10:13

Цитата:

Сообщение от Geo Storm
Пишу код:
Первый цикл по z отрабатывается - и все. Дальше trace дает пустые места для Massiv, даже не undefined.
Что за беда, подскажите, пожалуйста.

Определение массива не совпадает с приминением к ниму переменных. по твоему коду я бы заполнил только 1-е ячейки твоего массива.

А если определить весь массив то все работает.
Код:

Massiv=[[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]],[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]],[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]],[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]],[[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]],[[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]],[[],[],[],[],[]]]]]
А от седого можно сделать вывод... что юзать надо massiv.push(); в каждом цикле.

Geo Storm 04.03.2006 10:25

Спасибо большое, так все работает.
Маманегорюй, 2186 символов, и это всего лишь для 4-мерного массива? Страшно помыслить о пятимерном..

Double 04.03.2006 10:58

у меня вот так работает
Код:

for (i=0, a=[]; i<n; i++) {
        for (j=0, a[i]=[]; j<n; j++) {
                for (k=0, a[i][j]=[]; k<n; k++) {
...

так что хоть N-мерный. и ничего не страшно ;)

Geo Storm 04.03.2006 17:50

Йолки-палки, действительно работает! Спасибо!
Но откуда известно, что в цикле можно инициировать несколько переменных? В хелпе такого нет.. Вот и век учись ;)

Double 05.03.2006 08:34

я у silin-а когда-то подсмотрел, на самом-то деле :)

Буньков Максим 06.03.2006 18:26

Цитата:

Сообщение от Double
я у silin-а когда-то подсмотрел, на самом-то деле :)

В хелпе по Jave написано :)


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

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