Anuncios Google

Problema con random (Luadev)

Pues tengo puesto un math.random para que me muestre unas imagenes en distintas zonas pero al reiniciar siempre me lo muestra en las mismas coordenadas...

He probado hacer esto:

math.randomseed(os.time()/10000)

Pero nada...

 

Salu2 y gracias


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.


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.

pseudoaleatorio

Me temo que la funcion random, al igual que en muchos lenguajes, muestra números pseudoaleatorios dependiendo de la semilla o "seed". Encontrar numeros puramente aleatorios es un problema muy difícil. Lo que puedes hacer es cada vez que quieras mostrar numeros "aleatorios" distintos es actualizar la semilla con os.time(), aunque ya te digo que seria relativamente facil predecir los numeros que van a salir, pero dependiendo de la hora que sea deberian cambiar.

Imagen de jorge_97

by jorge_97

Gracias por ayudar pero eso fue de las primeras cosas que probe y como la semilla solo cambia en la ultima cifra:

 

xxxxxxxxxxx1

xxxxxxxxxxx2

No se modifica nada...

Salu2


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de barney77

WTF?, no sabes usar

WTF?, no sabes usar math.random?, lee la documentación, ahí solo estas pasando un argumento...

Imagen de jorge_97

By Jorge_97

Barney por dios...

Creo que o yo no me expresado bien o tu no has leido...

 

ALCARO: La imagen me la muestra en 1 y 2 por ejemplo. Pulso start y llamo a la funcion broke() entonces reinicio y me muestra la imagen en 1 y 2.

Me salgo de la aplicacion y me muestra la imagen en 4 y 6 por ejemplo.

Quiero que me lo muestre en distintas coordenadas sin salir del Homebrew.

 

Salu2


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de barney77

Mm.. pues entonces, cuando

Mm.. pues entonces, cuando reinicies el juego, Actualiza las cordenadas, osea primero tiene slos valores, luego cuando reinicies el juego ahí  vuelve a poner x=.... etc.

Imagen de jorge_97

By Jorge_97

Explicamelo mas detalladamente por favor.

 


 

Para corroborar lo que yo digo me he permitido hacer esto:

factor=math.random(1,120)
 
while true do
 
controls.read()
 
screen.print(10,90,tostring(factor),color.new(255,0,0))
 
if controls.start() then broke() end
screen.flip()

 

Siempre les saldra el mismo numero...


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de barney77

Aquí

Aquí va..

factor=math.random(1,120)
 
while true do
 
controls.read()
 
screen.print(10,90,tostring(factor),color.new(255,0,0))
 
if controls.start() then factor=math.random(1,120); broke() end
screen.flip()

Y asi con todas tus coordenadas ;).

Imagen de jorge_97

By Jorge_97

Lo he probado pero no funciona... Por que?

factor=math.random(1,120)
--Aqui definimos un valor para "factor"
 
while true do
 
controls.read()
 
screen.print(10,90,tostring(factor),color.new(255,0,0))
 
if controls.start() then factor=math.random(1,120); broke() end
--decimos que al pulsar start factor valga un math random partiendo de la misma semilla. Siempre generara el mismo factor...
 
screen.flip()


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Yo acabo de probar este

Yo acabo de probar este code:

factor=math.random(1,120)
while true do
    controls.read()
       screen.print(10,90,"Valor: "..factor)
          if controls.press("start") then factor=math.random(1,120) end
    screen.flip()
end

Y va bien, el número generado es distinto cada vez :/

Imagen de sting18

Es lo que le digo, pero creo

Es lo que le digo, pero creo que quiere hacer otra cosa.

Imagen de jorge_97

by jorge_97

Quereis que suba el Homebrew y veis a que me refiero...???

Salu2 y gracias

Imagen de Dioni0396

Si.

Porque quiza sea un problema tonto, ademas si lo pone en las mismas coordenadas es la casualidad, en "do you like you music" si tienes pocas canciones es probable que te salga la misma cancion 2 veces.

Imagen de jorge_97

by jorge_97

Para esto lo queria:

http://psp.scenebeta.com/node/83623

Solucionado

Imagen de sting18

asi?.

x = math.random(0,480)
y = math.random(0,272)
 
image.blit(x,y,imagen)
--tiempo de pausa

Imagen de jorge_97

By Jorge_97

asi:

 

if math.random(0,20)<1 then punto.x=punto.x+5 end
if math.random(0,20)<1 then punto.x=punto.x-5 end
if math.random(0,20)<1 then punto.y=punto.y+5 end
if math.random(0,20)<1 then punto.y=punto.y-5 end 
 
draw.fillrect(punto.x,punto.y,punto.w,punto.h,color.new(0,0,0))

 


Risa Dos años en SCENEBETA Risa

Click aquí para ver la Entrada de Bitácora.

Imagen de sting18

xD no se que quieras hacer

xD no se que quieras hacer exactamente pero si un Y te da menor a X?.

dime que quieres hacer exactamente las funciones sierven no es error de random es tuyo xD.


Imagen de jorge_97

By Jorge_97

Lee mas arriba quiza eso te aclare un poco

Imagen de sting18

Pues asi como te dije es una

Pues asi como te dije es una forma de cambiar cordenadas aleatoriamente, la otra es predeterminada y es lo mismo con X he Y esas son las cordenadas.


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.