(Dúvida) Programa de sorteio em Java

3 respostas
WhiteHat

Gostaria de fazer um programa de sorteio em que ele diga o seguinte: O numero x já foi sorteado.

Eis o código:

package programadesorteio;

import javax.swing.*;

public class Sorteio {
public static Object Sorteio;


    private int numero;

  Sorteio() {
       numero = (int) (1 + (Math.random() * 10)); //sorteia numeros entre 1 e 10
   }

   public int getNumero() {
       return this.numero;
  }

   public void setNumero(int n) {
       numero = n;
  }

   public static void main(String args[]) {
       Sorteio Sorteio1 = new Sorteio();
       int resposta = Integer.parseInt(JOptionPane.showInputDialog("Informe o valor entre 1 e 10"));

       if (resposta == Sorteio1.getNumero()) {
           JOptionPane.showMessageDialog(null, "Você acertou o primeiro sorteio");
       } else {
           JOptionPane.showMessageDialog(null, "Você errou o primeiro sorteio. \n O valor sorteado foi: " + Sorteio1.getNumero());;
       }
   
       {
         Sorteio Sorteio2=new Sorteio();
           int resposta2=Integer.parseInt(JOptionPane.showInputDialog("Informe um valor entre 1 e 10"));

           if (resposta2 ==Sorteio2.getNumero()){
               JOptionPane.showMessageDialog(null,"Você acertou o segundo sorteio");
           }else{
               JOptionPane.showMessageDialog(null,"Você errou o segundo sorteio. \n O valor sorteado foi: " +Sorteio2.getNumero());

           }
       }
           {
               Sorteio Sorteio3=new Sorteio();
               int resposta3=Integer.parseInt(JOptionPane.showInputDialog("Informe um valor entre 1 e 10"));

               if (resposta3==Sorteio3.getNumero()){
                   JOptionPane.showMessageDialog(null,"Você acertou o terceiro sorteio");
               }else{
                   JOptionPane.showMessageDialog(null,"Você errou o terceiro sorteio. \n O valor sorteado foi: "+Sorteio3.getNumero());

               }

           System.exit(0);


           }
   }
}

3 Respostas

rodevops

Se você quer ter um “histórico” dos números sorteados sem se preocupar com a ordem, pode usar um HashSet (conjunto) onde os números não se repetem…

private int numero;
private static Set<Integer> sorteados = new HashSet<>();

Sorteio() {
    numero = (int) (1 + (Math.random() * 10)); //sorteia numeros entre 1 e 10
    sorteados.add(numero);
}

Depois pode criar um método para testar o número sorteado…

public boolean isSorteado(int numero) {
    return sorteados.contains(numero);
}

Algo nesse sentido…

WhiteHat

Como ficaria esse código dentro do meu programa?

staroski

Conforme solicitado, tópico fechado.

Criado 23 de julho de 2017
Ultima resposta 27 de mar. de 2023
Respostas 3
Participantes 3