Comunidad Game Maker

Ayuda => Preguntas y respuestas => Mensaje iniciado por: gama en Septiembre 21, 2009, 02:09:07 PM

Título: !ayuda para pasar a un room aleatorio!
Publicado por: gama en Septiembre 21, 2009, 02:09:07 PM
hola amigos estoy haciendo un juego de preguntas de multiples respuestas. es decir en cada room esta la pregunta y 3 posibles respuestas, lo que necesito es un codigo para que cuando el usuario escoga una opcion lo dirija a un room al azar. no he encontrado sino ir al siguiente room y seria monotono la idea es que se revuelvan las preguntas, o regalenme otra idea para este juego es como un quiz. gracias
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: hardraid en Septiembre 21, 2009, 02:50:48 PM
Citar
//"room" es el room actual, puedes cambiarlo para poder ir a otra.
//"choose()" elige al azar entre los datos q pongas separados por ",".
room=choose(room0,room1,room2,room3);
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: somnus en Septiembre 21, 2009, 09:10:58 PM
Cita de: hardraid en Septiembre 21, 2009, 02:50:48 PM
Citar
//"room" es el room actual, puedes cambiarlo para poder ir a otra.
//"choose()" elige al azar entre los datos q pongas separados por ",".
room=choose(room0,room1,room2,room3);


tambien puedes checarte el link para que te des una idea mas especifica de como cambiar a los rooms

http://www.comunidadgm.org/index.php?topic=9061.0
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: deathmetal en Septiembre 22, 2009, 03:18:22 AM
igual usando un switch

switch ceil(random(10)){

case 1: room_goto(room1);break
case 2:room_goto(room2):break
[...]

}

y asi

el numero entre los parentesis debe ser igual al numero de rooms xD si no no te llevaria a ningun  lado :)

saludos
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: gama en Septiembre 22, 2009, 03:38:05 AM
GRACIAS AMIGOs por sus ayudas oportunas y rapidas, us? este codigo:

room=choose(room0,room1,room2,room3); y ahora necesito que luego de mostrar un room lo descarte y no lo muestre mas (solo una vez por sesion) para que no me repita las preguntas.

gracias y perdonen la molestia.
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: DarkKRuleR en Septiembre 22, 2009, 03:26:10 PM
para que no se repitan las rooms deberias crear variables para indicarlo
en un objeto PERSISTENTE marcando la casilla, lo cual significa que pasa entre rooms (por lo tanto sus variables no se reinician), creas estas variables:
room1go=0
room2go=0
room3go=0
etc segun las variables
y creas el codigo del switch que te dijo deathmetal

switch ceil(random(10)){
case 1: if room1go=0 {room1go=1; room_goto(room1); break}
case 2: if room2go=0 {room2go=1; room_goto(room1); break}
}

etc...
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: Guacusio en Septiembre 23, 2009, 04:46:31 AM
Otra forma de ir a un room aleatorio sin repetir ninguno es usando una lista para guardar los rooms y borrar ?stos de la lista a medida que se van "usando". Por ejemplo, en un objeto cualquiera se puede poner:

global.lista_rooms=ds_list_create();//la variable global guarda la id de la lista con rooms
ds_list_add(global.lista_rooms,room0);//vas agregando todos los rooms que tengas
ds_list_add(global.lista_rooms,room1);
etc ...


Luego, cuando deseas cambiar a un room aleatorio, escoges uno al azar de la lista y lo eliminas de ella:

var r,nr;
r=floor(random(ds_list_size(global.lista_rooms)));//escoge una posici?n al azar de la lista
nr=ds_list_find_value(global.lista_rooms,r);//determina el room en esa posici?n
ds_list_delete(global.lista_rooms,r);//borra ese room de la lista
room_goto(nr);//va al room seleccionado

Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: gama en Septiembre 25, 2009, 03:54:31 AM
GRACIAS POR TODO AMIGOS PERO LOS NECESITO. SUPER EXPLICADOS PASO A PASO PORQUE SOY PRINCIPIANTE, DISCULPENME PERO DIGANME EL PROCEDIMIENTO COMPLETO ENTIENDAN (TODOS PASAMOS POR AQUI.) POR QUE ALGUNOS PROCEDIMIENTOS NO LOS ENTIENDO. GRACIAS DE ANTEMANO.
Título: ayuda con codigos por favor
Publicado por: gama en Noviembre 27, 2009, 12:58:12 PM
hola amigos necesito de su ayuda porfa y es que necesito un codigo para el paso de los rooms pero que no se repita ninguno para un juego de quiz ya tengo varios ejemplos con codigos pero realmente no se donde va cada cosa he intentado y no funciona.si pueden ayudarme con un ejemplo de este codigo o alguno de estos:

Cita de: DarkKRuleR en Septiembre 22, 2009, 03:26:10 PM
para que no se repitan las rooms deberias crear variables para indicarlo
en un objeto PERSISTENTE marcando la casilla, lo cual significa que pasa entre rooms (por lo tanto sus variables no se reinician), creas estas variables:
room1go=0
room2go=0
room3go=0
etc segun las variables
y creas el codigo del switch que te dijo deathmetal

switch ceil(random(10)){
case 1: if room1go=0 {room1go=1; room_goto(room1); break}
case 2: if room2go=0 {room2go=1; room_goto(room1); break}
}

etc...


otro codigo es este:

igual usando un switch

switch ceil(random(10)){

case 1: room_goto(room1);break
case 2:room_goto(room2):break
[...]

}

y asi

el numero entre los parentesis debe ser igual al numero de rooms xD si no no te llevaria a ningun  lado.

el caso es que no me funciona y necesitaria un ejemplo grafico de antemano gracias

recuerden que los rooms no se repitan gracias.
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: Zeit en Noviembre 29, 2009, 03:03:17 AM
Hola, se me ocurrio una idea:

Con las opciones de Data Structures en Lists, al iniciar el juego crea una lista donde los valores sean los ID de las rooms ordenadas, room1, room2, etc. o como les hayas llamado y cuando sea el momento de cambiar de room calculas el tama?o de la lista, generas un numero aleatorio entero entre 0 y el tama?o de la lista menos 1, obtieniendo as? la posicion para buscar el valor en la lista el cual guardas en una variable local para que puedas borrarlo de la lista y luego te diriges a la room con la ID obtenida. As? cuando vuelvas necesitar cambiar de room, las rooms eliminadas de la lista ya no apareceran y cuando agotes la lista, es decir, su tama?o sea 0 habras terminado.

Espero haber ayudado, saludos.

Edit1: Perdon, no me habia dado cuenta que Guacusio ya habia dado esta solucion.

Edit2: Adjunto un ejemplo en GM7 pero creo que funciona en el 6.
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: gama en Noviembre 10, 2010, 07:09:05 PM
gracias muchachos por su ayuda a todos mil gracias voy a intentar todo y les aviso.

muy buen aporte.

gracias
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: Hackware en Noviembre 10, 2010, 07:31:35 PM
?Jajaja! Un a?o despu?s... XD
Título: Re: !ayuda para pasar a un room aleatorio!
Publicado por: brunoxzx en Noviembre 10, 2010, 10:06:03 PM
WOW no puedo creer que se acuerde despu?s de un a?o   :-[