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

Mr. Fixit 28.10.2006 23:09

Случайный массив
 
Проблема:
Незнаю как решить задачу...
-------------------------------
Как сделать что-бы выбирался случайный массив?
Код:

//vars
var myArr:Array = new Array();
myArr = ["A", "B", "C"];
len = myArr.length;
//on button
next_btn.onRelease = function() {
        ran = int(Math.random()*len);
        _root.attachMovie(myArr[ran], "mc", 0);
        _root.mc._x = Stage.width/2;
        _root.mc._y = Stage.height/2;
};

на сцену выводится, то "A" 2-раза, то "B" n-раз, то "C" n-раз...
----------------------------------------------
Вопрос: как сделать, что бы если запускаешь функцию, то выводилось например "А", но неповтрялось вторично, а сдедовало за ним следущие "С" или "В", тоесть отбор случайности не повторялся до тех пор пока все елементы массива не пройдут...

iNils 28.10.2006 23:20

Я уже устал считать, сколько раз я эту функцию писал. Вы поиском пытались воспользоваться?

Хемуль 28.10.2006 23:22

Не проверял... Может и не работать...
Код:

//vars
var myArr:Array = new Array();
myArr = ["A", "B", "C"];
var myArrLength:Number = myArr.length;
var tempArr:Array = new Array();
resetTempArray();

function resetTempArray()
{
    for (var index:Number = 0; index < myArrLength; index++)
    {
        tempArr.push(myArr[index]);
    }
}

//on button
next_btn.onRelease = function() {
    var len:Number = tempArr.length;
    if (len == 0)
    {
        resetTempArray();
        len = tempArr.length;
    }
    var ran:Number = randRange(0, len - 1);
    _root.attachMovie(tempArr[ran], "mc", 0);
    _root.mc._x = Stage.width/2;
    _root.mc._y = Stage.height/2;
    tempArr.splice(ran, 1);
};

function randRange(min:Number, max:Number):Number {
    var randomNum:Number = Math.round(Math.random()*(max-min))+min;
    return randomNum;
}


D12 29.10.2006 01:10

Код:

Fenix = 0;
var arr = ["a", "b", "c"];
this.onMouseDown = function() {
        ran = random(arr.length);
        _root.attachMovie(arr[ran], "mc", 1);
        _root.mc._x = _xmouse;
        _root.mc._y = _ymouse;
        if (ran == 0) {
                arr.splice(0, 1);
                Fenix += 1;
        }
        if (ran == 1) {
                arr.splice(1, 1);
                Fenix += 1;
        }
        if (ran == 2) {
                arr.splice(2, 1);
                Fenix += 1;
        }
        if (Fenix == 3) {
                Fenix = 0;
                arr.splice(0, 0, "a", "b", "c");
        }
};

держи =)

iNils 29.10.2006 01:13

2 D12: тебе не приходило в голову, что
Код:

if (ran == 0) {
        arr.splice(0, 1);
        Fenix += 1;
}
if (ran == 1) {
        arr.splice(1, 1);
        Fenix += 1;
}
if (ran == 2) {
        arr.splice(2, 1);
        Fenix += 1;
}

можно записать как
Код:

arr.splice(ran, 1);
Fenix ++;


D12 29.10.2006 01:18

Многоуважаемый iNils это ты должен знать , флешь твоя работа и ты в ней совершенствуешся =)
а я так итузиазист : )

P.S. Постораюсь расти над собой : )

Mr. Fixit 29.10.2006 01:22

Сенкс чуваки....

iNils 29.10.2006 01:24

2 D12: Ладно прибедняться :)

Wolsh 29.10.2006 01:57

Мой старый гениальный код :) Не смейтесь, он НИКОГДА не ошибается
Код:

my_btn.onPress = function()  {
        n=(random(5)+ 1);
       
    if (n == m) {n=(random(5)+1)};
        if (n == m) {n=(random(5)+1)};
        if (n == m) {n=(random(5)+1)};
        if (n == m) {n=(random(5)+1)};
        if (n == m) {n=(random(5)+1)};
       
        m=n;
       
        trace(m);
}


Хемуль 29.10.2006 02:16

2 Wolsh:
Да, это действительно не смешно... +_+


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

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