gerando números aleatórios - java

Em um post anterior (gerando números aleatórios) eu fiz uma função para gerar números aleatórios na linguagem C. Agora aí vai uma versão java fortemente inspirada na maneira que faço no post mencionado.

O que eu queria fazer era um bobo jogo de dados. No lançamento de um dado ele me retornaria um valor aleatório entre 1 e 6, inclusive. Aí vai a implementação da classe Dado.


import java.util.Random;

public class Dado {
        private int valorDaFace;
        private static int seed = 0;

        public int getValorDaFace() {
                return valorDaFace;
        }

        public void lançar() {
                Random r = new Random(System.currentTimeMillis() + seed++);

                valorDaFace = 1 + r.nextInt(6);
        } // fim de lançar()

} // fim da classe Dado


O atributo seed é para evitar que quando dois dados sejam lançados um seguido do outro, o resultado seja o mesmo. Em outras palavras, o método System.currentTimeMillis() se chamado muito próximo um do outro, pode retornar o mesmo valor, e isso faria Random gerar o mesmo número. O seed sempre diferente contorna esse problema.

tags: Java

comments powered by Disqus