Foros del Web » Creando para Internet » Flash y Actionscript »

eliminar de una entrada de una matriz

Estas en el tema de eliminar de una entrada de una matriz en el foro de Flash y Actionscript en Foros del Web. Hola foro!!! Aquí ando liado con mis matrices... Tengo un array con una serie de preguntas y tengo que escoger una aleatoriamente y lo que ...
  #1 (permalink)  
Antiguo 11/07/2007, 09:38
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
eliminar de una entrada de una matriz

Hola foro!!! Aquí ando liado con mis matrices...

Tengo un array con una serie de preguntas y tengo que escoger una aleatoriamente y lo que qiuero es que no se repita una pregunta ya realizada mientras se juega la partida...

En la búsqueda he encontrado un post del 2002 usando el siguiente código:

question=random(preguntas.legth);
preguntas.splice(question,1);

así teóricamente debería funcionar, de hecho consultando preguntas.legth, al generar una nueva pregunta, va disminuyendo 1... pero se acaban repitiendo los enunciados...

¿Cómo se debería hacer para que no se repitan los valores aleatorios de "questión"?

Muchas gracias!!!
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
  #2 (permalink)  
Antiguo 11/07/2007, 10:34
Avatar de Mahalo  
Fecha de Ingreso: julio-2004
Ubicación: Mallorca (Illes Balears)
Mensajes: 1.121
Antigüedad: 13 años, 4 meses
Puntos: 12
Re: eliminar de una entrada de una matriz

Lo que hace el método splice es eliminar un elemento de la matriz, por lo tanto es imposible que se repita una pregunta.
Código:
var a:Array = new Array(1, 2, 3, 4, 5);
for (i=0; i<3; i++) {
	b = random(a.length);
	trace(a[b]);
	a.splice(b,1);
	trace(a);
}
Ejecuta este código y verás que funciona bien. El primer 'trace' te muestra el elemento seleccionado y el segundo muestra cómo queda la matriz. Yo le he dado a que escoja 3 de las 5 opciones.
Lo malo es que te cargas la matriz original, por lo que convendría trabajar sobre una copia de la matriz.

Saludos!
  #3 (permalink)  
Antiguo 11/07/2007, 19:17
Avatar de jpunk  
Fecha de Ingreso: octubre-2005
Ubicación: Bogota
Mensajes: 335
Antigüedad: 12 años, 2 meses
Puntos: 0
Re: eliminar de una entrada de una matriz

Mahalo:

Mira este enlace de este mismo foro, es algo más complicado lo que requiero, espero tengas idea de cómo aleatorizar un arreglo multidimensional.


http://www.forosdelweb.com/f16/como-aleatorizar-arreglo-multidimencional-504809/


espero alguien sepa como lograrlo....

gracias
  #4 (permalink)  
Antiguo 12/07/2007, 02:46
Avatar de X3mdesign  
Fecha de Ingreso: octubre-2003
Ubicación: Madrid
Mensajes: 640
Antigüedad: 14 años, 2 meses
Puntos: 2
Re: eliminar de una entrada de una matriz

Muchas gracias!!! ahora funciona ^_^ pero no entiendo porqué antes no lo hacía.... en fin, gracias de nuevo
__________________
Nippon-Tour, tu portal sobre Japón
¿Te gusta el manga, haces tus propios dibujos? Visita FanArt de Nippon-Tour
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:03.