Noticias

Se ha publicado un nuevo servicio, el Portal de Juegos Online

Comunidad Game Maker

Bienvenid@ a la comunidad hispana de Game Maker. Nuestro objetivo es crear videojuegos y dar soporte en castellano de GM. Para mejorar nuestro servicio hemos implantado, como adicion al reglamento general, algunas normas especificas en los subforos más comunes. ¡No olvides informarte antes de participar!.

Autor Tema: random2  (Leído 6115 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado FrozenPanda

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 233
  • Sexo: Masculino
    • Ver Perfil
en: Agosto 01, 2009, 01:30:55 am
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- :

Código: [Seleccionar]
/****

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;}
« última modificación: Diciembre 13, 2019, 12:37:05 pm por CelSeven »

 


No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado fega

  • Adicto
  • *
  • Puntos: 65
  • Mensajes: 294
  • Sexo: Masculino
    • Ver Perfil
    • Mi mundo! el mundo de FeGA!
Respuesta #1 en: Agosto 12, 2009, 03:53:22 am
retornar o no con decimales? ???

entra a!:
 


Desconectado Fenris78

Respuesta #2 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.


Desconectado FrozenPanda

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 233
  • Sexo: Masculino
    • Ver Perfil
Respuesta #3 en: Agosto 13, 2009, 08:27:30 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  ;)

 


Desconectado Ciberman

  • Okupa
  • *
  • Puntos: 212
  • Mensajes: 1.221
  • Agradecido: 4 veces
  • Sexo: Masculino
  • Ciberman Games - Un pixel Marca la Diferencia
    • Ver Perfil
    • Ciberman
Respuesta #4 en: Septiembre 30, 2009, 02:58:09 pm
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 2008
CGM: 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/
 


Desconectado hardraid

  • Adicto
  • *
  • Puntos: 5
  • Mensajes: 297
  • Sexo: Masculino
    • Ver Perfil
    • http://www.hardraidsoftware.com.ar
Respuesta #5 en: Septiembre 30, 2009, 06:03:37 pm
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.
 


Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
Respuesta #6 en: Septiembre 30, 2009, 07:56:34 pm
La última línea se puede optimizar:
Código: [Seleccionar]
return rnd2-(frac(rnd2)*(!argument2));
Muy útil el script :)

 


Desconectado KrakenHimoto

  • Lobo Kraken, El Heredero
  • Okupa
  • *
  • Puntos: 29
  • Mensajes: 1.223
  • Agradecido: 2 veces
  • Sexo: Masculino
  • A quien cuentes tu secreto, a ese estarás sujeto.
    • Ver Perfil
Respuesta #7 en: Noviembre 23, 2009, 06:53:45 am
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?


Desconectado metalfox6383

  • Habitual
  • *
  • Puntos: 31
  • Mensajes: 77
    • Ver Perfil
Respuesta #8 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.

 


Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
Respuesta #9 en: Diciembre 02, 2009, 06:17:40 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 .
Por otro lado el "Argument0 = ¿Retornar con decimales?" no es el argument 2?
Sí, el CelSeven se equivocó.
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.

 


Desconectado Hackware

Respuesta #10 en: Diciembre 11, 2009, 08:46:05 pm
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!

       
 


Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
Respuesta #11 en: Diciembre 11, 2009, 08:56:31 pm
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 Toast
rand_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.

 


Desconectado MatuX

  • Adicto
  • *
  • Puntos: 60
  • Mensajes: 409
  • Sexo: Masculino
  • MX-Games
    • Ver Perfil
    • matuxgames
Respuesta #12 en: Diciembre 15, 2010, 06:30:48 pm
yo por mi parte pongo o floor() o  1 DIV()

La cosa es que,.... no tengo la menor idea.

http://matuxgames.blogspot.com/
 


Desconectado lordgeorge

  • Asiduo
  • *
  • Puntos: 0
  • Mensajes: 138
    • Ver Perfil
Respuesta #13 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:
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

Espero que a alguien le sirva xD

 


Desconectado Wadk

  • In order to see...
  • Legendario
  • *
  • Puntos: 274
  • Mensajes: 2.355
  • Sexo: Masculino
  • ... you must close your eyes.
    • Ver Perfil
Respuesta #14 en: Diciembre 19, 2010, 03:54:05 am
Es un poco antiguo el tema... pero en GM8 (no sé si estan en GM7 o menos) existen las funciones:
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

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).