Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/03/2012, 20:07
Avatar de tuka_85
tuka_85
 
Fecha de Ingreso: febrero-2010
Ubicación: Santander/Huelva
Mensajes: 190
Antigüedad: 14 años, 2 meses
Puntos: 5
Error en programa de primitiva

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!
__________________
http://www.martatorreajo.es