Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: wako91 en Julio 27, 2010, 01:52:09 PM

Título: Si las condiciones no se cumplen que repita la pregunta [SOLUCIONADO]
Publicado por: wako91 en Julio 27, 2010, 01:52:09 PM
Bueno me gustar?a saber como podr?a hacer los siguientes ejemplos con c?digo sin tener que inventarme cosas extra?as que acaban dando problemas:

punto1
 Pregunta ?xxxx?
    respuesta = SI
        continuar
    repuesta = NO
        volver al punto 1

y este:

punto 1
 Introduce un valor de 1 a 30
    si valor fuera de ese rango
        volver al punto1
    si valor en rango
        continuar


Esto es un ejemplo de lo que hago yo:

Se trata de introducir una fecha de cumplea?os habiendo seleccionado previamente primavera,verano,oto?o o invierno.


message_text_font(0,8,c_black,0);
message_size(225,100);
message_button(boton1);
message_background(emergente1);

sound_play(click);

ini_open("jugador1.ini");

ini_write_string("Datos","ep-cumplea?os","primavera");

dia_cumple=0;
while(dia_cumple<1)
{
do{
   dia_cumple=get_integer("Introduce un numero del 1 al 31","Introduce un numero del 1 al 31");
}
until(dia_cumple <=31)
}

ini_write_real("Datos","dia-cumplea?os",dia_cumple);
show_message("#Cumplea?os: " + string(dia_cumple) + " de " + ini_read_string("Datos","ep-cumplea?os",""));

ini_close();


Gracias!
Título: Re: Si las condiciones no se cumplen que repita la pregunta
Publicado por: Zeit en Julio 27, 2010, 06:59:02 PM
Citar
como podr?a hacer los siguientes ejemplos con c?digo sin tener que inventarme cosas extra?as

Hola,

Lo que pides es exactamente lo que no quieres, es decir, no quieres inventar cosas extra?as pero cualquiera que te responda estar?a inventando sus propias cosas extra?as, yo te invito a que lo hagas, a que inventes tus propias cosas extra?as para que aprendas mas que de eso se trata.

Bueno, regresando a la pregunta, en mi caso yo usar?a scripts que se llamen a si mismos, ejemplo un script de nombre script_pregunta:


{
var numero;
numero=get_integer('Escribe un numero del 0 al 9',0);
if(0<=numero and numero<=9)
    {
    show_message('Gracias');
    }
else
    {
    show_message('Tu numero no esta entre el 0 y 9');
    script_pregunta();
    }
}


Saludos!!!

Edit: te adjunte el ejemplo del funcionamiento...
Título: Re: Si las condiciones no se cumplen que repita la pregunta
Publicado por: wako91 en Julio 27, 2010, 07:22:33 PM
Ok ya lo comprendo, de ahora en delante lo are as?, aunque puesto que mi ejemplo funciona de momento lo dejar? como est?.

?Muchas gracias!

Yo hab?a llegado a pensar en "etiquetas" al estilo RPG Maker, la verdad es que eran muy ?tiles.
Título: Re: Si las condiciones no se cumplen que repita la pregunta
Publicado por: Zeit en Julio 27, 2010, 08:15:02 PM
Hola,

Checa el ejemplo que te adjunte en el mensaje anterior...

Saludos!!!
Título: Re: Si las condiciones no se cumplen que repita la pregunta
Publicado por: wako91 en Julio 27, 2010, 08:41:16 PM
Ya lo hice, es el mismo ejemplo que has puesto en el post.

?Gracias otra vez!
Título: Re: Si las condiciones no se cumplen que repita la pregunta
Publicado por: Wadk en Julio 27, 2010, 09:49:01 PM
En realidad, esas etiquetas a las que te refer?s son exactamente lo que est?s usando en el c?digo que pusiste, es decir bucles como while.
Pero no es necesario que pongas un do adentro de un while, con esto basta:
dia_cumple=0;
do{
    dia_cumple=get_integer("Introduce un numero del 1 al 31","Introduce un numero del 1 al 31");
}until(dia_cumple>0)&&(dia cumple<32)
Título: Re: Si las condiciones no se cumplen que repita la pregunta
Publicado por: wako91 en Julio 28, 2010, 12:49:54 PM
seeeh, que listo soy!  XD

Eso es lo que hubiese hecho hecho si hubiese sabido que se pod?a indicar a una variable que contase un valor entre dos posibles. Prob? mil combinaciones pero no lo consegu? as? que por eso me saque de la manga un "do-while"


PD
?Como funciona esto del karma? Si se utiliza como recompensa no me gustar?a parecer un desagradecido ^^
Título: Re: Si las condiciones no se cumplen que repita la pregunta [SOLUCIONADO]
Publicado por: Wadk en Julio 28, 2010, 07:10:59 PM
&& une dos condiciones de forma que s?lo si las dos son verdaderas (es decir, dia_cumple es mayor a 0 y menor a 32 en este caso), el resultado "total" es verdadero (y por lo tanto, se sale del bucle).
Tambi?n hay otras formas de unir condiciones: || y ^^. || hace lo contrario que &&: s?lo si las dos condiciones son falsas el resultado "total" es falso. ^^ s?lo es verdadero si una condici?n es verdadera y la otra falsa, si son iguales el resultado es falso.

(verdadero)&&(verdadero)=verdadero
(verdadero)&&(falso)=falso
(falso)&&(verdadero)=falso
(falso)&&(falso)=falso

(verdadero)||(verdadero)=verdadero
(verdadero)||(falso)=verdadero
(falso)||(verdadero)=verdadero
(falso)||(falso)=falso

(verdadero)^^(verdadero)=falso
(verdadero)^^(falso)=verdadero
(falso)^^(verdadero)=verdadero
(falso)^^(falso)=falso


Sobre lo del Karma, no es realmente necesario, pero si quer?s, pod?s hacer click en [Aplaudir] para subir o en [Abuchear] para bajar el karma de un usuario.
Título: Re: Si las condiciones no se cumplen que repita la pregunta [SOLUCIONADO]
Publicado por: wako91 en Julio 28, 2010, 07:54:47 PM
?Esto me ser? de gran ayuda! ;)