Ajuda "Jogo de dados" -JAVA-

6 respostas
M

Minha professora passou esse exercício pra nós, eu fiquei a tarde toda em cima, mas não consegui resolver :XD: ,
desde já agradeço a ajuda. :thumbup:

Jogo de dados

:arrow: 5 dados são lançados, a cada lance o jogador decide se quer parar ou
não, caso queira continuar terá mais duas chances, totalizando 3
rodadas de lances.
:arrow: O objetivo do jogo é obter a soma dos valores da face(1-6) escolhida.
:arrow: Ganha o jogador que tiver a maior soma.
:arrow: Se o jogador não escolher nenhum lance, na última tentativa o próprio
jogo decide qual valor somar, dentre as faces que aparecem mais, se
der empate entre a soma das faces, o programa deve somar a face que
aparece por primeiro.
:arrow: Somente duas pessoas devem jogar.
:arrow: O programa deverá utilizar vetores e métodos, pelo menos dois métodos
devem ser criados no programa.

6 Respostas

di.magdaleno

Michele, posta o código que você já fez e onde ficou com dúvida. Assim fica mais fácil de te ajudar!

M

Eu não entendi direito o que ela queria, depois de pesquisar um jeito de fazer números aleatórios o código ficou assim:

import java.util.Scanner;
public class Trabalho_2 {

/**
 * @param args
 */
public static void main(String[] args) {
	Scanner teclado = new Scanner (System.in);
	int T,cont = 0, a, b, c, d, e,rand, rand2,rand3, rand4, rand5,valor1=0, valor2=0, valor3=0,valor4=0, valor5=0, continuar=0;
	
	do{
		if(cont <3){
		int[] vetor_a = new int[1];  
        for(a = 0; a < vetor_a.length; a++) {  
            rand = (int) (1 + Math.random() * 6);
            vetor_a[a] = rand;
            valor1 = vetor_a[a];
        }  
        for(a = 0; a < vetor_a.length; a++) {  
            System.out.println("DADO 1:  valor  " + vetor_a[a]);  
        }
        int[] vetor_b = new int[1];  
        for(b = 0; b < vetor_b.length; b++) {  
            rand2 = (int) (1 + Math.random() * 6);
            vetor_b[b] = rand2;
            valor2 = vetor_b[b];
        }  
        for(b = 0; b < vetor_b.length; b++) {  
            System.out.println("DADO 2:  valor  " + vetor_b[b]);  
        }
        int[] vetor_c = new int[1];  
        for(c = 0; c < vetor_c.length; c++) {  
            rand3 = (int) (1 + Math.random() * 6);
            vetor_c[c] = rand3;
            valor3 = vetor_c[c];
        }  
        for(c = 0; c < vetor_c.length; c++) {  
            System.out.println("DADO 3:  valor  " + vetor_c[c]);  
        }
        int[] vetor_d = new int[1];  
        for(d = 0; d < vetor_d.length; d++) {  
            rand4 = (int) (1 + Math.random() * 6);
            vetor_d[d] = rand4;
            valor4 = vetor_d[d];
        }  
        for(d = 0; d < vetor_d.length; d++) {  
            System.out.println("DADO 4:  valor  " + vetor_d[d]);  
        }
        int[] vetor_e = new int[1];  
        for(e = 0; e < vetor_e.length; e++) {  
            rand5 = (int) (1 + Math.random() * 6);
            vetor_e[e] = rand5;
            valor5 = vetor_e[e];
        }  
        for(e = 0; e < vetor_e.length; e++) {  
            System.out.println("DADO 5:  valor  " + vetor_e[e]);  
        }
        int SOMA = (valor1 + valor2 + valor3 + valor4 + valor5);
        System.out.println("A soma dos valores é :" + SOMA);
	System.out.println("Deseja continuar?  1-Sim  ou  2-Não");
	continuar = teclado.nextInt();
	if(continuar == 1){
		cont = cont +1;
		}
		else{
		}
		}else{
			}
	}while (continuar == 1);
}

}

B

Tbm sou novato em java, entao estou buscando ajudar os outro pra pegar pratica e tal.

Não aprendi a usar vetores.

Mais para você sortear um numero de 1 a 6 poderia fazer assim:

String [] numeros = {"1", "2", "3", "4", "5", "6"}; Random sortear = new Random (); int sortear1 = sortear.nextInt(numeros.length)+1; System.out.println("Número sorteado foi: " + sortear1);
ou

ArrayList<Integer> teste = new ArrayList<Integer>();
		for(int numeros=1; numeros<7; numeros++){
			teste.add(numeros);
		}
		Collections.shuffle(teste);
		for(int numeros=1; numeros<7; numeros++){
			System.out.print(teste.get(numeros) + " ");
		}
lembrando que vai ter que importar isso:

import java.util.Collections;

import java.util.Random;

import java.util.Scanner;

Não entendi muito bem essa parte aqui :
*5 dados são lançados, a cada lance o jogador decide se quer parar ou
não, caso queira continuar terá mais duas chances, totalizando 3
rodadas de lances.
*Se o jogador não escolher nenhum lance, na última tentativa o próprio
jogo decide qual valor somar, dentre as faces que aparecem mais, se
der empate entre a soma das faces, o programa deve somar a face que
aparece por primeiro. _______________________________
Tipo cada rodada eles jogam 5 dados? se for par todas as faces tem que ser par?

M

Obrigada ^^

charleston10

usem a Tag Code

;]

di.magdaleno

Bruno, nesse primeiro código que você usa de exemplo o array numeros só é usado para fornecer a quantidade de itens do array que (acho que não por coincidência) é o range necessário para o seu número randômico. O código é perfeitamente funcional, mas o array poderia ser removido sem problemas. O código abaixo faria exatamente a mesma coisa:Random sortear = new Random (); int sortear1 = sortear.nextInt(6)+1; // nessa linha a expressão numeros.length retornava o tamanho do array numeros, que era 6. System.out.println("Número sorteado foi: " + sortear1);Ou para os fanáticos por códigos de uma linha: System.out.println("Número sorteado foi: " + (new Random ().nextInt(6)+1));

Criado 22 de abril de 2013
Ultima resposta 22 de abr. de 2013
Respostas 6
Participantes 4