elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
12 Octubre 2008, 18:37  



+  Foro de elhacker.net
|-+  Programación
| |-+  Programación VB (Moderadores: ||MadAntrax||, E0N)
| | |-+  generador de numeros aleatorios en VB
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Imprimir
Autor Tema: generador de numeros aleatorios en VB  (Leído 24282 veces)
diego994

Desconectado Desconectado

Mensajes: 9


¡Amo YaBB SE!


Ver Perfil
generador de numeros aleatorios en VB
« en: 19 Noviembre 2003, 17:38 »

"Efectivo?" generador de números aleatorios en VB6
Bueno, este es un módulo q programe hace mucho para un juego en vb6, intenté jugar con la funcion Rnd sin usar la Randomize. gMaxNum es una variable global que no me acuerdo para q carajo era jejeje, na es el número max que puede devolver la función. Estudienlo q cambiando algunos valores se personaliza. Quizas a alguien le pueda servir.


Public Function intNumeroaleatorio() As Integer
    Dim r As String, s As Integer, t As Integer, seacabo As Boolean
    seacabo = False
    Do While seacabo = False
        r = CStr(Timer)
        s = Len(r)
        t = Mid(r, s, 1)
        intNumeroaleatorio = (t * Int(gletras * Rnd))
        r = CStr(intNumeroaleatorio)
        s = Len(r)
        t = Mid(r, s, 1)
        intNumeroaleatorio = t
        If intNumeroaleatorio >= 0 And intNumeroaleatorio < gMaxNum Then
            seacabo = True
        End If
    Loop
End Function
« Última modificación: 14 Enero 2004, 09:55 por soplo » En línea
Xrasl

Desconectado Desconectado

Mensajes: 10


{\XrasL/} Souless 4 EvEr


Ver Perfil
Re: generador de numeros aleatorios en VB
« Respuesta #1 en: 09 Mayo 2004, 05:16 »

Hola e mirado el source que aparece arriba, pero no consigo hacerlo funcionar. si no seria mucho pedir ¿pueden explicarme como se puede hacer funcionar, yo hice un codigo que creaba numeros aleatorios pero solo me respondia con 1s y 0s, es el siguiente:

Private Sub Command1_Click()
Dim Num As Byte
  Randomize
  Num = Rnd
  Text1.Text = Num
End Sub


Yo quiero que me consiga numeros enteros entre 0 y 255, por lo que utilizé la variable byte, pero no se cual es el error que cometi.
Espero k me respondan Gracias :)
En línea
MMara

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: generador de numeros aleatorios en VB
« Respuesta #2 en: 16 Junio 2004, 20:15 »

si miras en la ayuda, te dice que rnd te da valores entre 0 y 1, así que lo que tienes que hacer es:
Int((Límite_superior - límite_inferior + 1) * Rnd + límite_inferior)

Lo he probado y funciona:
Código:
Private Sub Command1_Click()
    Dim Num As Byte
    Num = Int(255 - 1) * Rnd + 0
    Text1.Text = Num
End Sub
Un saludo!
« Última modificación: 16 Junio 2004, 20:25 por MMara » En línea
Xrasl

Desconectado Desconectado

Mensajes: 10


{\XrasL/} Souless 4 EvEr


Ver Perfil
Re: generador de numeros aleatorios en VB
« Respuesta #3 en: 18 Junio 2004, 20:43 »

Ok muchas gracias.
MMara una duda sobre la ayuda. Yo le doy al boton d la ayuda y me pide que instale la "coleccion MSDN". Eso que es un programa de ayuda o algo asi?  :P
Graciassss ;)
En línea
el_chente23

Desconectado Desconectado

Mensajes: 136



Ver Perfil
Re: generador de numeros aleatorios en VB
« Respuesta #4 en: 22 Junio 2004, 05:57 »

La Coleccion MSDN (Microsoft Developer Network), Es La Ayuda Tipo CHM de Visual Studio 6.0, Esta ayuda Son 2 Discos, Por Lo Menos Esos Son Los Que Tengo Yo.  ;)

En línea

Villamil

Desconectado Desconectado

Mensajes: 95


¿Que se supone que tenog que poner aquí?


Ver Perfil WWW
Re: generador de numeros aleatorios en VB
« Respuesta #5 en: 26 Junio 2004, 00:53 »

Yo para hacer números aleatorios hago:

Rnd =((Int*el número máximo)-1
En línea

||MadAntrax||
Lab Member
Moderador Global
*****
Desconectado Desconectado

Mensajes: 1.459


This is the end, my only friend, the end...


Ver Perfil WWW
Re: generador de numeros aleatorios en VB
« Respuesta #6 en: 03 Julio 2004, 00:21 »

Yo para hacer numeros aleatorios uso:
Num = Int((Rnd * numero maximo)+1)
(esto me muestra un numero entre el: 1 al numero maximo

o si no:
Num = Int(Rnd * numero maximo)
(esto me muestra un numero entre el: 0 al numero maximo - 1
En línea

MSN Kick 1.5 (100%)
Cactus Joiner 3.0 (65%)
Cactus Metamorph 0.2.1 (100%)
Cactus Downloader (45%)
Cactus Keylogger (30%)
Cactus Worm Generator (20%)

bluedog
Visitante


Email
Re: generador de numeros aleatorios en VB
« Respuesta #7 en: 25 Agosto 2004, 06:21 »

La Coleccion MSDN (Microsoft Developer Network), Es La Ayuda Tipo CHM de Visual Studio 6.0, Esta ayuda Son 2 Discos, Por Lo Menos Esos Son Los Que Tengo Yo.  ;)


>>Ya y por si acaso, no sabes donde se podrían bajar esos discos? o simplemente hay que comprarselos a Microsoft?
En línea
bluedog

Desconectado Desconectado

Mensajes: 3


blue[dog]


Ver Perfil
Re: generador de numeros aleatorios en VB
« Respuesta #8 en: 11 Septiembre 2004, 05:08 »

>>Ya pues hombre! contesteis la questions o nadie sabe?
« Última modificación: 11 Septiembre 2004, 05:11 por bluedog » En línea

cout<<"todo se puede aprender en esta vida"<<bluedog
musky

Desconectado Desconectado

Mensajes: 6



Ver Perfil
Re: generador de numeros aleatorios en VB
« Respuesta #9 en: 11 Noviembre 2004, 06:30 »

La verdad es que el codigo que postea diego994 es totalmente descartable. Ya que el Visual Basic 6 cuenta con un algoritmo interno lo cual fue optimizado para lograr un mejor desempeño en las aplicaciones.

Se utiliza
Randomize para que el Rnd sea <> al anterior.
Rnd Genera un numero entre 0.001 y 0.999.
Int Toma la parte entera redondeando para arriva

espero que les quede claro todo adios

En línea

Nombre: Jonathan Ariel Muszkat
Escuela: Ort Yatay
Edad: 15
Detalles: mmm Programador (cualquier lenguaje), Diseñador(Photoshop, Freehand, Firework), Animador(Flash, + actionscript 2.0)
Gustos: Autos, Rubias, Dance, Bailar punch
Slasher-K

Desconectado Desconectado

Mensajes: 1.480


Ver Perfil
Re: generador de numeros aleatorios en VB
« Respuesta #10 en: 24 Noviembre 2004, 14:18 »

Para crear VERDADEROS números aleatorios en VB hay que crear nuestro propio algoritmo usando varios valores variables y combinándolos. Si queremos valores aleatorios necesitamos recurrir a la API de Win2, por ejemplo a las funciones GetTickCount, GetCurrentProcessId, GetCurrentProcess, GetCurrentThreadId. Mezclando los valores devueltos por estas funciones, más la fecha y hora actuales, más algún número generado a partir de una CLSID aleatoria, podemos obtener un número aleatorio.

La idea de un número aleatorio es que no se repita en el tiempo, por lo tanto para crearlo tenemos que intentar usar parámetros que tampoco se repitan en el tiempo.

Abajo dejo un ejemplo sencillo de como generar un nº aleatorio. Para usarlo hay que agregar una referencia a WIN.TLB

Código:
Function Rand(Optional Seed As Long) As Currency
          Dim lpMem As MEMORYSTATUS
          Dim lTime&, lProc&, lProcId&
          Dim lDate&, cRand@

  If Seed <= 0 Then Seed = Rnd * GetClsidCount
 
  'Datos que se usarán para generar el número aleatorio.
  '
  Call GlobalMemoryStatus(lpMem)
  lTime = timeGetTime
  lProc = GetCurrentProcess
  lProcId = GetCurrentProcessId
  lDate = CLng(Date)
 
  cRand = (lpMem.dwAvailVirtual Mod lTime) Xor _
               ((lTime Xor (lProc Mod lProcId)) Xor _
               (lProcId + (lDate Xor lpMem.dwTotalPageFile)))

  Rand = cRand
End Function
« Última modificación: 01 Julio 2005, 07:05 por Dunklerstern » En línea



A la reina de las profundidades que cuida los pasos de una sombra en la noche :*
willmx

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: generador de numeros aleatorios en VB
« Respuesta #11 en: 29 Noviembre 2004, 09:25 »

¿si quiero generar numeros Pseudoaletorios? no necesito el random para eso....como lo harian
En línea
capi

Desconectado Desconectado

Mensajes: 12



Ver Perfil WWW
Re: generador de numeros aleatorios en VB
« Respuesta #12 en: 30 Diciembre 2004, 08:30 »

tengo una duda y es que cuando uso rnd me sale todo bien pero siempre sale la misma cadena de numeros y por orden, alguien sabe como arreglar esto??? ???
En línea

hispalink.es.kz --->>>foro empezando, se necesitan colaboradores; contenidos: peliculas, juegos pc, ps2, xxx, etc... pasate por aquí
capi

Desconectado Desconectado

Mensajes: 12



Ver Perfil WWW
Re: generador de numeros aleatorios en VB
« Respuesta #13 en: 31 Diciembre 2004, 09:17 »

tengo una duda y es que cuando uso rnd me sale todo bien pero siempre sale la misma cadena de numeros y por orden, alguien sabe como arreglar esto??? ???

Ya lo he averiguado, para quien quiera saberlo con poner un "randomize" en el "From1_load" vale, sale siempre números diferentes.
En línea

hispalink.es.kz --->>>foro empezando, se necesitan colaboradores; contenidos: peliculas, juegos pc, ps2, xxx, etc... pasate por aquí
Aphex

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: generador de numeros aleatorios en VB
« Respuesta #14 en: 04 Enero 2005, 11:00 »

Hola, feliz año a todos. Soy nuevo en el foro. Aunque solo soy un principiante en programación, al ver este mensaje se me ha ocurrido que quizás podría aportar algo.

Voy a poner una manera sencilla de sacar numeros aleatorios en VB6.

Hace poco realicé un simulador de dados (uno de 8 caras y otro de 100). A continuación os pongo el código del de 8:

Creais un nuevo proyecto (exe stándard) y añadís un botón (Command1), un timer  (Timer1) y un label (Label1).

El código sería:

-------------------------------------------------------------------

Private Sub FormLoad()
Timer1.Enabled = False
End Sub
_______________________________________________

Private Sub Command1_Click()
Dim numero as Byte
Timer1.Enabled = True

Randomize Timer
              numero = rnd * 8

      Do While numero > 8
              numero = numero - 8
Loop
     
      Do While numero < 1
              numero = numero + 8
Loop
label1.Caption = numero
End Sub

------------------------------------------------------------
Y ya está. Cada vez que se hace clic en el botón, el programa genera diferentes números comprendidos entre el 1 y el 8 los cuales se muestran en el label1 (para el de 100 caras, se sustituye el 8 por el 100).

Espero que os sirva. ^^

PD: También espero que a los moderadores no les moleste que lo haya puesto sin el "code", pero creo que así se ve más claro (aunque si hace falta, pues me lo decís y lo cambio).
« Última modificación: 05 Enero 2005, 01:34 por Aphex » En línea
Páginas: [1] 2 3 Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

hard-h2o modding    Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    Foros en español    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.6 | SMF © 2006-2008, Simple Machines LLC
Free counter and web stats