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

Merf 08.05.2012 12:12

Функция возвращает одно и то же значение
 
Здравствуйте, у меня одна проблема.

Код AS1/AS2:

function turel_define(array_id:Number):Array
{
    var temp_array:Array = turels[array_id];
    temp_array = turels[array_id];
    temp_array[1] = races[Math.floor(Math.random() * 8) + 1];
    temp_array[3] = turels[array_id][3] + (Math.floor(Math.random() * (turels[array_id][3] / 5) - (turels[array_id][3] / 10)));
    temp_array[4] = turels[array_id][4] + (Math.floor(Math.random() * (turels[array_id][4] / 5) - (turels[array_id][4] / 10)));
    temp_array[5] = turels[array_id][5] + (Math.floor(Math.random() * (turels[array_id][5] / 10) - (turels[array_id][5] / 20)));
    temp_array[6] = turels[array_id][6] + (Math.floor(Math.random() * (turels[array_id][6] / 5) - (turels[array_id][6] / 10)));
    temp_array[7] = turels[array_id][7] + (Math.floor(Math.random() * (turels[array_id][7] / 10) - (turels[array_id][7] / 20)));
trace(temp_array);
    return temp_array;
}
 
for (var i:Number = 1; i <= 5; i++)
{
    ship_stats[i] = turel_define(0);
}

В цикле 5 раз вызываю функцию. Она должна произвести некоторые математические действия и вернуть массив с числами. Каждый масив записать в масив ship_stats. В функции производятся действия которые должны вернуть более менее рандомное число, основываясь на некоторых переменных, но тем не менее каждый элемент массива ship_stats идентичен друг другу.

trace(temp_array) выдает правильные результаты, всегда разные.

Подскажите пожалуйста, почему функция каждый раз записывает один и тот же масив в масив ship_stats?

mooncar 08.05.2012 12:41

А где у вас определяется turels, races?
Вообще контекст неполный, было бы проще, если бы лишнее убрали или уж тогда было бы все нужное.

Merf 08.05.2012 12:51

Цитата:

Сообщение от mooncar (Сообщение 1078645)
А где у вас определяется turels, races?
Вообще контекст неполный, было бы проще, если бы лишнее убрали или уж тогда было бы все нужное.

Определяются в предыдущем кадре.

Сделал так:

Код AS1/AS2:

function turel_define(array_id:Number):Array
{
    var temp_array:Array = new Array();
    temp_array[1] = Math.random();
    temp_array[3] = Math.random();
    temp_array[4] = Math.random();
    temp_array[5] = Math.random();
    temp_array[6] = Math.random();
    temp_array[7] = Math.random();
    trace(temp_array);
    return temp_array;
}
 
for (var i:Number = 1; i <= 5; i++)
{
    ship_stats[i] = turel_define(0);
}

и записались разные значения. Значит проблема в моих вычислениях.
Спасибо что натолкнули. Буду разбиратся.


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

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