Comunidad de diseño web y desarrollo en internet online

Ayuda acerca de random

Citar            
MensajeEscrito el 12 Feb 2007 06:07 pm
Hola que tal. No soy de preguntar, sino que pregunto cuando hace falta. Ya que en general busco en el buscador las preguntas. Pero hay algo que no encontre y no se como hacer.
Quisiera que al apretar un boton, la cabeza lectora haga un random entre unos fotogramas especificos que pueda indicarle, es decir que cuando aprete el boton, elija entre unos determinados fotogramas que le indique y que se ejecute desde ahi. ¿Es posible?.
Gracias.

Por rjd

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 12 Feb 2007 06:52 pm

Código :

on (press) {
//Si son 5 fotogramas
rndvar = Math.round(Math.random()*5);
_root.gotoAndPlay(rndvar);
}

Supongo que esta bien

Por RattaMono

Claber

1863 de clabLevel

12 tutoriales

Genero:Masculino  

Cauroshigo Pirinola

firefox
Citar            
MensajeEscrito el 12 Feb 2007 08:53 pm
Me pondre a verlo. Muchas gracias RattaMono. =)

Por rjd

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 12 Feb 2007 11:04 pm
RattaMono:
Math.round(Math.Random() *5
Es totalmente erroneo respecto a la igualdad de probabilidades y puede producir errores.
Probabilidad de los 2 extremos = 1/2 Probabilidad de cualquier otro de la serie.

Si pones ese código te podrán salir 6 números: 0, 1, 2, 3, 4 , 5 ( con el consiguiente error de: frame 0??
Además las probabilidades del 0 y del 5 son 1/10 , siendo 1/5 las del resto.

Lo correcto es usar:
Math.floor(1+Math.Random()*5
Eso entregará 5 números posibles: 1,2,3,4, o 5 con probabilidad de 1/5 para cada uno.

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

firefox
Citar            
MensajeEscrito el 12 Feb 2007 11:20 pm
Oh.. no lo había pensado... Pero ahora que lo muestras... no sería mejor usar un Math.ceil, poner *4 y borrar el +1?

Por RattaMono

Claber

1863 de clabLevel

12 tutoriales

Genero:Masculino  

Cauroshigo Pirinola

firefox
Citar            
MensajeEscrito el 12 Feb 2007 11:52 pm
Daría casi lo mismo.
Pero existe una sutíl diferencia:
El random puede valer 0 pero nunca alcanza 1 de modo que si pones ceil y escoge el 0 tendremos un error pues mostrará el 0 como salida.
Dicho de otro modo, usando ceil hay una muy baja probabilidad de que salgan 6 números ( en este caso) pero existe. Con floor y sumando 1 (también en este caso) no existe error nunca.

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

firefox
Citar            
MensajeEscrito el 13 Feb 2007 12:41 am
De la 1era forma, me di cuenta que había mas probabilidades que se ejecuten sus extremos.
Mis escena tiene 10 fotogramas.
En el fotograma uno esta lo siguiente:

En el boton:

Código :

on(release){
   gotoAndStop(aleatorio);
}


y esto esta en el frame:

Código :

var aleatorio = 2 + Math.floor(Math.random() * 10);


¿Estaría bien empleado?.

Una cosa mas. Si esa escena tuviera por ejemplo 20 fotogramas, pero quisiera que haga un random en los primeros 10. ¿Habria forma?.
Ya igualmente con sus respuestas me han sido de gran ayuda. Les agradezco mucho a los dos.[/code]

Por rjd

3 de clabLevel



Genero:Masculino  

msie
Citar            
MensajeEscrito el 13 Feb 2007 09:02 am
Con esto:

Código :

var aleatorio = 2 + Math.floor(Math.random() * 10);

La salida varia entre 2 y 11 (ambos inclusive).

para variar entre 1 y 10 :

Código :

aleatorio = 1 + Math.floor(Math.random() * 10);


En general para variar entre inicial y final (ambos inclusive):

Código :

aleatorio = inicial +  Math.floor(Math.random() *(1+final-inicial));

puesto que 1+final-inicial e el nº de elementos a variar.

En tu supuesto (los 10 primeros) inicial = 1 y final = 10 :

Código :

aleatorio = 1 +   Math.floor(Math.random() *10); 


Si quisíeramos variar entre 5 y 8 por ejemplo:

Código :

aleatorio = 5 +   Math.floor(Math.random() *4);

Por Teseo

SWAT Team

1780 de clabLevel

14 tutoriales

Genero:Masculino   SWAT

firefox
Citar            
MensajeEscrito el 13 Feb 2007 12:07 pm
Ehh... creo que en la ayuda de flash esta explicado esto que estan discutiendo... explica como funciona ramdom y hasta hay un ejemplo y todo. rdj, ya que dices usar el buscador, usa la ayuda de flash tambien, es util y sirve, y se aprende tanto como aqui :)
*Huye a su bunker

Por Dientuki

Claber

2021 de clabLevel

11 tutoriales
1 articulo

Genero:Masculino   Héroes

Front-end Ninja

firefox
Citar            
MensajeEscrito el 13 Feb 2007 02:53 pm
Muchas gracias Teseo, me aclaraste bien todo. Y me salvaste de un trabajo.

Saludos.

[/code]

Por rjd

3 de clabLevel



Genero:Masculino  

msie

 

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