Número al Azar en Java

08/abr/2007 Java , , 12 Comentarios
java

Seguro que más de una vez habéis jugado a esto. La idea es simple. Una persona piensa un número entre 1 y 10, mientras que otra persona intenta adivinarlo. Para ello, la persona que conoce el número le va diciendo si el número que busca es mayor o menor que el que ha dicho.

En nuestro caso, quien pensará en el número y dirá si lo dicho es mayor o menor será un programa Java.

Es recomendable el leer los artículos "Leer caracteres por consola en Java" y "Número aleatorio en Java". Los cuales nos ayudarán mucho en la realización de nuestro juego.

Lo primero será generar un número aleatorio entre 1 y 10. Para ello utilizaremos el método .random() de la clase Math. Como esta clase genera números aleatorios del 0.1 al 0.9 tendremos que multiplicarlo por 10 y sumarle un 1.

  1. umeroAleatorio = (int) (Math.random()*10+1);

Posteriormente tendremos que pedir por consola el número. Para leer el número nos apoyaremos en la clase System.in

  1. umeroTeclado = System.in.read();

Hay que recordar que el número leído estará almacenado en carácter ASCII dentro de un tipo de dato int. Un buen truco para calcular el número real es restarle el valor ASCII del carácter que representa al número cero.

Los pasos para obtener el número serán los siguientes:

  1. int cero = (int)'0';
  2. numeroTeclado = System.in.read();
  3. numeroTeclado = numeroTeclado - cero;

Con el número aleatorio y el número obtenido por consola tendremos que realizar algunas comprobaciones. Para indicarle al usuario si el número buscado es mayor, menor o si acierta.

  1. if (numeroTeclado > numeroAleatorio) {
  2. System.out.println ("El número buscado es menor");
  3. }
  4.  
  5. if (numeroTeclado < numeroAleatorio) {
  6. System.out.println ("El número buscado es mayor");
  7. }

Todo esto lo tendremos que tener en un bucle, hasta que acierte el usuario.

Lo último que tendremos que tener en cuenta es que cuando el usuario teclea un número y pulsa la tecla intro se generan tres caracteres ASCII.

carácter ASCII del numero + 13 + 10

El carácter 13 y 10 representan el salto de línea y retorno de carro. Es por ello que entre cada lectura habrá que saltarse la lectura de dos caracteres. Esto lo conseguimos mediante el método .skip(numerocaracteres).

  1. System.in.skip(2);

Vídeos sobre Java

Difunde el Conocimiento

Si te ha gustado el artículo o te ha sido de utilidad, no dejes de compartirlo con tus amigos en las redes sociales... Te estaremos muy agradecidos. :-D

12 comentarios en “Número al Azar en Java”

Víctor Cuervo

jose miguel

hojosde puta arias

Víctor Cuervo

jose miguel

chucha ni la verga tontos hijueputas no sale nada si hacen hagan bien caras de la verga

Víctor Cuervo

Marco Rivera del Carpio Nontol

Podrias publicar el codigo en Java del siguiente ejercicio que te muestro,es de un trabajo:

Crear un vector de 10 o n elementos con numeros aleatorios .Se debe crear una funcion que no permita que se repita los numeros generados
(aleatorios) el cual se le asignara al vector.

De preferencia hazlo de forma simple ,ya que recien estoy aprendiendo programacion con el metodo de resolucion que dio pista mi profesor y es utilizar y asignar un valor boolean =false al comienzo de una funcion creo .

Víctor Cuervo

jorge

pregunta___
como puedo escoger una variable ya determinada al azar

ej: int= p como hago para ecoger p o q al azar????
int= q

Víctor Cuervo

lola

una pregunta..¿como se generan los parametros en java?

Víctor Cuervo

Eduardo Ballesteros

Excelente tu pagina, me han gustado las expliaciones, pero me surge una duda, el metodo System.in.read() solo lee de a un solo caracter????, no existe la posbilidad de leer digamos 3 digitos y haga concatenacion de estos, me explico necesito leer por consola digamos el numero 999 como hago????

Muchas gracias

Víctor Cuervo

abraham

muchas gracias me ha servido de mucho, en verdad te lo agradesco

Víctor Cuervo

lineadecodigo

Abraham, te he publicado el código en Numero Aleatorio de un Conjunto con Java Math.

Me pareció muy buena pregunta.

Víctor Cuervo

abraham

disculpa pero si se quiere que la funcion Math.random escoga un numero al azar de un conjunto de numeros por ejemplo 2,4,6,8,10

Víctor Cuervo

lineadecodigo

Hola Alex,

Hoy he publicado el artículo “Máximo y mínimos número de un conjunto”. Mezclandolo con la generación de números aleatorios puede servirte para tu cometido.

Espero te sea de ayuda.

Víctor Cuervo

alex

No se si puede decirme como seria una vez encontrado los numeros aleatorios el saber cual de ellos es el menor y cal es el mayor de todos los numeros aleatorios encontrados

No como se hace ebn este ejemplo q se ingresa por consola un dato.
Gracia

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*


*