Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Chompy129 en 21 de Diciembre 2016, 15:22
-
Generar números aleatorios en Java. Clase Random y método nextInt. Ejercicio ejemplo resuelto. (CU00672B)
Aquí les dejo el ejercicio:
código Java
import java.util.Scanner;
import java.util.Random;
/**
* Testea el funcionamiento de Adivinar
*
* @author Chompy129
* @version 1.0
*/
public class Adivinar{
public static void main(String [] args){
Random aleatorio= new Random();
int numeroMaquina= aleatorio.nextInt(100);
Scanner entradaS= new Scanner(System.in);
int numeroUsuario= 0;
int intentos= 0;
System.out.println("Inicia el juego. Tienes 10 intentos.");
System.out.print("Elige un número: ");
while(numeroUsuario != numeroMaquina && intentos < 10){
numeroUsuario= Integer.parseInt(entradaS.nextLine());
intentos++;
if(intentos == 10){
System.out.println("Ha superado el número de intentos.");
}
else if(numeroUsuario == numeroMaquina){
System.out.println("¡Has acertado!");
}
else if(numeroUsuario > numeroMaquina){
System.out.print("El número es muy alto. Intente con uno mas bajo: ");
}
else if(numeroUsuario < numeroMaquina){
System.out.print("El número es muy bajo. Intente con uno mas alto: ");
}
}
System.out.println("Gracias por jugar");
}
}
Link de la clase: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=638:generar-numeros-aleatorios-en-java-clase-random-y-metodo-nextint-ejercicio-ejemplo-resuelto-cu00672b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188 (https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=638:generar-numeros-aleatorios-en-java-clase-random-y-metodo-nextint-ejercicio-ejemplo-resuelto-cu00672b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188)
-
Lo veo todo bien. Podrías ahorrar un poco de código en la parte de los intentos si en el último else if (...) usas simplemente else:
import java.util.Scanner;
import java.util.Random;
/**
* Testea el funcionamiento de Adivinar
*
* @author Chompy129
* @version 1.0
*/
public class Adivinar{
public static void main(String [] args){
Random aleatorio= new Random();
int numeroMaquina= aleatorio.nextInt(100);
Scanner entradaS= new Scanner(System.in);
int numeroUsuario= 0;
int intentos= 0;
System.out.println("Inicia el juego. Tienes 10 intentos.");
System.out.print("Elige un número: ");
while(numeroUsuario != numeroMaquina && intentos < 10){
numeroUsuario= Integer.parseInt(entradaS.nextLine());
intentos++;
if(intentos == 10){
System.out.println("Ha superado el número de intentos.");
}
else if(numeroUsuario == numeroMaquina){
System.out.println("¡Has acertado!");
}
else if(numeroUsuario > numeroMaquina){
System.out.print("El número es muy alto. Intente con uno mas bajo: ");
}
else {
System.out.print("El número es muy bajo. Intente con uno mas alto: ");
}
}
System.out.println("Gracias por jugar");
}
}
¡Saludos!
-
Mas que todo, es para asegurarme que el código funcione como debería, pero si ahorraría un poco. :)
Gracias por revisar el ejercicio Erik. También te envió un saludo. :D
-
Buenos días.
Otra forma de hacerlo podría ser:
import java.util.Scanner;
import java.util.Random;
public class Adivinar{
public static void main(String [] args){
Random aleatorio= new Random();
int numeroMaquina= aleatorio.nextInt(100);
Scanner entradaS= new Scanner(System.in);
System.out.println("Inicia el juego. Tienes 10 intentos.");
System.out.print("Elige un número entre 0 y 100 : ");
for(int i=0;i<10;i++){
int numeroUsuario= Integer.parseInt(entradaS.nextLine());
int k=numeroUsuario- numeroMaquina;
switch (k){
case 0 :System.out.println("¡Has acertado!");i=10;break;
default :
if(i==9){
System.out.println("Ha superado el número de intentos.\n El numero era el : "+numeroMaquina);
break;}
else{
if(numeroUsuario > numeroMaquina){System.out.print("El número es muy alto.");}
else {System.out.print("El número es muy bajo.");}
System.out.print("Intentalo de nuevo : ");break;
}
}
}
System.out.println("Gracias por jugar");
}
}