Muy buenas tardes a todos, mirar.. llevo probando lo menos 2 horas una cosa y me estoy volviendo loco.
Lo que quiero es que me pregunte una cosa, vamos a imaginar que la pregunta es ¿Donde vives? y la respuesta es España (por ejemplo).
Entonces.. quiero que cuando pregunte ¿Donde vives? y la respuesta sea distinta a España me diga que "no es correcto" (por poner algo) pero cuando la respuesta sea España que me diga que "es correcto".
He de aclarar que no estoy usando ni esa pregunta ni esa respuesta pero es para que todos nos entendamos. Luego yo ya lo rectifico y lo hago a mi manera, simplemente necesito el código base, por decirlo de alguna manera..
De momento mi código es este: (Aun que no hagáis mucho caso ya que igual se tiene que modificar por completo, también he de decir que no funciona, por si lo queréis probar.. ya sabéis que no os servia de mucho..)
if global.puntuacion = 1
{
while(1)
{
global.respuesta = get_string("¿Donde vives?","");
if string_length(global.respuesta) <= 20
break;
else
show_message("Respuesta muy larga")
if global.respuesta = "España" {global.puntuacion = +1};
}
}
Gracias de antemano! (:
este codigo esta mal
[gml]
if global.puntuacion = 1
{
while(1)
{
global.respuesta = get_string("¿Donde vives?","");
if string_length(global.respuesta) <= 20
break;//este break no deberia de estar aqui, porque rompe el codigo, si quieres que solo se ejecute el siguiente if si es verdadero deberias de poner aqui ese if
else
show_message("Respuesta muy larga")
if global.respuesta = "España" {global.puntuacion = +1};
}
}
[/gml]
la manera de hacer esto seria:
[gml]
if global.puntuacion = 1
{
while(1)
{
global.respuesta = get_string("¿Donde vives?","");
if string_length(global.respuesta) >= 20//si es mayor a 20
{
show_message("Respuesta muy larga")//ejecuta esto
}
else
{
if global.respuesta = "España" {global.puntuacion = +1};//sino ejecuta esto
}
}
}
[/gml]
deje lo del while porque no se como sera tu codigo final, pero hay tienes como deberia de ser el codigo basado en lo que tu diste
Cita de: jmbs19 en Noviembre 27, 2015, 09:21:53 PM
este codigo esta mal
[gml]
if global.puntuacion = 1
{
while(1)
{
global.respuesta = get_string("¿Donde vives?","");
if string_length(global.respuesta) <= 20
break;//este break no deberia de estar aqui, porque rompe el codigo, si quieres que solo se ejecute el siguiente if si es verdadero deberias de poner aqui ese if
else
show_message("Respuesta muy larga")
if global.respuesta = "España" {global.puntuacion = +1};
}
}
[/gml]
la manera de hacer esto seria:
[gml]
if global.puntuacion = 1
{
while(1)
{
global.respuesta = get_string("¿Donde vives?","");
if string_length(global.respuesta) >= 20//si es mayor a 20
{
show_message("Respuesta muy larga")//ejecuta esto
}
else
{
if global.respuesta = "España" {global.puntuacion = +1};//sino ejecuta esto
}
}
}
[/gml]
deje lo del while porque no se como sera tu código final, pero hay tienes como debería de ser el código basado en lo que tu diste
Ahora me pone que siempre es incorrecta la respuesta, por ejemplo pongo España y me dice que es incorrecta y se vuelve a abrir lo de escribir. Lo mismo pasa si pongo otra cosa..
El código que yo di de base con el while olvidaros de el.. si creéis que hay otra manera mejor os lo agradecería.. y otra cosa, sobre el
if string_length(global.respuesta) <= 20
es lo de menos.. es mas, quizá ni lo pongo. Así que no hace falta que lo incluyáis..
Gracias jmbs19!
te recuerdo que las mayusculas y minusculas afectan, "españa" no es igual a "España".
Cita de: jmbs19 en Noviembre 27, 2015, 10:44:22 PM
te recuerdo que las mayusculas y minusculas afectan, "españa" no es igual a "España".
Lo se lo se.. jajajaja
El problema es que escribo lo que sea y la ventana de texto (donde se responde la pregunta) nunca se cierra.
Saludos!
ok, ya que dejamos en claro lo de España y españa te dire lo siguiente, si tu estas haciendo un get_string("pregunta","") que apenas le das enter lo vuelve a abrir, el problema no es el get_string, es el codigo a su alrededor, si pones un get_string dentro de step sin ninguna condicion te saldra paso a paso por siempre, si hiciste la condicion mal tambien.
prueba lo siguiente:
[gml]
//dentro de cualquier evento aparte del step, te recomiendo en el create o en una tecla
respuesta=get_string("nombre del planeta donde vives","")
if respuesta = "tierra" or respuesta ="Tierra"
show_message("correcto")
else
show_message("respuesta incorrecta, o es que eres alienigena XD")
[/gml]
Si desear ahorrarte el problema de las mayúsculas/minúsculas sólo debes convertir la respuesta a minúscula, así:
[gml]
respuesta = string_lower(get_string("nombre del planeta donde vives",""));
[/gml]
Y eso convertirá automáticamente la respuesta a minúsculas, no importa si es Tierra, o tIErra, o como sea, y luego sólo compruebas...
[gml]
if respuesta = "tierra"
show_message("Correcto!");
else
show_message("oie khe bruto khe bruto!");
[/gml]
Espero sirva de algo...xD
cuando comparas usa ==, en ocasiones usar un solo = da problemas