Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/11/2013, 07:48
fede_carbone
 
Fecha de Ingreso: agosto-2011
Mensajes: 19
Antigüedad: 12 años, 8 meses
Puntos: 0
Pregunta Obtener lista random array para slot

Hola, tengo una pregunta..

Tengo un panel para gestionar la cantidad de articulos de un slot.

En base a la cantidad de premios ingresada, elaboro un erray y hago un random para que el orden de los premios sea diferente.

Pero cuando hago funcionar el random, los premios se desordenan, pero cuando hago funcionar el slot, no cumple con ese orden.

Código:
var jugadoresGanadores  = 0;
	var jugadorActual       = 0;

	var premiosTodos        = [];
	var premiosTodosShuffle = [];

	var premioPerdiste      = 0;
	var premioPendrive      = 0;
	var premioDoble         = 0;

	var ganadoPerdiste      = 0;
	var ganadoPendrive      = 0;
	var ganadoDoble         = 0;

        txtPerdiste.text  = premioPerdiste - ganadoPerdiste;
txtDoble.text     = premioDoble - ganadoDoble;
txtPendrive.text  = premioPendrive - ganadoPendrive;
txtJugadores.text = jugadorActual;

txtPerdisteGanados.text = ganadoPerdiste;
txtDobleGanados.text    = ganadoDoble;
txtPendriveGanados.text = ganadoPendrive;

btnInicializar.onPress = function(){
	
	ultPremio      = null;
	loops          = 0;
	premioPerdiste = txtPerdiste.text;	
	premioDoble    = txtDoble.text;
	premioPendrive = txtPendrive.text;
	lstPremios.removeAll();

	// Inicializar array 'premiosTodos'
	for (i=0; i<premioPerdiste; i++) {
		premiosTodos.push('Lo siento, no lo lograste');
		
		
	}
	
	for (i=0; i<premioPendrive; i++) {
		premiosTodos.push('Pendrive');
	}
	
	for (i=0; i<premioDoble; i++) {
		premiosTodos.push('Doble Chance');
	}
	
	while (premiosTodos.length > 0) {
		
		trace(premiosTodos);
		
		var x = random(premiosTodos.length);
		
		
		
		
		if (ultPremio == premiosTodos[x] &&
			premiosTodos.length > 5 &&
			premiosTodos[x] != 'Lo siento, no lo lograste' &&
			loops < 5
			) {
			loops++;
			continue;
		}

		ultPremio = premiosTodos[x];
		loops = 0;
		
		var item = premiosTodos.splice(x, 1)[0];
		premiosTodosShuffle.push(item);
		lstPremios.addItem(item);
	}
}

btnComenzarJuego.onPress = function(){
		
	gotoAndPlay(51);
	
}
Si yo ingreso una cantidad de cada producto, y hago un trace(premiosTodos) aqui:

Código:
while (premiosTodos.length > 0) {
		
		trace(premiosTodos);
		
		var x = random(premiosTodos.length);
Me devuelve lo siguiente, cuando en realidad ingrese una sola cantidad de cada uno.

"Lo siento, no lo lograste,Pendrive,Doble Chance
Pendrive,Doble Chance
Pendrive "