Hola.
Tengo un problema en un ejercicio de Java que dice lo siguiente:
Escriba un programa que te permita jugar a la primitiva.
-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: (Ejemplo 45)
10 20 30 XX 80 70 90 45 20
- Si no existe, mostrará lo siguiente: (Ejemplo 72)
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.
Mi codigo es el siguiente:
Código:
package ejercicioprimitiva;
import java.util.Scanner;
public class EjercicioPrimitiva {
/**
* @param args the command line arguments
*/
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(" | 0. 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()*100);
}
return numero;
}
public static void GuardarNumeros(int arrayNumeros[]){
for(int i=0; i<arrayNumeros.length; i++){
int numeroSorteo = EjercicioPrimitiva.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 = EjercicioPrimitiva.menu();
switch (opcion) {
case 1:
EjercicioPrimitiva.GuardarNumeros(arrayNumeros);
for(int i=0; i<arrayNumeros.length; i++){
numeroUsuario = EjercicioPrimitiva.IntroducirNumeroTeclado();
EjercicioPrimitiva.ComprobarNumero(numeroUsuario, arrayNumeros);
EjercicioPrimitiva.ImprimirNumeros(arrayNumeros);
}
EjercicioPrimitiva.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 != 0);
}
}
-Como contemplo que se puedan repetir los numeros? y me los guarde?
Si meto por ejemplo un numero mayor de 10, me peta, no se porque.
Muchas gracias!