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

Countach 09.01.2002 15:24

Ну ваще :( он просто виснет здесь :(
 
Вложений: 1
Драсте :)
Вот срочняк, завтра здать надо, я провалял дурака думал все ОК, а не тут то было, вообщем на этом месте комп просто стоит какое-то время я не говорю о том чтобы уж делать то чё надо :( а потом говорит типа проблема со скриптом и прекращает его выполнение :(
Вот на этом месте, тут есть сразу так если сказать какие-нить проблемы, может синтаксис или еще чё :(
Код:

counter = 0;
precounter = 0;
signal = true;

while (signal != false) {
        for (Row=0; Row<NoProcesses; Row++) {
                for (Column=0; Column<NoResources; Column++) {
                        if ((NeedI[Row][Column]<=AvailI[Column]) && (Status[Row] == false)) {
                                Finish[Column] = true;
                        }
                }
                Pid = true;
                for (Column=0; Column<NoResources; Column++) {
                        if (Finish[Column] == false) {
                                Pid = false;
                        }
                }
                Status[Row] = Pid;
                if (Pid == true) {
                        counter++;
                        AvailTemp[Column] += AllocTemp[Row][Column];
                }
        }
        // end of outer for loop
        Pst = true;
        for (Row=0; Row<NoProcesses; Row++) {
                if (Status[Row] == false) {
                        Pst = false;
                }
        }
        if (Pst == true) {
                gotoAndPlay ("safe");
                // all "true" in the status array
        }
        signal = false;
        if (counter>precounter) {
                precounter = counter;
                signal = true;
        }
}
// end while loop
AvailI[ColumnR] = AvailI[ColumnR]+Request;
AllocI[RowR][ColumnR] = AllocI[RowR][ColumnR]-Request;
NeedI[RowR][ColumnR] = NeedI[RowR][ColumnR]+Request;
gotoAndPlay ("unsafe");

Помогите плиз :)

Вот исходник, ну не знаю он может и не понадобится :)

Countach 09.01.2002 16:20

Вложений: 1
НЕ вот этот файл лучше :)

Countach 09.01.2002 19:22

Не я конечно понимаю све, но как такое возможно, чтобы ФОР ЛУП просто пропускался, а не выполнялся :(
Код:

else {
        // terminate random process
        RowR = random(NoProcesses);
        for (Column=0; Column<NoResourses; Column++) {
                trace ("test");
                AvailI[Column] = AvailI[Column]+AllocI[RowR][Column];
                NeedI[RowR][Column] = MaxI[RowR][Column];
                AllocI[RowR][Column] = 0;
        }
        trace ("Terminate process");
        gotoAndPlay ("request");
}

В аутпут я вижу Terminate process, но не вижу test
Это как такое быть может :)
просто нет слов

yurail 09.01.2002 19:35

tak... ti sovsem brjaknulsja....
ti zh na C++ pishesh.... nu dik na fig takoe na flash pihat>???? (po druzheski)

Countach 09.01.2002 21:36

Юра согласен, я сам себе это не прощу :(
но расклад был такой :(

1. Поспорил, что зафигачу это во флеше, потипу слегка обломался :(

2. Хотел флеш програминг получше выучить, приятное с полезным совместить

Но меня флеш сильно разочаровал прям так скажу :
дело в следущем

декларируем два массива
Код:

AvailI = new Array(NoResources);
AvCons = new Array(4, 5, 16, 2, 12, 64);

Затем приравниваем, один к другому
Код:

AvailI = AvCons;
а потом в другом кадре меняем значения одного !!! лишь одного массива, но какого-то хрена, они как зеркальные копии меняются вместе...
А мне нуна оригинал держать не изменным...
КАК ЭТО СДЕЛАТЬ
блин во всех языках, копия и оригинал разные вещи :(

lexass 10.01.2002 11:52

function origToTMP(){
for(var i=0;i<original.length;i++)
{
tmpOrig[i]=original[i]
}
}

C2Plus 10.01.2002 11:59

Во-первых, если условие в цикле ФОР не выполняется, он и не будет выполнятся. Совершенно точно тебе говорю, что NoResourses на подходе к циклу у тебя либо 0 либо undefined тогда все, кирдык-хана. :)

Во-вторых, RTFM - массив есть лишь ссылка на него, тоже самое ты получих и на Сях. Копии делаются так: YourArray.slice(0,-1) - вернет новый массив, идентичный YourArray. Переменная принимающая массив, может быть не определена.

C2Plus 10.01.2002 12:10

по этой же причине, вот это:

if (counter>precounter) {
precounter = counter;
signal = true;
}

у тебя не выполнится никогда, и цикл будет бесконечным.

Countach 10.01.2002 15:45

Пасиба снова но вот тут совсем другая проблема была :(
Код:

if (counter>precounter) {
precounter = counter;
signal = true;
}

Это выполняется и причем прекрасненько :)

С ФОР лупом проблема была в следущем:
у меня есть переменная - NoResources
А я обращаялся к - NoResourses

Все вроде теперь работаеть :)
пасиба всем


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

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