Anuncios Google

Ayuda con random (lua)

quisiera saber si hay alguna forma de que no se repitan tantas veses el mismo numero.

De antemano grasias.

 

 

rojo = Color.new(255,0,0)
dado1 = Image.load("dado1.png")
dado2 = Image.load("dado2.png")
dado3 = Image.load("dado3.png")
dado4 = Image.load("dado4.png")
dado5 = Image.load("dado5.png")
dado6 = Image.load("dado6.png")

while true do
screen:clear()

pad = Controls.read()

if pad:cross() and oldpad:cross() ~= pad:cross() then
dado()
end

function dado()
math.randomseed( os.time() )
aleatorio = math.random(1,6)
oldpad = Controls.read()
 

if  aleatorio == 1 then
    screen:print(0,0,"Ha salido el numero 1",rojo)
     screen:blit(166,81,dado1)    
screen.flip()
elseif aleatorio == 2 then
    screen:print(0,0,"Ha salido el numero 2",rojo)
     screen:blit(166,81,dado2)    
screen.flip()
elseif aleatorio == 3 then
    screen:print(0,0,"Ha salido el numero 3",rojo)
     screen:blit(166,81,dado3)
     screen:flip()
   
elseif aleatorio == 4 then
    screen:print(0,0,"Ha salido el numero 4",rojo)
     screen:blit(166,81,dado4)   
 screen.flip()
elseif aleatorio == 5 then
    screen:print(0,0,"Ha salido el numero 5",rojo)
     screen:blit(166,81,dado5)   
 screen.flip()
elseif aleatorio == 6 then
    screen:print(0,0,"Ha salido el numero 6",rojo)
     screen:blit(166,81,dado6)    
screen.flip()
end
end

screen.waitVblankStart()
oldpad = pad
end


Saves tocar la guitarra, eres de las peresonas como yo que no deja la guitarra ni un dia, pues espera mi aplicacion pues te sera de mucha utilidada.

Trabajando en 3 proyectos aunque no alla tiempo jaja:
*Batalla Ninja v5 incluira muchas mejoras muy buenas esperenlo

*Un juego de Mesa con editor de mapas y manejamiento automatico de mapa 
*Una aplicacion secreta util para los guitarristas

Team AntraX Miembro


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de P22

Perdon, no me explique bien,

Perdon, no me explique bien, me refería a que los números aleatorios , siempre llevavan el mismo orden.

PE: Si cuando te metes te sale 1,6,4,6,6,2,3,4,3 ; luego te vuelven a salir cuando vuelves a iniciar los mismos números, pero esque se me cruzaron los cables :P

Saludos


¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.

Mi review: iPod Touch 4G

Imagen de P22

Esto ya surgio en un foro

Esto ya surgio en un foro anterior , y trajo muchos problemas porque nadie sabia solucionarlo, hasta que no alcance el nivel y lo deje de ladoXD
Saludos.
PD: Si quieres verlo era algo del parchis


¡Iníciate en Linux fácilmente! Sólo entra aquí y comprueba que distribución se adapta mejor a tí.

Mi review: iPod Touch 4G

Imagen de pspgorrister

¿Pero nadie sabía

¿Pero nadie sabía solucionar el qué?, ¿Que no se repitieran números aletarios?.
Es que si son aleatorios PUEDEN repetirse. Es decir yo puedo tirar un dado 4 veces
y tirar 4 "seises" seguidos, y también lo puedo tirar 20 veces y no repetir una tirada
consecutiva, de ahí la "aleatoriedad".
Si no es eso, no acabo de comprender el problema.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de ZYX3D

Que se liaban con el randomseed

Lo que no sabían solucionar es que se repitiera siempre la misma secuencia.

O sea, que siempre le ponían la misma semilla (generalmente, ninguna), o se la repetían periódicamente, y ya sabes qué pasa.

Me suena que "alguien" dijo que miraran la referencia, y que no le hicieron mucho caso... :)


Strength is irrelevant. Resistance is future. We wish to improve ourselves.

La fuerza es irrelevante. La resistencia es futuro. Queremos mejorarnos.

Imagen de pspgorrister

Ahorrando código.

La solución de que el número no se te repita te lo han dicho mas abajo, de todas formas te voy a dar una indicación para que te ahorres tanto código, eso con un dado de 20 puede ser brutal. ;-)

NOTA: No conozco Lua, así que la sintaxis no puede ser correcta, pero al menos que quede claro "el concepto"

rojo = Color.new(255,0,0)

while true do
    screen:clear()
    pad = Controls.read()
    if pad:cross() and oldpad:cross() ~= pad:cross() then
       dado()
   end
   screen.waitVblankStart()
   oldpad = pad
end

function dado()
   math.randomseed( os.time() )
   aleatorio = math.random(1,6)
   oldpad = Controls.read() --¿¿necesario esto??

   screen:print(0,0,"Ha salido el numero " + aleatorio,rojo)
   dado_img = Image.load("dado" + aleatorio + ".png")
   screen:blit(166,81,dado_img)
   screen.flip()
end
 

NOTA: Me imagino que randomseed, inicializará la generación de números aleatorios a partir de un valor. Si es así, no hace falta que lo pongas en la función, ya que con se ejecute una vez al principio del programa es suficiente.


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de Arkanist

Aclarar...

Que para unir dos strings, se usa "..", se que no programas en Lua, pero lo aclaro para el usuario que abrió el post, por si se confundiera xd.

Saludos.

Imagen de toños

dejame intentarlo y grasias.

dejame intentarlo y grasias.

Imagen de Guillermo_Cornielle

Pues

Con condiciones, un ejmplo:

Supongamos que ha salido el numero 6 y no quieres que se repita, tendrias que crear dos variable una que almacene el numero anterior y otra que almacene el numero actual, seria algo asi:

If prevnum == 6 and currentnum == 6 then

math.random(1,6)

end

La variable currentnum es la que contiene el numero actual y la variables prevnum es al que contiene el numero anterior al actual. Como sea, lo que s eha hecho ahi es comparar las dos variables, si el numero anterior al numero actual es el mismo, pues volvera a buscar otro numero hasta que sea diferente al numero anterior.

No es una forma fiable, pero algo es algo.

Un saludo y espero hayas entendido.

PD: Este es un ejemplo no funcional.


Manual del Perfecto Votante Para un voto libre y justo!.

TheGCProjects

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.