Comunidad de diseño web y desarrollo en internet online

Como hacer para una pelicula no se me repita dos o mas veces

Citar            
MensajeEscrito el 30 Nov 2014 12:45 pm
Hola a todos

estoy realizando unas actividades educativas utilizando una película principal y 25 películas externas (actividades) que se van a reflejar de manera aleatoria y al final se genera un resultado final de las actividades... solo apareceran 5 actividades de las 25 como dije antes de manera aleatoria.

El problema que tengo es que a veces se repiten las actividades muy seguidas y es lo que estoy tratando de evitar pero sin exito alguno.

este es el codigo que uso...

Código :

mcVacio.loadMovie("sumaIntro.swf")
_global.aciertos = 0;
_global.malos = 0; 
function compruebanumero(numero)
{
    var _loc2 = false;
    for (j = 0; j <= guarda.length; j++)
    {
        if (guarda[j] == numero)
        {
            _loc2 = true;
        } // end if
    } // end of for
    if (_loc2 == false)
    {
        guarda.push(numero);
        ++_global.i;
    } // end if
} // End of the function
this.onLoad = function ()
{
    _global.aciertos = 0;
    _global.malos = 0;
};
con = 0;
btn_siguiente.enabled = true;
btn_siguiente.onRelease = function ()
{
    con = con + 1;
    if (con > 5)
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("resultado.swf",0);
        btn_siguiente.enabled = false;
      btn_siguiente._visible = false;
    }
    else
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + int(random(24)) + ".swf");
        btn_siguiente.enabled = false;
    } // end else if
};
var guarda = new Array();
_global.i = 1;
while (_global.i <= 25)
{
    numero = random(25) + 1;
    compruebanumero(numero);
} // end while


Aqui es donde trato de que las peliculas no se repitan tanto

Código :

var guarda = new Array();
_global.i = 1;
while (_global.i <= 25)
{
    numero = random(25) + 1;
    compruebanumero(numero);
} // end while


De antemano gracias por sus aportes Amigos

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 01 Dic 2014 11:55 am
Eliges 5 y dentro de esos 5 tienes repetidos? O en varias pasadas de la peli se repiten las series?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Dic 2014 02:44 am
Si mi proyecto tiene 25 actividades... por ejemplo.:

actividad001, actividad002, actividad003.. actividad0010.. actividad0025

de esas 25 solo aparecerán 5 actividades de manera aleatorias para luego emitir un resultado final, es decir:

Por ejemplo: actividad0018, actividad002, actividad0015, actividad0024, actividad0013... resultado...

pero a mi me aparecen de esta manera:

actividad0018, actividad002, actividad002, actividad0024, actividad002... resultado

a veces se me repite una actividad hasta 3 veces y eso es lo que no quiero que haga...

Espero haya sido claro y de antemano gracias

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 02 Dic 2014 12:53 pm
Quitalo del array para que no se repita, esta es la idea (creo el array de pelis por código)

Código ActionScript :

var pelis:Array = new Array();
for(var j:Number=1; j<21; j++) pelis.push("peli"+j+".swf");
var elegidas:Array = new Array();
for(var i:Number = 0; i<5; i++){
  var index:Number = Math.ceil((Math.random()*pelis.length));
  elegidas.push(pelis.splice(index, 1))
}
trace(elegidas)


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 06 Dic 2014 01:00 pm
Hola solisart y gracias por responder

siguiendo tus instrucciones

Código :

//stop();
mcVacio.loadMovie("sumaIntro.swf")
_global.aciertos = 0;
_global.malos = 0; 
function compruebanumero(numero)
{
    var _loc2 = false;
    for (j = 0; j <= guarda.length; j++)
    {
        if (guarda[j] == numero)
        {
            _loc2 = true;
        } // end if
    } // end of for
    if (_loc2 == false)
    {
        guarda.push(numero);
        ++_global.i;
    } // end if
} // End of the function
this.onLoad = function ()
{
    _global.aciertos = 0;
    _global.malos = 0;
};
con = 0;
btn_siguiente.enabled = true;
btn_siguiente.onRelease = function ()
{
    con = con + 1;
    if (con > 5)
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("resultado_1.swf",0);
        btn_siguiente.enabled = false;
      btn_siguiente._visible = false;
    }
    else
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + int(random(24)) + ".swf");
        btn_siguiente.enabled = false;
    } // end else if
};
var pelis:Array = new Array();
for(var j:Number=1; j<25 ; j++) pelis.push("suma00"+j+".swf");
var elegidas:Array = new Array();
for(var i:Number = 0; i<5; i++){
var index:Number = Math.ceil((Math.random()*pelis.length));
elegidas.push(pelis.splice(index, 1))
}
trace(elegidas)


pasa lo siguiente: el trace me muesta en la ventana cuales son las peliculas que deberian aparecer:

Código :

suma006.swf,,suma0018.swf,suma0010.swf,suma0021.swf


pero cuando hago clic en siguiente no son las películas que me muestra... de hecho sigue repitiéndose pero con menos frecuencia...

Indicame si he fallado en algo

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 06 Dic 2014 08:57 pm
Quise probarlo colocandolo dentro del boton pero esta igual con el mismo problema

[codemcVacio.loadMovie("sumaIntro.swf")
_global.aciertos = 0;
_global.malos = 0;
function compruebanumero(numero)
{
var _loc2 = false;
for (j = 0; j <= guarda.length; j++)
{
if (guarda[j] == numero)
{
_loc2 = true;
} // end if
} // end of for
if (_loc2 == false)
{
guarda.push(numero);
++_global.i;
} // end if
} // End of the function
this.onLoad = function ()
{
_global.aciertos = 0;
_global.malos = 0;
};
con = 0;
btn_siguiente.enabled = true;
btn_siguiente.onRelease = function ()
{
con = con + 1;
if (con > 5)
{
unloadMovie(mcVacio);
mcVacio.loadMovie("resultado_1.swf",0);
btn_siguiente.enabled = false;
btn_siguiente._visible = false;
}
else
{
unloadMovie(mcVacio);
mcVacio.loadMovie("suma00" + int(random(24)) + ".swf");
var pelis:Array = new Array();
for(var j:Number=1; j<25 ; j++) pelis.push("suma00"+j+".swf");
var elegidas:Array = new Array();
for(var i:Number = 0; i<5; i++){
var index:Number = Math.ceil((Math.random()*pelis.length));
elegidas.push(pelis.splice(index, 1))
btn_siguiente.enabled = false;
} trace(elegidas)
} // end else if
};
][/code]

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 07 Dic 2014 04:30 am
Gracias solisart ... lo habia colocado mal pero ya me funciona

Por yefranjo77

81 de clabLevel



Genero:Masculino  

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.