Jump to content

Lançamento de dois dados


sagres mini
 Share

Recommended Posts

Alguém me pode ajudar ?

Implemente um programa designado por JogoDeDados com os seguintes requisitos:

Implementar o método public static int lancaDados(int total), que simula o lançamento de dois dados representados por dois números aleatórios entre 1 e 6, e que repete o lançamento até que a soma dos pontos dos dados seja igual ao valor indicado como parâmetro (entre 2 e 12). O método devolve o número de lançamentos efectuados.

Obrigado

Link to comment
Share on other sites

é bem, copy/paste do pdf e pronto.

eu vim ter a este forum porque estava a procurar no google uma forma de gerar os tais "Lançamento de dois dados", vim dar a este link http://www.portugal-a-programar.pt/index.php?showtopic=5380

só que o random gera números entre 0 e 0.9(9) por isso * 6 gera números entre 0 e 5,9(9) , correcto?

neste momento o que tenho é isso :

algo = (int) (Math.random() * 6 +1);

há alguma maneira mais correcta ou simples de se fazer?

Link to comment
Share on other sites

Eu faria de forma diferente...

Criaria um array de inteiros com 6 posição onde colocaria os números de 1 a 6 (um por posição).

Depois faria duas vezes o random e o resultado do random seria a posição do array a que iria tirar o número.

int[] dado = {1,2,3,4,5,6};

Random random = new Random();

int aux1 = random.nextInt(6); //Devolve um inteiro entre 0 e 6.

int aux2 = random.nextInt(6);

System.out.println("Dado 1: " + dado[aux1] + " " + "Dado 2: " +dado[ aux2]);

É verdade, tens que fazer import do java.util.Random

(Não sei se o código está totalmente certo, fiz directamente aqui).

Relativamente ao ser igual ao que é passado como parâmetro, é uma questão de fazeres:

int soma = dado[aux1] + dado[aux2];

if(soma == total)

    return contador;

else

    contador++;

Link to comment
Share on other sites

int[] dado = {1,2,3,4,5,6};

Random random = new Random();

int aux1 = random.nextInt(6);

int aux2 = random.nextInt(6);

int soma = dado[aux1] + dado[aux2];

while ( soma == 2 ) {

   

System.out.println(" os olhos de serpente saiu passado" + soma + "lancamentos");

++ soma;

o programa nao tem nada a ver com isto, pois nao?

Link to comment
Share on other sites

int soma;

int[] dado = {1,2,3,4,5,6};

Random random = new Random();

do {

        int aux1 = random.nextInt(6);

int aux2 = random.nextInt(6);

int soma = dado[aux1] + dado[aux2];

}

while (soma == 2);

System.out.println(" os olhos de serpente saiu passado" + soma + "lancamentos");

++soma;

}

}

estou perto do resultado final? gostaria mesmo de ajuda

Link to comment
Share on other sites

Eu faria de forma diferente...

Criaria um array de inteiros com 6 posição onde colocaria os números de 1 a 6 (um por posição).

Depois faria duas vezes o random e o resultado do random seria a posição do array a que iria tirar o número.

int[] dado = {1,2,3,4,5,6};

Random random = new Random();

int aux1 = random.nextInt(6); //Devolve um inteiro entre 0 e 6.

int aux2 = random.nextInt(6);

System.out.println("Dado 1: " + dado[aux1] + " " + "Dado 2: " +dado[ aux2]);

É verdade, tens que fazer import do java.util.Random

(Não sei se o código está totalmente certo, fiz directamente aqui).

Relativamente ao ser igual ao que é passado como parâmetro, é uma questão de fazeres:

int soma = dado[aux1] + dado[aux2];

if(soma == total)

    return contador;

else

    contador++;

Boa tarde,

eu tentei meter o programa a funcionar mas nao consegui, sera que alguem me pode ajudar?

import java.util.*;

public class JogoDeDados {

 

  public static int lancaDados(int total) {

    Scanner teclado = new Scanner(System.in);

int[] dado = {1,2,3,4,5,6};

Random random = new Random();

int aux1 = random.nextInt(6); //Devolve um inteiro entre 0 e 6.

int aux2 = random.nextInt(6);

System.out.println("Dado 1: " + dado[aux1] + " " + "Dado 2: " +dado[ aux2]);

int soma = dado[aux1] + dado[aux2];

if(soma == total)

    return contador;

else

    contador++;

}

}

obgd

Link to comment
Share on other sites

import java.util.Random;

public class JogoDeDados3 {

public static void main( String[] args ){

int soma;

int[] dado = {1,2,3,4,5,6};

Random random = new Random();

do {

int aux1 = random.nextInt(6);

int aux2 = random.nextInt(6);

int soma = dado[aux1] + dado[aux2];

}

while (soma != 2);

System.out.println(" os olhos de serpente saiu passado" + soma + "lancamentos");

++soma;

}

}

o programa deve ser este certo?

mas da me um erro  nesta linha " int soma = dado[aux1] + dado[aux2]; " e na linha de comandos diz soma is already defined in    main( Java.lang.String ) nao entendo o erro.

o que devo mudar?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.