Java - Ayuda con el juego de la primitiva en Java

   
Vista:

Ayuda con el juego de la primitiva en Java

Publicado por Miguel (1 intervención) el 04/01/2012 20:29:02
Hola a todos y Feliz Año!!!

Estoy haciendo una practica de la universidad y el ejercicio consiste en simular el juego de la primitiva. Hice el ejercicio pero por alguna razon cuando lo ejecuto se me queda pillado y he intentado buscar el error pero no le doy en el clavo. Le agradeceria muchisimo si alguien me podria ayudar.

Un saludo
y gracias de antemano

Esto nos pide que hagamos:

El programa debe generar una secuencia de números como si fuera un boleto (9 números; mayores de 10 y menores de 100).
10 20 30 45 80 70 90 45 20
Después el usuario escribirá un numero:
Si existe, mostrará lo siguiente:
10 20 30 XX 80 70 90 45 20
Si no existe, mostrará lo siguiente:
Número 72 no existe
10 20 30 XX 80 70 90 45 20
Se puede salir de la aplicación cuando el usuario escriba 0.
En caso de tener todos los números tachados, se mostrará:
Te ha tocado la primitiva. Eres millonario.

Y este esta es mi solucion:

/*-----------------------------------------------------------------------------------------------------------------------*/

package primitiva;

import java.util.Scanner;



public class Primitiva {

public static int menu(){

int opcion;

System.out.println(" |-------------------------------------------------|");
System.out.println(" | ~ MENU PRINCIPAL ~ |");
System.out.println(" |-------------------------------------------------|");
System.out.println(" | 1. Jugar a la Primitiva |");
System.out.println(" | 2. Salir de la aplicación |");
System.out.println(" |-------------------------------------------------|\n");

System.out.println("Introduzca la opción que desea:");
Scanner teclado = new Scanner (System.in);
opcion = teclado.nextInt();

return opcion;

}


public static int GenerarNumero(){

int numero = 0;

while((numero < 10) || (numero > 100)){
numero = (int)(Math.random()*9);
}
return numero;

}


public static void GuardarNumeros(int arrayNumeros[]){

for(int i=0; i<arrayNumeros.length; i++){
int numeroSorteo = Primitiva.GenerarNumero();
arrayNumeros[i] = numeroSorteo;
}
}


public static int IntroducirNumeroTeclado(){

int numeroUsuario=0;

System.out.println("Introduzca un numero (mayor que 10 y menor que 100): ");

while((numeroUsuario < 10) || (numeroUsuario > 100)){
Scanner teclado = new Scanner (System.in);
numeroUsuario = teclado.nextInt();
}
return numeroUsuario;
}


public static void ComprobarNumero(int numeroUsuario, int arraySorteo[]){

boolean encontrado = false;

for(int i=0; i<arraySorteo.length; i++){
if(numeroUsuario == arraySorteo[i]){
encontrado = true;
arraySorteo[i] = -1;
}
}

if(!encontrado){
System.out.println("El número " + numeroUsuario + " no existe!");
}
}


public static void ImprimirNumeros(int arrayNumeros[]){

for(int i=0; i<arrayNumeros.length; i++){
if(arrayNumeros[i]==-1){
System.out.print("XX");
}else{
System.out.print(arrayNumeros[i]);
}
}
}

public static void ComprobarResultadoFinal(int arrayNumeros[]){

boolean iguales = true;
int i=0;

while(i<arrayNumeros.length && iguales==true){
if(arrayNumeros[i]==-1){
iguales = true;
i++;
}else{
iguales = false;
}
}

if(iguales){
System.out.println("\nTe ha tocado la primitiva! Eres millonario!");
}else{
System.out.println("\nLo siento no te ha tocado la primitiva!");
}
}


public static void main(String[] args) {

int opcion;
int salir=-1;
int numeroUsuario=0;
int[] arrayNumeros = new int[9];

do {
opcion = Primitiva.menu();

switch (opcion) {
case 1:
Primitiva.GuardarNumeros(arrayNumeros);

for(int i=0; i<arrayNumeros.length; i++){
numeroUsuario = Primitiva.IntroducirNumeroTeclado();
Primitiva.ComprobarNumero(numeroUsuario, arrayNumeros);
Primitiva.ImprimirNumeros(arrayNumeros);
}

Primitiva.ComprobarResultadoFinal(arrayNumeros);
break;

case 2:
System.out.println("Pulse 0 si desea salir de la aplicación:");
while(salir != 0){
Scanner teclado = new Scanner (System.in);
salir = teclado.nextInt();
}
break;

default:
break;
}
} while (opcion != 2);
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con el juego de la primitiva en Java

Publicado por Tom (907 intervenciones) el 05/01/2012 10:23:58
Léete la documentación de random().
1
numero = (int)(Math.random()*9);

Eso siempre te dará un entero >= 0 y < 9.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con el juego de la primitiva en Java

Publicado por tomdipe (10 intervenciones) el 30/01/2012 20:49:51
Creo que al menos existe un bug importante, ya que no
existe ninguna funcion que impida que se generen dos numeros iguales
ni en GenerarNumero() ni tampoco en GuardarNumeros()

podria darse el caso de que se repitieran en el array arrayNumeros[])





.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con el juego de la primitiva en Java

Publicado por Hitsugaya icarazob@daraevolution.com (3 intervenciones) el 29/10/2013 09:40:49
Hola buenas Miguel,

Me podrías decir como lo solucionaste?

Es que yo también estoy atascado.

Un saludo.

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con el juego de la primitiva en Java

Publicado por Alejandro (3 intervenciones) el 16/01/2014 17:48:19
¿Alguien ha sabido resolver el fallo del código planteado por Miguel? Me han pedido realizar un programa idéntico y he querido trabajar en base al suyo, pero justo falla al introducir 1 en el menú del principio, creo que el fallo está en la última función que es donde agrupa todas las demás, pero no consigo encontrarlo (o a lo mejor no es ahí, soy bastante nuevo).
Si alguien pudiera ayudar sería de mucha ayuda, gracias de ante mano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar