ADVERTENCIA ESTE CODIGO ES LETAL
bueno estaba haciendo un simple juego cuando me di cuenta de que algo fallaba
[gml]q = get_string('question 1','1+1?')
r = '2'
if q = r
q2 = get_string('question 2','2+2?')
r2 = '4'
if q2 = r2
q3 = get_string('question 3','4+4?')
r3 = '8'
if q3 = r3
q4 = get_string('question 4','8+8?')
r4 = '16'
if q4 = r4
q5 = get_string('question 5','16+16?')
r5 = '32'
if q5 = r5
q6 = get_string('question 6','32+32?')
r6 = '64'
if q6 = r6
q7 = get_string('question 7','64+64?')
r7 = '128'
if q7 = r7
q8 = get_string('question 8','128+128?')
r8 = '256'
if q8 = r8
q9 = get_string('question 9','256+256?')
r9 = '512'
if q9 = r9
q10 = get_string('question 10','512+512?')
r10 = '1024'
if q10 = r10
highscore_show(score)[/gml]
El problema es que no puedo hacer que cuando la persona se equivoque se reinicie el juego y muestre la puntuacion
weno yo no se de codigo del gmk... pero si que toco otros lenguajes parecido... una cosita de la que ahora mismo no estoy seguro... en las condiciones... no buscas que compare entre una respuesta y otra? que sean iguales?... pues no deberia ser == en vez de = ?? pk qui no se pero en otros lenguajes un solo = es para dar un valor a la variable y no para ver si dos son iguales..
edito: Adem?s de la costumbre de que siempre se pone ; al final de cada linea siempre y cuando no sea una condicion xD pero weno... no se como funciona este lenguaje xD
Cita de: kuadmair en Mayo 09, 2011, 10:42:48 AM
weno yo no se de codigo del gmk... pero si que toco otros lenguajes parecido... una cosita de la que ahora mismo no estoy seguro... en las condiciones... no buscas que compare entre una respuesta y otra? que sean iguales?... pues no deberia ser == en vez de = ?? pk qui no se pero en otros lenguajes un solo = es para dar un valor a la variable y no para ver si dos son iguales..
edito: Adem?s de la costumbre de que siempre se pone ; al final de cada linea siempre y cuando no sea una condicion xD pero weno... no se como funciona este lenguaje xD
bueno,estuve agregando
[gml]else
highscore_show(score)
game_restart()[/gml]
el problema es que aparece este error cada vez que fallo
digamos 1+1=z(obviamente equivocado)
me muestra la puntuacion pero sale esto
Error in code at line 10:
if q2 = r2
^
at position 5: Unknown variable q2
Unknown variable q2 = Variable q2 desconocida
Te sale eso por una de dos, esa variable no la has creado antes de utilizarla o la creaste en otro objeto que no es el que ejecuta las preguntas. Si no hay problema puedes hacerlas globales o aseg?rate que la estas creando en el objeto. Tambi?n aseg?rate que no tenga el mismo nombre que alguna sprite u objeto.
Saludos.
El error esta en que si la respuesta anterior es incorrecta no declara la variable y aun asi el if siguiente se comprueba pero al no haber sido declarada la variable dara el error.
Lo que se me ocurre es agregar un break en lugar de un game_restart()
[gml]else
{
highscore_show(score)
break
}[/gml]
No estoy seguro, deja me voy a comer y al rato lo analizo mejor.
Saludos
Prob? a crear un script llamado game:
[gml]// game();
var answer;
argument0 += (argument0 == 0);
argument1 += (argument0 == 1);
answer = show_message("Pregunta " + string(argument0) + ": ?" + string(argument1) + " * 2?", "");
if (answer == string(argument1 * 2)) {
return game(argument0 + 1, argument1 * 2);
} else {
return argument0 - 1;
}[/gml]
Y despu?s llamalo as?:
[gml]highscore_show(game());[/gml]
muchas gracias pero ya lo resolvi de otra manera
[gml]q9 = get_string('question 9','256+256?')}}
else
room_restart()
///////////////////////////////////////
if score = 40
{if q9 = r9
{score = 45
q10 = get_string('question 10','512+512?')}}
else
room_restart()
////////////////////////////////////////
if score = 45
{if q10 = r10
{score = 50;highscore_add_current();score = 0;highscore_show(score);show_message('WoW amazing');room_restart();
FINAL = show_message_ext('continue?','No',noone,'Yes')}}
if FINAL = 1
game_end()
if FINAL = 3
game_restart()
else
room_restart()[/gml]
Ahora todo funciona bien pero FINAL ahora es el problema
Error in code at line 110:
if FINAL = 1
^
at position 5: Unknown variable FINAL
No se bien donde se debe de ubicar
es el mismo problema pero no logro arreglarlo
Citarel problema es que aparece este error cada vez que fallo
digamos 1+1=z(obviamente equivocado)
mmm... eso puedew ser sencillo de encontrar, mira tu tienes:
[gml]
if q10 = r10
{
score = 50;highscore_add_current();
score = 0;highscore_show(score);
show_message('WoW amazing');
room_restart();
FINAL = show_message_ext('continue?','No',noone,'Yes')
}
if FINAL=1...
[/gml]
La cuestion es que la variable FINAL solo se crea si se cumple la condicion de "if q10=r10", pero si no se cumple es ovbio que jam?s ser? creada y despu?s no la puedes testear para ver si es igual a 1 o algo as?.
Te recomiendo que declares desde el inicio todas las variables que vayas a usar asi:
[gml]
var FINAL;
if score = 45
{
if q10 = r10
{
score = 50;
highscore_add_current();
score = 0;
highscore_show(score);
show_message('WoW amazing');
room_restart();
FINAL = show_message_ext('continue?','No',noone,'Yes')
}
}
if FINAL = 1
game_end()
if FINAL = 3
game_restart()
else
room_restart()
[/gml]
;)