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
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);
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
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
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.
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...
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
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.
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.
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.
gracias muchachos por su ayuda a todos mil gracias voy a intentar todo y les aviso.
muy buen aporte.
gracias
?Jajaja! Un a?o despu?s... XD
WOW no puedo creer que se acuerde despu?s de un a?o :-[