Autor Tema: Java generar un número aleatorio en un rango definido por usuario BlueJ CU00908C  (Leído 2559 veces)

Luis Fdo Carvajal

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 37
    • Ver Perfil
Buenos días, ejercicio CU00908C del tutorial de programación avanzada con Java.
Por favor para su revisión. Aunque recuerdo que nos solicitan crear clases y métodos distintos al main para dar solución a los ejercicios, esta es una manera diferente de resolverlo.
Gracias

Código: [Seleccionar]
package random_1;

import java.util.Random;
import java.util.Scanner;
/**
 *
 * @author ITCO1724
 */
public class Random_1 {

    /**
     * @param args the command line arguments
     */
public static void main(String[] args) {
       //Creación de un objeto Scanner
    Scanner sc = new Scanner(System.in);
         
    int numInicial, numFinal,numIntentos;
    int contadorAciertos = 0;
    int contadorFallos = 0;
    String[] solucion = new String[3];
    String seguir="s";
   
while (seguir.equalsIgnoreCase("s")) {
           
            System.out.println ("¿Quieres adivinar el numero? (s/n)");           
            seguir = sc.nextLine();
    if (seguir.equalsIgnoreCase("s")) {
   
   
   
   
    System.out.print("Introduce el numero inicial: ");
    numInicial = sc.nextInt();
    System.out.print("Introduce el numero final: ");
    numFinal = sc.nextInt();     
    int rango = (numFinal- numInicial) ;
    System.out.println("El rango del arreglo es de :" + rango);
    System.out.print("Introduce el numero de intentos : ");
    numIntentos = sc.nextInt();
    System.out.println("El numero de intentos :" + numIntentos);
       
    Random rnd = new Random();
       
       
    for(int i = 1; i<=numIntentos; i++){      //Generar 2 numeros enteros entre 40 y 60 ambos incluidos
           
     int numeroAleatorio;
                       
        numeroAleatorio = (int) (rnd.nextDouble() * rango + numInicial);

// Imprimir numeros aleatorios
        System.out.println( "El #aleatorio :" + numeroAleatorio);
        System.out.print("QUE NUMERO ESTOY PENSANDO? : ");   
        int tmpPensando =sc.nextInt();
        solucion[i] = Integer.toString(numeroAleatorio);    //Pasar a string la variable int tmpPensando
        System.out.println("El numero que estoy pensando :" + numeroAleatorio);
       
           if (tmpPensando >= 0 && tmpPensando != numeroAleatorio){
             System.out.println(" No has acertado!! :");
             contadorFallos = contadorFallos+1;}
           else  {
             System.out.println(" Has acertado!! :");
             contadorAciertos = contadorAciertos+1;}       

             if(tmpPensando >=0 && numeroAleatorio >= 0 ){         
                System.out.println("Has acertado   "  + contadorAciertos + "veces y has fallado   "+ contadorFallos + "veces. Eran solución:" + solucion[i]);}
                else {System.out.println ("Los valores no son válidos");}
            } 
        System.out.println ("¡Hasta la próxima!");break;}
        }
    } 
}
   
« Última modificación: 18 de Junio 2017, 19:28 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola Luis Fdo Carvajal

El ejercicio no cumple con la ejecución que pedía el enunciado

Por otro lado, en algunos casos se ejecuta correctamente pero en otros casos me salta un error java.lang.ArrayIndexOutOfBoundsException en la línea solucion = Integer.toString(numeroAleatorio);    //Pasar a string la variable int tmpPensando

Deberías revisarlo

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".