Olá, então, eu comecei em java tem pouco tempo, sei fazer o básico do básico mesmo, e eu tava aqui treinando um pouco e fui fazer um tipo de joguinho, mas preciso fazer um sistema tipo um dado, e não tenho idéia de como posso fazer isso, alguem teria alguma sugestão pra me dar?
[Resolvido]Sistema de sorteio de numeros (Como um dado)
6 Respostas
Você quer gerar um número aleatório entre 1 e 6? É isso?
import java.util.Random;
public class Foo {
public static void main( String[] args ) {
int n;
Random r = new Random();
for ( int i = 0; i < 10; i++ ) {
n = r.nextInt( 6 ) + 1;
System.out.println( "Sorteou: " + n );
}
// ou...
for ( int i = 0; i < 10; i++ ) {
n = (int) ( Math.random() * 6 ) + 1;
System.out.println( "Sorteou: " + n );
}
}
}
O método nextInt(int) da classe Random vai retornar um inteiro, entre 0 (inclusive) e o número passado (exclusive). No exemplo, é passado 6, então o método retornará 0, ou 1, ou 2, ou 3, ou 4, ou 5. Por isso, soma-se 1 para ajustar o intervalo.
O método random() de Math retorna um valor (double) entre 0 (inclusive) e 1 (exclusive). Para obter o intervalo desejado, multiplica-se o retorno pelo valor máximo de itens que serão gerados, converte-se o resultado em inteiro (int) e soma-se 1 para fazer o ajuste como no exemplo anterior.
[]'s
Ah, outra coisa.
Como você é novo aqui, uma dica. Não precisa colocar AJUDA no título do tópico, afinal, normalmente a gente abre um tópico para pedir ajuda. 
[]'s
olha só este post que fiz.
tb tenho um jogo mais incrementado, podes me mandar um email para conhecer :
[email removido]
olha o método do dado…
public void comUmDado() {
//joga o dado 1
//toca o som
carregarSom(1);
tocaSom();
double x = 0;
//cria o randomico
x = Math.random() * 6;
x = x + 1;
//converte para int
int b = (int) x;
String b11 = String.valueOf(b);
jTdado1.setText(b11);
//calculos sem dado2
jDado2.setText("");
jDado2.setIcon(Dado0);
if (b == 1){
jDado1.setText("");
jDado1.setIcon(Dado1);
}
if (b == 2) {
jDado1.setText("");
jDado1.setIcon(Dado2);
}
if (b == 3) {
jDado1.setText("");
jDado1.setIcon(Dado3);
}
if (b == 4) {
jDado1.setText("");
jDado1.setIcon(Dado4);
}
if (b == 5) {
jDado1.setText("");
jDado1.setIcon(Dado5);
}
if (b == 6) {
jDado1.setText("");
jDado1.setIcon(Dado6);
}
//faz a soma
int valor1 = Integer.parseInt(jTdado1.getText());
//int soma = valor1;
soma = valor1;
jTsoma.setText("" + soma);
//coloca a label toda hora informando o que está acontecendo com os dados e casas
if (valor1 == 1) {
jLabelStatus2.setText("Informação: Você estava na casa " + somaTotal + " , obteve " + soma + " ponto");
} else {
jLabelStatus2.setText("Informação: Você estava na casa " + somaTotal + " , obteve " + soma + " pontos");
}
//somatotal
somaTotal = somaTotal + soma;
jogadas = jogadas + 1;
jTjogadas.setText("" + jogadas);
jLabelStatusCasa.setText(", e chegou na casa " + somaTotal);
//aqui para tirar ou saber a casa ocupada...
somaAnterior = somaTotal - soma;
//sem comportamento automaticamente, mas se houver mudanças, acusa.
jLabelStatus3.setText("Informação: Na casa " + somaTotal + " nao existe nenhum comportamento");
jLabelStatus.setText("STATUS: Esta casa não tem comportamento!");
//icone
jComportamento.setIcon(sem);
jAvancou.setIcon(normal);
}
import java.util.Random;
public class JavaTeste {
public static void main( String[] args ) {
int n;
Random r = new Random();
for ( int i = 0; i < 10; i++ ) {
n = (int) ( Math.random() * 6 ) + 1;
System.out.println( "Sorteou: " + n );
break;
}
}
}
só coloquei um break ali pra ele sortear uma vez só e parar, obrigado.
Oloco, não precisa do break, porque você não precisa do for.
Coloquei o exemplo do for para mostrar em execução várias vezes.
Use o que está dentro do bloco e pronto.