Hola!
public class EntradaDeTeclado
import java.util.Scanner;
public class EntradaDeTeclado
{
private String entradaTeclado;
public EntradaDeTeclado()
{
entradaTeclado = "";
}
public void pedirEntrada()
{
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado = entradaEscaner.nextLine ();
}
public String getEntrada()
{
return entradaTeclado;
}
}
public class GeneradorNumAleatorio
import java.util.*;
public class GeneradorNumAleatorio
{
private ArrayList<Integer> listaDeNum;
private Random numAleatorio;
public GeneradorNumAleatorio()
{
listaDeNum = new ArrayList<Integer>();
numAleatorio = new Random();
}
public void addNumeros(int cantidad)
{
for(int i = 1; i <= cantidad; i++)
{
listaDeNum.add(i);
}
}
public void mostrarNumEnLista()
{
for(Integer numero: listaDeNum)
{
System.out.println(numero);
}
}
public int getSize()
{
return listaDeNum.size();
}
public int generarNumAleat()
{
return listaDeNum.get(numAleatorio.nextInt(listaDeNum.size()));
}
}
public class AdivinarNum
import javax.swing.*;
public class AdivinarNum
{
public AdivinarNum()
{
//Nada que declarar
}
public static void main(String []args)
{
System.out.println("Vamos a jugar a adivinar un numero, primero introduce la cantidad de números que quieres que contenga la adivinanza:");
EntradaDeTeclado entradaMain = new EntradaDeTeclado();
GeneradorNumAleatorio listaConNum = new GeneradorNumAleatorio();
entradaMain.pedirEntrada();
int entero = Integer.parseInt(entradaMain.getEntrada());
listaConNum.addNumeros(entero);
System.out.println("\f\nAhora intenta adivinar el numero secreto que se ha elegido aleatoriamente entre los números del 1 al " + listaConNum.getSize() + ".");
int numSecreto = listaConNum.generarNumAleat();
boolean resuelto = false;
int i = 0;
do
{
entradaMain.pedirEntrada();
int stringToInt = Integer.parseInt(entradaMain.getEntrada());
int respuesta = 2;/*int respuesta se inicializa con un valor distinto a los valores numéricos que representan botones en el método showConfirmDialog(null,"","",0);
de la clase JOptionPane, los cuales son 0 = botón: yes/si y 1 = botón: not/no, para así evitar errores en la ejecución del programa.*/
if(numSecreto == stringToInt)
{
resuelto = true;
}
else
{
resuelto = false;
}
if(resuelto == false && numSecreto < stringToInt)
{
System.out.println("\f\nEl numero secreto no es " + stringToInt + ", intenta con un numero menor."); i++;
}
else if(resuelto == false && numSecreto > stringToInt)
{
System.out.println("\f\nEl numero secreto no es " + stringToInt + ", intenta con un numero mayor."); i++;
}
if(resuelto == true)
{
System.out.println("\f\nFelicitaciones! Has acertado, el numero secreto es " + numSecreto + ".\nTe costo " + i + " intentos fallidos adivinar este numero secreto.");
}
if(resuelto == true)
{
respuesta = JOptionPane.showConfirmDialog(null,"Te gustaría volver a adivinar otro numero secreto ?","Confirmar",0);
}
if(respuesta == 0)
{
System.out.println("\f\nSe ha elegido un nuevo numero secreto al azar entre el 1 y el " + listaConNum.getSize() + ", intenta adivinarlo:");
numSecreto = listaConNum.generarNumAleat();
resuelto = false;
i = 0;
}
else if(respuesta == 1)
{
System.out.println("\f\nComo prefieras!\nGracias por jugar a adivinar números.\nHasta luego...");
resuelto = true;
}
}while(resuelto == false);
}
}
Saludos!