JOTA LAGO (40 pts)

ÉMERSON ROCHA (85 pts)

AUTOR DESCONHECIDO (100 pts)

GÉRIO (93 pts)

DAAFY (55 pts)

BÁRBARA TOSTES (64 pts)

DAUTON JANOTA (255 pts)

SÁVIO PONTE (39 pts)

ALEXANDRE PORTO (1281 pts)

IRAPUAN MARTINEZ (45 pts)

ZEBEDIAH (35 pts)

SYDNEY GANHO (60 pts)
Treinamento PontoFlash de Flash e ActionScript

Como publicar um .SWF e fazer com que ele não mostre outra fonte?

Como se faz um menu em cascata?

Script PHP para formulário em PHP + Flash.

Um filme feito no Flash5 abre em quem só tem o FlashPlayer 4?

Como abrir uma janela pop-up tamanho fullscreen?

Como deixar minhas fontes legíveis (não embaçadas) no Flash?

Como movimentar na horizontal um objeto no mouse Over?

Biblioteca de fontes usadas em vários filmes (fontes compartilhadas).

Como esconder o menu do Flash Player MX?

Qual o significado de um Array para a programação no Flash?

Como eu poderia substituir um caractere ao longo de uma string?

É possível gravar o conteúdo de campos e variáveis do Flash em arquivos TXT?

Porque com o "With" não consigo atribuir um valor a uma variável?

Problemas com passar variáveis em um menu.
Componente ComboBox.

Controlando MovieClip pelas teclas direcionais.

Comunicação Flash-PHp-MySql - introdução

Flash e Banco de Dados.

Botões estilo Apple.com feito no PhotoShop

Roof e Marciowebmaster - Avaliação de sites

LoadVariables & OnClipEvent(data).

Objeto XML - importando para o Flash

Máscara percorrendo um caminho.

Separar mensagens das listas das pessoais, usando o Outlook

Entendendo como funciona um preloader. Terceira parte.

Post comments (Livro de Visitas)
Ligth Balls

Menu pastas

Alfabetar com colunas

Mouse Position

Call

Keypress

Slicemenu 2

Preloader avançado

Nudemask2

Gera CPF

Colors

Spring menu2
HOME | TRUQUES E DICAS
Como gerar uma seqüência randômica sem repetir os valores?
por Alisson Oldoni



Esse código gera uma seqüência randômica de N valores, de 0 até N-1. Os valores não se repetem. N é o argumento passado a função.

function geraSequencia(_number) {
    var _random, _i, _vetor = new Array();
    function jaExiste(c_valor, c_vetor) {
        var _sizeof = c_vetor.length, _i;
        for (_i=0; _i<_sizeof; _i++) {
            if (c_valor == c_vetor[_i]) {
                return (1);
            }
        }
        return (0);
    }
    for (_i=0; _i<_number; _i++) {
        do {
            _random = random(_number);
        } while (jaExiste(_random, _vetor));
        _vetor.push(_random);
    }
    return (_vetor);
}
// teste simples
foo = new Array();
foo = geraSequencia(15);
trace(foo);

Alisson Oldoni

Esse código poderia estar mais optimizado. Tente executar essa rotina passando o valor 1000 como parâmetro! Se você for sortudo ela rodará. Em um random de 15 números essa rotina levou entre 10 a 21 milisegundos para ser executada. Pensando nisso fiz um outro script que faz a mesma coisa mas que não depende da boa vontade de um random.

function geraSeq(number) {
    var tempArray = new Array();
    for (var i = 0; i        tempArray[i] = i;
    }
    for (var i = 0; i        var randIndex = Math.round(Math.random()*(number-1));
        var transicao = tempArray[randIndex];
        tempArray[randIndex] = tempArray[i];
        tempArray[i] = transicao;
    }
    return tempArray;
}
// teste
trace(geraSeq(1000));

Passando o numero 15 como parâmetro essa rotina leva 3 milisegundos para executar, com valor = 1000 ela demora 178 ms.

Rômulo Nunes


0 comentário