Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 21/09/14, 22:48:06
Array

[xs_avatar]
Cros_10 Cros_10 no está en línea
Usuario novato en la web
 
Fecha de registro: sep 2014
Localización: Chile
Mensajes: 2
Modelo de smartphone: Motorola RAZR maxx
Tu operador: Movistar
Problemas con while{}

Hola, agradecería mucho si me pueden ayudar, estoy realizando mi primera aplicación en android, es algo muy sencillo, o eso creía. Se trata de adivinar el número.

Se crea un número aleatorio, y luego el usuario debe adivinar cual es. El usuario tiene 3 intentos o si no pierde el juego, el problema es que al intentar colocar un while{} para contar los intentos, si el numero no corresponde al creado al azar, la aplicación "muere".
Pasa con while, doWhile y un for.

Intente, mezclar el while con if o switch pero el resultado es el mismo. Creo que la solución podría estar en que cuente (el contador de intentos) cada vez que hago click al boton y no cuando se cumple o no una de las condiciones pero no se como hacer eso y no he podido encontrarlo por ningún lado.

int intento=0;

int nume = (int) (Math.random()*5);
String resul = "Respuesta correcta el numero era: " +nume ;
String resul2 ="El numero es menor" ;
String resul3="el numero es mayor" ;
String perdio = "fallo sus 3 intentos, juego terminado";


EditText numero = (EditText)findViewById(R.id.editText1) ;
String nombre = numero.getText().toString() ;
int valor = Integer.parseInt(nombre) ;

while(intento<3){
numero.setText("") ;
switch (intento){
case 1: {if (nume==valor) {
textView3.setText(resul);
conta=4; }
;break;}//Fin case 1

case 2 : {if(nume<valor){
textView3.setText(resul2);
intento++ ;
} //fin si !=

;break;} //Fin case 2

case 3: {if(nume>valor){
textView3.setText(resul3);
intento++;
}

;break;}
}//Fin switch
}//Fin while
if (intento==3){
textView3.setText(perdio);
}//fin si intentos

if (conta==4){
textView4.setText("Gano el juego") ;
}

}

ese es el código como está en este momento, tengo otro donde no ocupo un switch solo if pero sucede lo mismo. Si alguien sabe cual o cuales son los errores se lo agradecería mucho. Acepto todo tipo de criticas y ayuda ya que soy nuevo en android y todo me servira. De antemano gracias.
Responder Con Cita


  #2  
Viejo 22/09/14, 08:50:40
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

Como diría kriogeN, primero Java y después Android.

No sé en qué método estarás ejecutando eso, pero el fallo gordo es precisamente meter un while, efectivamente nunca sale del bucle salvo que pongas la correcta a la primera, y de ahí que quede bloqueado (edito: o no, es lioso con tanta llave y estructuras anidadas) .

En cualquier caso sobran el while y el switch. La solución es la que indicas, cuando se aprieta el botón de adivinar se actualiza la variable intentos, se lee el EditText y se hace la comprobación. Sin bucles que bloqueen la ejecución del hilo principal de Android y sin ningún switch (¿qué sentido tiene hacer cosas distintas según el número de intento?) .

Cómo hacer algo al apretar un botón viene en cualquier tutorial de Android, espero que estés siguiendo alguno! Por aquí suelen hablar bien del tutorial de sgoliver.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!

Última edición por mocelet Día 22/09/14 a las 09:38:45.
Responder Con Cita
  #3  
Viejo 22/09/14, 10:48:30
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
 Cita: Originalmente Escrito por mocelet Ver Mensaje
Como diría kriogeN, primero Java y después Android.

No sé en qué método estarás ejecutando eso, pero el fallo gordo es precisamente meter un while, efectivamente nunca sale del bucle salvo que pongas la correcta a la primera, y de ahí que quede bloqueado (edito: o no, es lioso con tanta llave y estructuras anidadas) .

En cualquier caso sobran el while y el switch. La solución es la que indicas, cuando se aprieta el botón de adivinar se actualiza la variable intentos, se lee el EditText y se hace la comprobación. Sin bucles que bloqueen la ejecución del hilo principal de Android y sin ningún switch (¿qué sentido tiene hacer cosas distintas según el número de intento?) .

Cómo hacer algo al apretar un botón viene en cualquier tutorial de Android, espero que estés siguiendo alguno! Por aquí suelen hablar bien del tutorial de sgoliver.
jejeje, si, y en Java no sólo dominar la sintaxis, sino saber como mínimo que es una clase, una interfaz y tener medio controlada la herencia. Aunque el tema del bloqueo del UI Thread también existe en Java en general, en Android es mucho más agudo y hay que controlarlo mucho más.

El tutorial de SgoLiver es muy muy muy bueno, incluso la última vez que lo vi le había añadido ejemplos de como usar los 2 menús laterales existentes en la librería de soporte, lo cual significa que también trata hasta el tema de los Fragment.
Responder Con Cita
  #4  
Viejo 23/09/14, 03:41:15
Array

[xs_avatar]
Cros_10 Cros_10 no está en línea
Usuario novato en la web
 
Fecha de registro: sep 2014
Localización: Chile
Mensajes: 2
Modelo de smartphone: Motorola RAZR maxx
Tu operador: Movistar
 Cita: Originalmente Escrito por mocelet Ver Mensaje
Como diría kriogeN, primero Java y después Android.

No sé en qué método estarás ejecutando eso, pero el fallo gordo es precisamente meter un while, efectivamente nunca sale del bucle salvo que pongas la correcta a la primera, y de ahí que quede bloqueado (edito: o no, es lioso con tanta llave y estructuras anidadas) .

En cualquier caso sobran el while y el switch. La solución es la que indicas, cuando se aprieta el botón de adivinar se actualiza la variable intentos, se lee el EditText y se hace la comprobación. Sin bucles que bloqueen la ejecución del hilo principal de Android y sin ningún switch (¿qué sentido tiene hacer cosas distintas según el número de intento?) .

Cómo hacer algo al apretar un botón viene en cualquier tutorial de Android, espero que estés siguiendo alguno! Por aquí suelen hablar bien del tutorial de sgoliver.
Gracias
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 13:03:36 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /