estava precisando de um codigo q embaralhasse cartas e encontrei esse:
rnd=0;aux="";for(i=0;i<tabuleiro.length;i++){// Loop encarregado de embaralhar os elementos. rnd=Math.random()*11;rnd=Math.round(rnd);aux=tabuleiro[i];tabuleiro[i]=tabuleiro[rnd];tabuleiro[rnd]=aux;}
mas na realidade, nem entendi muito o q ele esta fazendo. O que akele math.round faz ?
Quem garante q aos numeros naum sairao repetidos?
alguem pode me explicar o que esta acontecendo a partit da linha do math.round ???
1.Cria um loop para varrer todas as posições; num baralho, 52
2.Gera um numero inteiro randomicamente entre 0 e 11
3.Troca de posição os elementos (cartas) de indices i e rnd, que proporciona o embaralhamento.
S
sky
[b][color=violet]mas tipo, não tem como esse numero gerado sair repetido naum ?
como faço para naum repetir os numeros gerados ?[/color][/b]
akumaldo
sky:
[b][color=violet]mas tipo, não tem como esse numero gerado sair repetido naum ?
como faço para naum repetir os numeros gerados ?[/color][/b]
Então…acho legal você usar a classe random…do java.util
LPJava
sky:
[b][color=violet]mas tipo, não tem como esse numero gerado sair repetido naum ?
como faço para naum repetir os numeros gerados ?[/color][/b]
ae parceiro tem a classe Random, que ele pega o horario do pc que vai alterando a cada segundo e gera o numeros aleatorios!! depender do valor que vc deseja tem uma probabilidade de repetir sim!!
akumaldo
camilolopes:
sky:
[b][color=violet]mas tipo, não tem como esse numero gerado sair repetido naum ?
como faço para naum repetir os numeros gerados ?[/color][/b]
ae parceiro tem a classe Random, que ele pega o horario do pc que vai alterando a cada segundo e gera o numeros aleatorios!! depender do valor que vc deseja tem uma probabilidade de repetir sim!!
Sim camilo…tem uma probalidade de repetir como você falou…mas como a seed é pega pelo horário…as chances são pequenas e se repetir é uma questão de probabilidade mesmo…e de quantos numeros irá pegar…
Inclusive a classe random, você pode dar a seed para o construto na hora de criar a instancia…ai no caso os numeros aleatorios gerados seram sempre os mesmos, sempre que você rodar a aplicação…