|
||
|
![]() |
![]() |
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 |
![]() |
|
Herramientas |
#1
|
||||
|
||||
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. |
|
#2
|
||||
|
||||
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. |
#3
|
||||
|
||||
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 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. |
#4
|
||||
|
||||
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. ![]() |
![]() |
![]() |
||||||
|
Herramientas | |