Ir para conteúdo
Fórum Script Brasil
  • 0

Objeto Random


KaKarotto

Pergunta

E aí povo!

To postando aqui um objeto que fiz chamado Random. Ele faz três coisas básicamente.

1ª - Pega um número randômico no intervalo de 0 até o número passado como argumento:

Random.get(10)
No exemplo acima ele pega um número de 0 a 9. 2ª Pega um número randômico no intervalo de 0 até o número passado como argumento E não repete os números tirados anteriormente.
Random.pick(10)
No exemplo dado, se você chama 10 vezes a Random.pick, terá números aleatórios de 0 a 9. Se chamar 11 vezes, na 11ª vez vai retornar null, ou seja, ele informa que todos os números já saíram. Então, se quiser zerar e começar de novo, basta chamar a função reset:
Random.reset()
Random.pick(10)
Ele vai resetar o objeto Random, e vai começar de novo a sortear os números de 0 a 9. 3ª Retorna uma cor aleatória no formato hexadecimal.
Random.color()
Não é preciso passar parâmetros nessa função. As outras funções retornam números, essa vai retornar uma string em hexa assim: "#3a45bd", por exemplo. Não vou anexar um arquivo desta vez, vou deixar o code aqui colado para quem quiser esse objeto.
/*
 * Desenvolvido por: Eduardo Ottaviani
 * Licença : Pública
 * Email : edu.tata@gmail.com
 * Obs : Métodos com underscore são métodos usados internamente pelo objeto Random, use-os apenas se entender o seu funcionamento.
 * Url : http://scriptbrasil.com.br/forum/index.php?showtopic=145754
 */
var Random = {
    _run_ : function(range){ return Math.floor(Math.random() * range) },
    _aux_: { cont : 0 },
    
    pick : function(range){
        if( this._aux_.cont ++ >= range )
        return null
        
        var out = this._run_(range)                                 
            while(out in this._aux_)                                        
                out = this._run_(range)                    
            
        this._aux_[out] = null
        return out
    },
    
    reset : function(){ this._aux_ = {cont:0} },
    
    get : function(range){ return this._run_(range) },
    
    color : function(){
        var hexa = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "a", "b", "c", "d", "e", "f"]
        var ret = "#"
            for (var x = 0; x < 6; x++)                 
                ret += hexa[ this.get( hexa.length ) ]
        return ret
    }   
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Vlw Jonathan !!

Lembrando que sugestões são sempre bem vindas.

Dá pra adicionar novos métodos, se alguém sentir a necessidade de mais métodos é só implementar num post aqui nesse tópico mesmo, ou pedir que eu faço. ^_^

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...