Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

[Dúvida] Programa de aposta

Estou tentando criar um programa de apostas, tipo de loteria. Onde o usuário escolhe 5 números entre 0 a 20, e o programa gera 5 números. Já tentei resolver várias vezes, mas não estou conseguindo. Está faltando algumas funções:

package br.com.exercicioweb;

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

public class GeradorAposta {

public static void main(String[] args) {

    Scanner leitura = new Scanner(System.in);
    Random random = new Random();

    int tentativas = 0;

    while (tentativas < 5) { //coloquei tentativas pois o usuário poderá digitar apenas 5 números

        int aposta = random.nextInt(21);

        System.out.println("Digite 5 números(entre 0 a 20) para a aposta: "); 
        int numeroDigitado = leitura.nextInt();
        tentativas++;

        if (numeroDigitado == aposta) {
            System.out.println("Parabéns, você acertou os números da aposta!");


        } else {
            System.out.println("Você não acertou os números da aposta.");



        }

    }

}

}

4 respostas

Olá Patrícia, tudo bem?

Pelo que entendi, você está tentando criar um programa de apostas, certo? Acredito que a lógica do seu código esteja correta, mas faltam algumas funções para que ele funcione como você deseja.

Para que o usuário possa escolher 5 números, você precisa criar um array para armazenar esses valores. Além disso, é necessário fazer uma comparação entre os números escolhidos pelo usuário e os números gerados pelo programa.

Segue um exemplo de como você pode fazer isso:

Scanner leitura = new Scanner(System.in);
Random random = new Random();

int[] numerosEscolhidos = new int[5];
int[] numerosGerados = new int[5];

for (int i = 0; i < numerosEscolhidos.length; i++) {
    System.out.println("Digite o " + (i + 1) + "º número (entre 0 e 20): ");
    numerosEscolhidos[i] = leitura.nextInt();
    numerosGerados[i] = random.nextInt(21);
}

int acertos = 0;

for (int i = 0; i < numerosEscolhidos.length; i++) {
    for (int j = 0; j < numerosGerados.length; j++) {
        if (numerosEscolhidos[i] == numerosGerados[j]) {
            acertos++;
        }
    }
}

System.out.println("Você acertou " + acertos + " números!");

Espero ter ajudado e bons estudos!

Oi Lucas, obrigada pela ajuda, deu certo sim! Mas tenho outra dúvida que eu não estou conseguindo resolver, gostaria que o programa imprimisse os números gerados pelo random. Usei o método toString(), mas ele imprime com hashcode:

System.out.println("Você acertou " + acertos + " números! " + "Os 5 números sorteados foram: " + numerosGerados.toString());

Preciso criar uma classe para implementar o método toString()?

solução!

Olá, Patrícia! Que legal que deu certo. :)

Não é necessário criar uma classe para implementar o método toString() apenas para imprimir os números gerados pelo random. Você pode utilizar o método Arrays.toString() para imprimir os números de forma legível.

Aqui está um exemplo de como você pode imprimir os números gerados usando Arrays.toString():

**import java.util.Arrays;

public class Exemplo { public static void main(String[] args) { int[] numerosGerados = {1, 2, 3, 4, 5}; // Substitua pelo seu array de números gerados

    System.out.println("Os 5 números sorteados foram: " + Arrays.toString(numerosGerados));
}

}**

Neste exemplo, substitua numerosGerados pelo seu array de números gerados. O método Arrays.toString() converte o array em uma representação de string legível, separando os elementos por vírgulas e adicionando colchetes. Isso evitará a exibição do hashcode.

Muito obrigada Lucas! Agora está tudo como eu queria! :))