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);
}
}
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


0