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

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

Estas en el tema de Como hacer para una pelicula no se me repita dos o mas veces en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/11/2014, 06:44
Avatar de yefranjo77  
Fecha de Ingreso: febrero-2008
Ubicación: Aragua - Venezuela
Mensajes: 312
Antigüedad: 16 años, 2 meses
Puntos: 1
Como hacer para una pelicula no se me repita dos o mas veces

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
__________________
"Un punto importante para lograr nuestras metas es tener paciencia"
  #2 (permalink)  
Antiguo 30/11/2014, 11:47
 
Fecha de Ingreso: noviembre-2014
Ubicación: Andalucia
Mensajes: 12
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Como hacer para una pelicula no se me repita dos o mas veces

( Conste soy nuevo en todo esto ) Aun así creo que se me ocurrirá algo... La duda mia es, cuando dices que se repite, te refieres en esas mismas 5 actividades el random puede ser el mismo numero y por lo tanto se repite la actividad dentro de esas 5 ¿no?.

Si es eso lo que entendí, porque no usas 4 variables, que guarden ese numero y le pones un if ( que si es igual a cualquiera de esas 4 variables, haga otro random )

Si entendí mal, me explicas de nuevo, a ver si se me ocurre algo :D jejeje... Un saludo
  #3 (permalink)  
Antiguo 30/11/2014, 19:11
Avatar de yefranjo77  
Fecha de Ingreso: febrero-2008
Ubicación: Aragua - Venezuela
Mensajes: 312
Antigüedad: 16 años, 2 meses
Puntos: 1
Respuesta: Como hacer para una pelicula no se me repita dos o mas veces

Hola Acbdo

por ejemplo el nombre de mis actividades son:

actividad000, actividad001... actividad0024...

de esa cantidad de actividades aparecen 5 para luego emitir un resultado final, por ejemplo

actividad001, actividad008, actividad0010, actividad0010, actividad0010... resultado

fijate en el ejemplo que la actividad0010 se repitio tres veces y eso es lo que no quiero. .. como puedo hacer...

De anetamano gracias por tus respuestas
__________________
"Un punto importante para lograr nuestras metas es tener paciencia"
  #4 (permalink)  
Antiguo 01/12/2014, 07:39
 
Fecha de Ingreso: noviembre-2014
Ubicación: Andalucia
Mensajes: 12
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Como hacer para una pelicula no se me repita dos o mas veces

Espera... algo esta mal xD ( había puesto un código, pero me he dado cuenta de que esta mal )

Última edición por Acbdo; 01/12/2014 a las 07:44
  #5 (permalink)  
Antiguo 01/12/2014, 07:59
 
Fecha de Ingreso: noviembre-2014
Ubicación: Andalucia
Mensajes: 12
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Como hacer para una pelicula no se me repita dos o mas veces

Código:
mcVacio.loadMovie("sumaIntro.swf")
// Estas variables no se si tienes que ponerlas en el Fotograma 1 ( y que no se vuelva a pasar por alli, para que no se reseteen ). ( o un stop(); )
// Y por lo tanto todo lo demas apartir del foto2
var rand:int;
var vuelta1:int;
vuelta1 = 25; // Le pongo 25 como si fuese x > 24, es para que no sea 0 ( ya que el random va de 0 a 24 ). Y una variable sin definir es 0.
var vuelta2:int;
vuelta2 = 25;
var vuelta3:int;
vuelta3 = 25;
var vuelta4:int;
vuelta4 = 25;
var vuelta5:int;
vuelta5 = 25;
while (vuelta5 == 25) // Aqui decimos que cada variable "Vuelta" tenga un numero random del 0 al 24 y que no puede pasar al siguiente si no es distinto.
{	
	rand = random(24)
	if ( vuelta1 == 25 )
	{
	vuelta1 = rand;
		} else if ( rand != vuelta1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio )
		{
		vuelta2 = rand;
		}
			else if (rand != vuelta2 and rand != vuelta1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) y 2º
			{
			vuelta3 = rand;
			}
				else if (rand != vuelta3 and rand != vuelta2 and rand != vuelta1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) y 2º y 3º
				{
				vuelta4 = rand;
				}
					else if (rand != vuelta4 and rand != vuelta3 and rand != vuelta2 and rand != vuelta1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) y 2º y 3º y 4º
					{
					vuelta5 = rand;
					}
}
	
_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; // Esta variable la usamos para saber que variable "Vuelta" debe cargar
    if (con > 5)
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("resultado.swf",0);
        btn_siguiente.enabled = false;
		btn_siguiente._visible = false;
    }
    else 
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + (LEER>>>)) + ".swf"); // En flash no se como se escribe para hacer esto... la intencion es que "con" ya que va de 1 a 5, señale cada una de las variables "VUELTA". Ejemplo... con = 1 . Vuelta(con) = a variable vuelta1
        btn_siguiente.enabled = false;
    } // end else if
};
Espero no haberme vuelto a equivocar... De todas formas le estoy volviendo a echar unos vistazos... ( REITERO, que soy nuevo programando... y me puedo equivocar en tonterías... No obstante creo que esta es una forma, pero quizás haya una mas fácil, sin duda esto debería de funcionar )
  #6 (permalink)  
Antiguo 01/12/2014, 08:50
 
Fecha de Ingreso: noviembre-2014
Ubicación: Andalucia
Mensajes: 12
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Como hacer para una pelicula no se me repita dos o mas veces

En el caso de que como yo no sepas usar el "vuelta(con)" ... Puedes usar este codigo...
Código:
else if (con == 1)
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta1) + ".swf");
        btn_siguiente.enabled = false;
    } else if ( con == 2 )
{
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta2) + ".swf");
        btn_siguiente.enabled = false;
    } else if ( con == 3 )
{
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta3) + ".swf");
        btn_siguiente.enabled = false;
    } else if ( con == 4 )
{
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta4) + ".swf");
        btn_siguiente.enabled = false;
    } else if ( con == 5 )
{
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta5) + ".swf");
        btn_siguiente.enabled = false;
    }
  #7 (permalink)  
Antiguo 01/12/2014, 23:17
 
Fecha de Ingreso: noviembre-2014
Ubicación: Andalucia
Mensajes: 12
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Como hacer para una pelicula no se me repita dos o mas veces

Cita:
Iniciado por Acbdo Ver Mensaje
Código:
mcVacio.loadMovie("sumaIntro.swf")
// Estas variables no se si tienes que ponerlas en el Fotograma 1 ( y que no se vuelva a pasar por alli, para que no se reseteen ). ( o un stop(); )
// Y por lo tanto todo lo demas apartir del foto2
var rand:int;
var vuelta1:int;
vuelta1 = 25; // Le pongo 25 como si fuese x > 24, es para que no sea 0 ( ya que el random va de 0 a 24 ). Y una variable sin definir es 0.
var vuelta2:int;
vuelta2 = 25;
var vuelta3:int;
vuelta3 = 25;
var vuelta4:int;
vuelta4 = 25;
var vuelta5:int;
vuelta5 = 25;
var control1:int;
var control2:int;
var control3:int;
while (vuelta5 == 25) // Aqui decimos que cada variable "Vuelta" tenga un numero random del 0 al 24 y que no puede pasar al siguiente si no es distinto.
{	
	rand = random(24)
	if ( vuelta1 == 25 )
	{
	vuelta1 = rand;
		} else if ( rand != vuelta1 and control1 != 1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) Y AÑADO un control para que no vuelva a entrar en la siguiente vuelta
		{
		vuelta2 = rand;
		control1 = 1
		}
			else if (rand != vuelta2 and rand != vuelta1 and control2 != 1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) y 2º Y AÑADO un control para que no vuelva a entrar en la siguiente vuelta
			{
			vuelta3 = rand;
			control2 = 1
			}
				else if (rand != vuelta3 and rand != vuelta2 and rand != vuelta1 control3 != 1) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) y 2º y 3º Y AÑADO un control para que no vuelva a entrar en la siguiente vuelta
				{
				vuelta4 = rand;
				control3 = 1
				}
					else if (rand != vuelta4 and rand != vuelta3 and rand != vuelta2 and rand != vuelta1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) y 2º y 3º y 4º
					{
					vuelta5 = rand;
					}
}
	
_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; // Esta variable la usamos para saber que variable "Vuelta" debe cargar
    if (con > 5)
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("resultado.swf",0);
        btn_siguiente.enabled = false;
		btn_siguiente._visible = false;
    }
    else 
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + (LEER>>>)) + ".swf"); // En flash no se como se escribe para hacer esto... la intencion es que "con" ya que va de 1 a 5, señale cada una de las variables "VUELTA". Ejemplo... con = 1 . Vuelta(con) = a variable vuelta1
        btn_siguiente.enabled = false;
    } // end else if
};
Espero no haberme vuelto a equivocar... De todas formas le estoy volviendo a echar unos vistazos... ( REITERO, que soy nuevo programando... y me puedo equivocar en tonterías... No obstante creo que esta es una forma, pero quizás haya una mas fácil, sin duda esto debería de funcionar )
^ Nuevo código jajajaja, perdón por tantas vueltas... pero ahora con el "CONTROL" Para cada vuelta del while.. no debería de dar problemas...
  #8 (permalink)  
Antiguo 01/12/2014, 23:21
 
Fecha de Ingreso: noviembre-2014
Ubicación: Andalucia
Mensajes: 12
Antigüedad: 9 años, 5 meses
Puntos: 0
Respuesta: Como hacer para una pelicula no se me repita dos o mas veces

Código:
mcVacio.loadMovie("sumaIntro.swf")
// Estas variables no se si tienes que ponerlas en el Fotograma 1 ( y que no se vuelva a pasar por alli, para que no se reseteen ). ( o un stop(); )
// Y por lo tanto todo lo demas apartir del foto2
var rand:int;
var vuelta1:int;
vuelta1 = 25; // Le pongo 25 como si fuese x > 24, es para que no sea 0 ( ya que el random va de 0 a 24 ). Y una variable sin definir es 0.
var vuelta2:int;
vuelta2 = 25;
var vuelta3:int;
vuelta3 = 25;
var vuelta4:int;
vuelta4 = 25;
var vuelta5:int;
vuelta5 = 25;
var control1:int;
var control2:int;
var control3:int;
while (vuelta5 == 25) // Aqui decimos que cada variable "Vuelta" tenga un numero random del 0 al 24 y que no puede pasar al siguiente si no es distinto.
{	
	rand = random(24)
	if ( vuelta1 == 25 )
	{
	vuelta1 = rand;
		} else if ( rand != vuelta1 and control1 != 1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) Y AÑADO un control para que no vuelva a entrar en la siguiente vuelta
		{
		vuelta2 = rand;
		control1 = 1
		}
			else if (rand != vuelta2 and rand != vuelta1 and control2 != 1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) y 2º Y AÑADO un control para que no vuelva a entrar en la siguiente vuelta
			{
			vuelta3 = rand;
			control2 = 1
			}
				else if (rand != vuelta3 and rand != vuelta2 and rand != vuelta1 control3 != 1) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) y 2º y 3º Y AÑADO un control para que no vuelva a entrar en la siguiente vuelta
				{
				vuelta4 = rand;
				control3 = 1
				}
					else if (rand != vuelta4 and rand != vuelta3 and rand != vuelta2 and rand != vuelta1 ) // Ese random es distinto a la 1º vuelta ( 1º ejercicio ) y 2º y 3º y 4º
					{
					vuelta5 = rand;
					}
}
	
_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; // Esta variable la usamos para saber que variable "Vuelta" debe cargar
    if (con > 5)
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("resultado.swf",0);
        btn_siguiente.enabled = false;
		btn_siguiente._visible = false;
    }
else if (con == 1)
    {
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta1) + ".swf");
        btn_siguiente.enabled = false;
    } else if ( con == 2 )
{
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta2) + ".swf");
        btn_siguiente.enabled = false;
    } else if ( con == 3 )
{
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta3) + ".swf");
        btn_siguiente.enabled = false;
    } else if ( con == 4 )
{
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta4) + ".swf");
        btn_siguiente.enabled = false;
    } else if ( con == 5 )
{
        unloadMovie(mcVacio);
        mcVacio.loadMovie("suma00" + vuelta5) + ".swf");
        btn_siguiente.enabled = false;
    }
Esto debería de ser todo junto... :P Ya no le encuentro mas errores... si no funciona me pego un tiro xD

Etiquetas: pelicula, todo, veces
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 09:12.