https://www.segasaturno.com/portal/viewtopic.php?f=33&t=7676&p=78094#p78094 ----------------------------------- zeros 12 May 2014, 07:52 AM Re: Trasteando Con El Lua Player De Saturn (Tutorial) ----------------------------------- Es curiosa la forma en la que se usa el comando de random. Nornalmente, cuando haces una funcion random (que suelen funcionar con el reloj) metes en una variable su resultado por ejemplo asi. [code linenumbers=false]Var alea -- declaro la variable vacia alea, aunque no se si esta seria la forma correcta de acerlo en lua alea = slRandom() -- ejecuto la funcion random y el resultado que devuelve lo introduzco en la variable alea[/code] Sin embargo de la forma que lo usas es como si la propia funcion se quedase el valor, porque al meterla en un if en otros lenguajes de programacion lo que haria es volver a ejecutarse. [code linenumbers=false]If slRandom() < 0.5 -- aqui normalmente se ejecutaria la funcion nuevamente dando otro resultado diferente If alea < 0.5 -- esta seria la forma de hacerlo normalmente con una variable a la que previamente le has introducido el contenido slPrintf(alea,2,5) -- aquí muestra el contenido en pantalla de la variable con el numero random introducido al principio[/code] No estoy diciendo que lo uses de forma incorrecta, lo que digo es que es curiosa esa diferencia respecto a otros lenguajes que he visto. En el ejemplo la ejecutas y luego la comparas usando la misma función, que de hacer eso en otro lenguaje se volvería a ejecutar y a dar un resultado diferente: [code linenumbers=false]slRandom() -- aqui normalmente se ejecuta y da un resultado que no va a ninguna variable y por lo tanto se pierde If slRandom() < 0,5 -- aqui generaría un resultado (diferente del anterior) que se compara en un if slPrintf(slRandom(),2,5) -- aquí generaría otro resultado diferente y lo imprimiría [/code] Es posible que Lua al ser mas facil no ejecute las funciones en una comparación o una impresión, sino que se guarde su ultimo resultado y lo compare. PD: es posible que el reloj del emu este siempre a la misma hora exacta? Y como nada mas cargarse la iso se ejecuta el programa siempre tarda lo mismo siempre te el mismo numero, en teoria los randoms salen del reloj del sistema, si el emu comienza a contar desde el 17 de noviembre de 1995 a las 00:00 cuando lo enciendes, siempre sera la misma hora exacta y te dara el mismo random. Si estoy en lo cierto, al cambiar el programa, que ejecute mas lineas de codigo por ejemplo, tardara mas y dara un numero diferente. PD2: la utilidad del random, ademas de para crear objetos alea, es para decidir que puntuacion sacas sacas en un combate por turnos: si fallas o no, si sacas critico o cuanto daño haces. PD3: esto es divertido!! ^^