elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Números Aleatorios!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Números Aleatorios!  (Leído 4,662 veces)
ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Números Aleatorios!
« en: 8 Abril 2009, 21:30 pm »

Buenas...
Tengo un problema con nº aleatorios en VB, probé muchísimos códigos de como generarlos pero siempre me repite los mismos números.
Lo que estoy haciendo es un "Piedra, papel o Tijera" y poniendo que cuando salga el número 1 muestre piedra, número 2 muestre papel y número 3 muestra tijera.

Pero como dije, todos los códigos que encontré en google no me sirvieron, o sea genera números aleatorios pero siempre que se vuelve a ejecutar el programa sigue con los mismos numeros. Siempre comienza igual.

Por ejemplo:
Elijo piedra y me sale papel xD.
Cierro el programa vuelvo a hacer lo mismo y me sale PAPEL.
O sea que siempre hace la misma secuencia de numeros, aleatorios pero la misma secuencia.

Espero que hayan entendido y me puedan a ayudar...

Muchas gracias!


En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Números Aleatorios!
« Respuesta #1 en: 8 Abril 2009, 21:34 pm »

Antes de comenzar con el rnd (Random), pon "Randomize", sin comillas, con eso inicias la semilla del random y ya no se repite cada vez que lo ejecutas  :P

Es igual a esto:
http://foro.elhacker.net/scripting/vbscomo_usar_randomize-t247133.0.html
(es vbs pero la aplicación es la misma)

Saludos


En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Re: Números Aleatorios!
« Respuesta #2 en: 8 Abril 2009, 21:45 pm »

Antes de comenzar con el rnd (Random), pon "Randomize", sin comillas, con eso inicias la semilla del random y ya no se repite cada vez que lo ejecutas  :P

Es igual a esto:
http://foro.elhacker.net/scripting/vbscomo_usar_randomize-t247133.0.html
(es vbs pero la aplicación es la misma)

Saludos

Hola Novlucker, gracias por responder tan rapido.
Vi el post que me pusiste arriba. Probé eso y me dio aleatorios PERFECTAMENTE.

Randomize
for i = 1 to 3
msgbox rnd()
next

El único problema es que los daba poniendo decimales. Como puedo hacer para que sea redondeados? o sea 1 o 2 o 3 y no 0.234, 1,657 etc...

Muchas gracias!
En línea

Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Números Aleatorios!
« Respuesta #3 en: 8 Abril 2009, 21:49 pm »

Eso ocurre porque el rnd genera números entre 0 y 1, para generar enteros dentro de un intervalo en particular:

Código
  1. Randomize()
  2. Msgbox Int((3 - 1 + 1) * Rnd + 1)

Código
  1. Randomize()
  2. Msgbox Int((mayor - menor + 1) * Rnd + menor)

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Re: Números Aleatorios!
« Respuesta #4 en: 8 Abril 2009, 22:24 pm »

Muchas gracias nuevamente Novlucker, voy a poner mi código con otro "problema" que surgió (creo que es problema xD)

Código
  1. Private Sub image1_Click()
  2. Frame1.Enabled = False
  3. imgpiedra.Visible = True
  4.  
  5. Randomize (Timer)
  6. alea = Int((3 - 1 + 1) * Rnd + 1)
  7.  
  8. If alea = 1 Then
  9.    imgpiedra2.Visible = True
  10. ElseIf alea = 2 Then
  11.    imgpapel2.Visible = True
  12. ElseIf alea = 3 Then
  13.    imgtijera2.Visible = True
  14. End If
  15.  
  16. If imgpiedra.Visible = True And imgpiedra2.Visible = True Then
  17.    MsgBox ("EMPATE!!")
  18. ElseIf imgpiedra.Visible = True And imgpapel2.Visible = True Then
  19.   MsgBox ("PERDISTE!!")
  20. ElseIf imgpiedra.Visible = True And imgtijera2.Visible = True Then
  21.    MsgBox ("GANASTE")
  22. End If
  23. End Sub
  24.  
  25. Private Sub image2_Click()
  26. imgpapel.Visible = True
  27. Frame1.Enabled = False
  28.  
  29. Randomize (Timer)
  30. alea = Int((3 - 1 + 1) * Rnd + 1)
  31.  
  32. If alea = 1 Then
  33.    imgpiedra2.Visible = True
  34. ElseIf alea = 2 Then
  35.    imgpapel2.Visible = True
  36. ElseIf alea = 3 Then
  37.    imgtijera2.Visible = True
  38. End If
  39.  
  40. If imgpapel.Visible = True And imgpiedra2.Visible = True Then
  41.    MsgBox ("GANASTE!!")
  42. ElseIf imgpapel.Visible = True And imgpapel2.Visible = True Then
  43.    MsgBox ("EMPATE!!")
  44. ElseIf imgpapel.Visible = True And imgtijera2.Visible = True Then
  45.    MsgBox ("PERDISTE!!")
  46. End If
  47.  
  48. End Sub
  49.  
  50. Private Sub image3_Click()
  51. imgtijera.Visible = True
  52. Frame1.Enabled = False
  53.  
  54. Randomize (Timer)
  55. alea = Int((3 - 1 + 1) * Rnd + 1)
  56.  
  57. If alea = 1 Then
  58.    imgpiedra2.Visible = True
  59. ElseIf alea = 2 Then
  60.    imgpapel2.Visible = True
  61. ElseIf alea = 3 Then
  62.    imgtijera2.Visible = True
  63. End If
  64.  
  65. If imgtijera.Visible = True And imgpiedra2.Visible = True Then
  66.    MsgBox ("PERDISTE!!")
  67.  
  68. ElseIf imgtijera.Visible = True And imgpapel2.Visible = True Then
  69.    MsgBox ("GANASTE!!")
  70. ElseIf imgtijera.Visible = True And imgtijera2.Visible = True Then
  71.    MsgBox ("EMPATE!!")
  72. End If
  73. End Sub
  74.  
  75.  

Así lo hice yo pero probando siempre da casi igual como te decía en el anterior post. Ahora da aleatorio por ejemplo algo asi:  Piedra, Piedra, Piedra, Papel, Tijera.
Y si cierro el programa empieza Tijera Tijera Tijera, Piedra :P. Siempre da los mismos o no se si fue casualidad.

Como dije les dejo el código por ahi algo esta mal.

Muchas gracias nuevamente!
En línea

ka0s


Desconectado Desconectado

Mensajes: 308


Ver Perfil
Re: Números Aleatorios!
« Respuesta #5 en: 9 Abril 2009, 04:27 am »

Aclaro que al final me funciona todo correctamente.
Muchas gracias nuevamente Novlucker :)

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Numeros Aleatorios
Programación Visual Basic
ltbl 3 2,943 Último mensaje 10 Diciembre 2010, 03:26 am
por BlackZeroX
Numeros aleatorios en C
Programación C/C++
ANTÓN RAMIREZ 0 3,259 Último mensaje 14 Diciembre 2010, 21:22 pm
por ANTÓN RAMIREZ
Tiburon de numeros aleatorios
.NET (C#, VB.NET, ASP)
_-Javier-_ 1 2,468 Último mensaje 21 Enero 2011, 20:42 pm
por kasiko
codigo para que no se repitan los numeros aleatorios con un randomize
.NET (C#, VB.NET, ASP)
jan77 3 6,364 Último mensaje 5 Febrero 2011, 11:49 am
por kingdarnakes
numeros aleatorios en funcion de una division
Programación Visual Basic
Pegano25 9 4,235 Último mensaje 12 Junio 2011, 20:43 pm
por martin_poipon
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines