Buenos días.
El ejercicio en general es correcto y da el resultado que se pide aunque yo cambiaria algún detalle en la clase TestAdivinaNumero.
1º Quitaría la línea System.out.println("El numero aleatorio es: " + numeroAAdivinar);
ya que estas mostrando el número a adivinar antes de que haya que adivinarlo.Me imagino que la pondrías para hacer pruebas.
2º La variable tmpInteger la declaras como Integer.Yo la declararía como int y
cambiaría la línea tmpInteger = tmpInteger.valueOf(entradaMain.getEntrada()); por tmpInteger = Integer.valueOf(entradaMain.getEntrada()); funcionaría igual consumiendo menos recursos.
3º La línea System.out.println("\n Intenta de Nuevo(S/N): "); la metería dentro del while.Dejándola fuera,como la pusiste,si en la ejecución el usuario responde algo diferente de s o n el programa espera que se vuelva a responder pero no aparece la pregunta,con lo que puede llevar al usuario a pensar que el programa terminó.
4º Para no diferenciar entre mayúscula o minúscula utiliza equalsIgnoreCase.En vez de
if (entradaMain.getEntrada().equals("n") || (entradaMain.getEntrada().equals("N")))
puedes poner
if (entradaMain.getEntrada().equalsIgnoreCase("n")) ahorrando código.
/**
* TestAdivinaNumero
* Bettu
* 28/09/2016
*/
import java.util.Random;
public class TestAdivinaNumero
{
public static void main (String[] Args) {
int tmpInteger = 0;
EntradaDeTeclado entradaMain = new EntradaDeTeclado();
char tecla = 'S';
int numeroAAdivinar;
Random numAleatorio = new Random();
numeroAAdivinar = numAleatorio.nextInt(100);
System.out.println("Se ha generado un número aleatorio entre 1 y 100, intente adivinarlo");
// Agregue esta linea para probar el programa
// System.out.println("El numero aleatorio es: " + numeroAAdivinar);
while (tecla == 'S') {
System.out.print("Por favor introduzca su número: ");
entradaMain.pedirEntrada();
tmpInteger = Integer.valueOf(entradaMain.getEntrada());
if (tmpInteger == numeroAAdivinar){
System.out.println("Felicitaciones el número aleatorio es "+numeroAAdivinar);
break; }
else if (tmpInteger < numeroAAdivinar) {
System.out.println("No has acertado: el número es mayor");}
else { System.out.println("No has acertado: el número es menor");}
tecla=' ';
while (tecla != 'n' && tecla != 'N' && tecla != 's' && tecla != 'S') {
System.out.println("\n Intenta de Nuevo(S/N): ");
entradaMain.pedirEntrada();
if (entradaMain.getEntrada().equalsIgnoreCase("n"))
{tecla = 'N';}
else if (entradaMain.getEntrada().equalsIgnoreCase("s"))
{tecla = 'S';}
}
}
System.out.println("Gracias por Jugar!!");
}
}
Un saludo