Mayo 09, 2011, 05:41:12 AM Ultima modificación: Mayo 09, 2011, 08:59:52 PM por Topet
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
Mis juegos y mini-juegos completos:
[Mini-Juego] Apple vs Banana

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]
Vim.

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]

;)