13/07/2011, 01:10
|
| | | Fecha de Ingreso: octubre-2008 Ubicación: Madrid
Mensajes: 495
Antigüedad: 16 años Puntos: 66 | |
Respuesta: validación de array hola facuferrari,
una vez tuve un problema similar para simular una especie de Bingo. Lo que debes hacer es crear dos arrays, uno vacío (premios) y uno que haga de bolsa, del que se extraen números y luego se borran, de tal manera que en la generación aleatoria nunca se van a repetir porque no se contemplarán los números extraidos:
------------------------------------------------------
var bolsa = new Array();
var premios = new Array();
var totNum = 100
//llenamos la bolsa con el total de números aleatorios, por ejemplo 100
for(z=0;z<totNum+1;z++)
bolsa[z]=z;
function generarPremios()
{
//ahora vamos llenando el array premios con las posiciones del array bolsa de forma aleatoria
for(i=0;i<totNum+1;i++)
{
premios[i]=bolsa[parseInt(Math.random()*((totNum-i)+1))];
//y borramos esa posición de la bolsa
borrarBolsa(premios[i]);
}
}
function borrarBolsa(posicion)
{
//quitamos el valor del array
for(b=0;b<bolsa.length;b++)
{
if(bolsa[b]==posicion)
{
bolsa[b]='';
break;
}
}
//ordenamos el array de menor a mayor para que el vacío quede en la primera posición y la eliminamos
bolsa.sort();bolsa.shift();
}
--------------------------
en la variable totNum pones el número total de 'bolas' que se asignarán al array premios[]. espero que te sirva.
(que lo mismo me he liado y hay una forma más sencilla de hacerlo... no sé)
saludos. |