Agosto 01, 2009, 01:30:55 AM Ultima modificación: Diciembre 13, 2019, 12:37:05 PM por CelSeven
Citar
    * Breve descripción de su función : Este Script sirve para obtener un número aleatoriamente entre dos números con la posibilidad de retornarlo o no con decimales.
    * Versión GM utilizada :  :GM7: PRO (vale con cualquiera)

    * Código del Script -si se usan argumentos, se debe indicar su función- :

/****

Este Script sirve para obtener un número aleatoriamente entre dos números con la posibilidad de retornarlo o no con decimales.

Argument0 = Mínimo
Argument1 = Máximo
Argument2 = ¿Retornar con decimales?
****/

var rnd2; rnd2=(random(argument1-argument0)+argument0);
if !(argument2){return rnd2-frac(rnd2);}else{return rnd2;}

retornar o no con decimales? ???
entra a!:

La funcion random de GM devuelve numeros aleatorios, pero siempre con decimales, ahi la utilidad del script.

Cita de: Fenris78 en Agosto 13, 2009, 04:31:03 PM
La funcion random de GM devuelve numeros aleatorios, pero siempre con decimales, ahi la utilidad del script.
Adem?s, el script este devuelve entre 2 n?meros. GM siempre devuelve entre 0 y el n?mero que pongas  ;)

mh... creo que te quedo lo del reglamento:
    * C?digo del Script -si se usan argumentos, se debe indicar su funci?n- :

XD aparte noi espesificas los argumentos 1 y 2 pero supongo que son los dos numeros entre medio
Cita de: CGM 2008CGM: Un poco mas serios, mejores Juegos.
Bienvenid@ a CGM. Recomenzamos desde cero, con un reglamento mas estricto, mejor definido y con mas ganas que nunca de hacer juegos con calidad comercial. El que avisa no es traidor: Leete las reglas si no quieres llevarte un capon makero.
Mercilessly!!
Plug-In para animaciones: http://ciberman.net/tweenline/

Ciberman:

argument0 y argument1 son los numeros a introducir y argument2 es boolean para decidir si devolver con decimales o no.

CelSeven se equivoco:
Citar
Argument0 = ?Retornar con decimales?

Pero de cualqueir forma el script tiene 2 lineas locas, tan dificil de entender no puede ser xD jajaja
?Eres experto en Game Maker y quieres ense?ar lo que sabes? ?nete a nuestro proyecto como tutor. ?Tienes en mente un gran juego pero no sabes como usar Game Maker? Inscr?bete y un tutor te guiar?. Aprender?s dise?ando un juego para luego dise?ar el tuyo propio. Ap?ntate en http://www.comunidadgm.org/index.php?topic=10462.0.

La ?ltima l?nea se puede optimizar:
return rnd2-(frac(rnd2)*(!argument2));

Muy ?til el script :)
Vim.

En ves de rnd2-frac(rnd2);
No es mejor poner floor(rnd2); ?


Por otro lado el "Argument0 = ?Retornar con decimales?" no es el argument 2?

Opino lo mismo. GM tiene ya funciones de redondeo: floor(), ceil() y round(). Cualquiera me devuelve un entero.

Cita de: KrakenHimoto en Noviembre 23, 2009, 06:53:45 AM
En ves de rnd2-frac(rnd2);
No es mejor poner floor(rnd2); ?
No si la ?ltima l?nea se reemplaza por lo que puse yo antes :P .
Cita de: KrakenHimoto en Noviembre 23, 2009, 06:53:45 AM
Por otro lado el "Argument0 = ?Retornar con decimales?" no es el argument 2?
S?, el CelSeven se equivoc?.
Cita de: metalfox6383 en Noviembre 29, 2009, 12:11:37 AM
Opino lo mismo. GM tiene ya funciones de redondeo: floor(), ceil() y round(). Cualquiera me devuelve un entero.
Es m?s pr?ctico tener un s?lo script que devuelva un n?mero aleatorio entre dos n?meros dados con o sin decimales. Adem?s ceil y round dan problemas al ser usados con n?meros aleatorios.
Vim.

Cita de: Wadk en Diciembre 02, 2009, 06:17:40 AM
Cita de: metalfox6383 en Noviembre 29, 2009, 12:11:37 AM
Opino lo mismo. GM tiene ya funciones de redondeo: floor(), ceil() y round(). Cualquiera me devuelve un entero.
Es m?s pr?ctico tener un s?lo script que devuelva un n?mero aleatorio entre dos n?meros dados con o sin decimales. Adem?s ceil y round dan problemas al ser usados con n?meros aleatorios.

?Qu? clase de problemas? Alguna vez le? algo sobre que la mejor funci?n a usar entre round, floor, y ceil era floor porque es el ?nico que mantiene la correcta aletoreidad cuando se requiere un n?mero entero al azar. Sin embargo, si te refieres a otra clase de problemas me gustar?a conocerlos.

?Saludos!
       

Si, es lo que decis.
El problema con ceil es que si el random devuelve exactamente cero, ceil tambien devolvera cero.
Y sobre round, cito:
Cita de: Naked Paul Toastrand_number=round(random(2));

Looking at the distribution, we will find that 0 will be returned 25% of the time, 1 50% of the time and 2 25% of the time. This is probably not what we want.

Think of it this way:
25% of the time 0 - 0.5 is returned and rounded down to 0.
25% of the time 0.500000001 - 1 is returned and rounded to 1.
25% of the time 1.000000001 - 1.49999999 is returned and rounded to 1.
25% of the time 1.5 - 1.9999999999 is returned and rounded to 2.
Vim.

yo por mi parte pongo o floor() o  1 DIV()
La cosa es que,.... no tengo la menor idea.

http://matuxgames.blogspot.com/

Es un poco antiguo el tema... pero en GM8 (no s? si estan en GM7 o menos) existen las funciones: [gml]random_range(x1,x2)//Genera un n?mero con decimales entre x1 y x2
irandom_range(x1,x2)//Lo mismo, pero solo genera numeros enteros[/gml]

Espero que a alguien le sirva xD

Cita de: lordgeorge en Diciembre 16, 2010, 02:28:00 AM
Es un poco antiguo el tema... pero en GM8 (no s? si estan en GM7 o menos) existen las funciones: [gml]random_range(x1,x2)//Genera un n?mero con decimales entre x1 y x2
irandom_range(x1,x2)//Lo mismo, pero solo genera numeros enteros[/gml]

Espero que a alguien le sirva xD
Estoy casi 100% seguro que en GM7 y anteriores esas funciones no existen. Por lo que en es ?til en GM5, 6 y 7 (el script deber?a funcionar en las 3, si no me equivoco).
Vim.