cami-la / loops-e-arrays

Repositório do curso Estruturas de Repetição e Arrays com Java. Curso este oferecido pela Digital Innovation one e ministrado por mim.
https://web.digitalinnovation.one/home
1.39k stars 351 forks source link

Mostrar numeros aleatorios acima da dificuldade dita #8

Closed Brujahhell closed 2 years ago

Brujahhell commented 2 years ago

Poderia me ajudar? Estou tentando fazer um rolador de dados, consegui até certo ponto e agora no final eu travei. Gostaria que no final fosse dito os números que fossem acima da dificuldade de ação(dif).

package Roladordedados;

import java.util.Random; import java.util.Scanner;

public class Main { public static void main(String[] args) { Random random = new Random(); Scanner scan = new Scanner(System.in);

    int dif, dados;

    System.out.println("Qual a Dificuldade da ação? ");
    dif = scan.nextInt();
    System.out.println("Quantos dados? ");
    dados = scan.nextInt();

    int[] numerosAleatorios = new int[dados];

    for (int i = 0; i < numerosAleatorios.length; i++) {
        int numero = random.nextInt(10);
        numerosAleatorios[i] = numero + 1; 
    }

    System.out.print("Dados rolados: ");
    for (int numero : numerosAleatorios) {
        System.out.print(numero + " ");
    }

--------------tentei exemplificar aqui no final----------------

    // MOSTRAR OS NUMEROS ACIMA DA DIFICULDADE
    //System.out.print("\nSucessos: ");
    //for (int numero : numerosAleatorios) {
    //    System.out.print((numero >= dif) + " ");
cami-la commented 2 years ago

Oi, amigo. Tudo bem? Olha, não entendi muito o que você quis fazer, mas fiz um tipo de jogo de dados com aposta.

public class Main2 {
  public static void main(String[] args) {
    Random random = new Random();
    Scanner scan = new Scanner(System.in);

    //Quantidade de dados:
    System.out.println("Quantos dados deseja jogar?");
    int dados = scan.nextInt();

    //Resultado dos dados jogados
    int[] resultadoDoDado = new int[dados];
    for (int i = 0; i< dados; i++){
      int dado =  random.nextInt(6) + 1; //o valor deve ir de 1 a 6.
      resultadoDoDado[i] = dado;
    }

    //Array que armazena os números que serão apostados.
    int[] numerosApostados = new int[dados];

    //Fazendo a aposta:
    int count = 0;
    while (count < dados) {
      System.out.println("Faça sua " + (count+1) + " aposta: ");
      int aposta = scan.nextInt();

      //Verifique se o valor é possível para um dados
      while (aposta < 1 || aposta > 6) {
        System.out.println("Numero inválido, tente novamente: ");
        aposta = scan.nextInt();
      }
      //Pegue essa aposta e coloque no array de apostas.
      numerosApostados[count] = aposta;
      count++;
    }

    System.out.println("**** RESULTADO ****");
    System.out.println("Suas apostas: ");
    for(int numeros: numerosApostados){
      System.out.print(numeros + " ");
    }
    System.out.println("\n----");
    System.out.println("Resultado dos dados: ");
    for(int numeros: resultadoDoDado){
      System.out.print(numeros + " ");
    }

  }
}
Brujahhell commented 2 years ago

vamos dizer que no seu exemplo ai eu tenha apostado 6 dados no numero 4. e o resultado seja 2 3 4 5 6 6 quero que no final me mostre apenas o 4 5 6 6

tipo aqui:

Qual a Dificuldade da ação? (todo valor 6 ou acima é sucesso) 6 Quantos dados? 4 Dados rolados: 7 10 5 3

no caso aqui eu queria que mostrasse assim

Sucesso = 7 10 Vc teve 2 sucessos

cami-la commented 2 years ago

Aaaaaah, perdoa. Agora acho que entendi. Dá uma olhadinha e me diz se ficou bom.

public class Main2 {

  public static void main(String[] args) {
    Random random = new Random();
    Scanner scan = new Scanner(System.in);

    //Dificuldade da ação:
    System.out.println("Qual a dificuldade da ação?");
    int dif = scan.nextInt();

    //Quantidade de dados:
    System.out.println("Quantos dados?");
    int dados = scan.nextInt();

    //Resultado dos dados jogados:
    int[] resultadoDoDado = new int[dados];
    for (int i = 0; i< dados; i++){
      int dado =  random.nextInt(10) + 1;
      resultadoDoDado[i] = dado;
    }

    System.out.println("**** RESULTADO ****");
    System.out.println("Sucesso: ");
    int count = 0;
    for(int numero: resultadoDoDado){
      if (numero >= dif){
        System.out.print(numero + " ");
        count++;
      }
    }
    System.out.println("\nVocê teve " + count + " sucessos");
  }
}
Brujahhell commented 2 years ago

RS, ACONTECE. é coisa de jogador de RPG huahauhau mas agora consegui, acrescentando esse final que me falou e modificando algumas coisinhas, consegui mostrar todos os números aleatórios rolados e tb apenas os com o valor acima da dificuldade da ação. ficou assim..

Muito Obrigado Camila, muito mesmo, estava quebrando a cabeça ja fazia uma semana pra fazer isso no intelllij, no portugol foi facil, mas no intelllij... rsrsrs


No caso apenas tirei a linha System.out.println(" RESULTADO ");

E tb deixei a minha mostragem dos dados //Mostragem dos dados Rolados System.out.print("Dados rolados: "); for (int numero : numerosAleatorios) { System.out.print(numero + " ");


public class Main {

public static void main(String[] args) {
    Random random = new Random();
    Scanner scan = new Scanner(System.in);

    int dif, dados;

    //Dificuldade de ação e dos dados
    System.out.println("Qual a Dificuldade da ação? ");
    dif = scan.nextInt();
    System.out.println("Quantos dados? ");
    dados = scan.nextInt();

    //Rolagem dos dados
    int[] numerosAleatorios = new int[dados];
    for (int i = 0; i < numerosAleatorios.length; i++) {
        int numero = random.nextInt(10);
        numerosAleatorios[i] = numero + 1;
    }

    //Mostragem dos dados Rolados
    System.out.print("Dados rolados: ");
    for (int numero : numerosAleatorios) {
        System.out.print(numero + " ");

    }
    //Mostragem dos Sucessos
    System.out.println("\nSucesso: ");
    int count = 0;
    for (int numero : numerosAleatorios) {
        if (numero >= dif) {
            System.out.print(numero + " ");
            count++;
        }

    }
    //Contagem apenas dos sucessos
    System.out.println("\nVocê teve " + count + " sucessos");
}

}

cami-la commented 2 years ago

Muito bem!! Por nada, precisando é só falar. (:

Na verdade o que estava me deixando confusa foi esse dado de 10 lados. Por que na minha cabeça um dado tem 6 faces. Mas um amigo me explicou que tinha esse dado de RPG. Aí sim que entendi. kkkkkk

Boa sorte nos estudos.