Ayuda con ejercicio
Publicado por Hitsugaya (3 intervenciones) el 28/10/2013 16:50:09
Perdonad en la uni me han enviado este ejercicio:
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.
Y ya tengo hecho todo esto:
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);
}
}
Pero el programa me da muchos errores de ejecución y no funciona.
Me podríais ayudar?
Gracias.
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.
Y ya tengo hecho todo esto:
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);
}
}
Pero el programa me da muchos errores de ejecución y no funciona.
Me podríais ayudar?
Gracias.
Valora esta pregunta


0