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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  excluir numeros de la funcion Rnd(x,y)?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: excluir numeros de la funcion Rnd(x,y)?  (Leído 6,288 veces)
marrison

Desconectado Desconectado

Mensajes: 179



Ver Perfil
excluir numeros de la funcion Rnd(x,y)?
« en: 1 Mayo 2013, 20:39 pm »

Hola buenas, os explico, estoy haciendo un juego para b4a y vb, pero hay una cosa que necesito y no se hacerla, el juego tendria 6 botones, el ordenador asigna a una variable x un valor aleatorio del 1 al 6, Rnd(1,7).

Vale el juego en un principio lo hice con dos jugadores y todo bien, se trata de ir pulsando botones que se desactivan cada vez que los pulsas, y si pulsas el boton correspondiente al valor aleatorio elegido anteriormente pierdes, ahora lo que queria era hacerlo de un jugador, jugar contra la maquina, pero me atasco a la hora de hacer que elija un numero, habia pensado en otro Rnd, pero lo que me preguntaba es si se pueden excluir del intervalo los valores de los botones que esten desactivados, para asi que tenga que cojer uno de los que aun estan activos, se podria excluir estos valores?

Tambien habia pensado otra cosa que era hacer un numero aleatorio, mirar si ese esta desactivado, y si esta desactivado elegir otro hasta que coja un valor posible, pero es muy largo y lioso, y podria equivocarme, hay alguna otra forma de hacerlo?

Como lo hariais? muchas gracias de antemano, un saludo


En línea

"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: excluir numeros de la funcion Rnd(x,y)?
« Respuesta #1 en: 2 Mayo 2013, 13:30 pm »

HOLA!!!

Esto es programacion basica!

Te diria que leas esto, seguramente encuentres la respuesta:
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/71.htm

GRACIAS POR LEER!!!


En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
marrison

Desconectado Desconectado

Mensajes: 179



Ver Perfil
Re: excluir numeros de la funcion Rnd(x,y)?
« Respuesta #2 en: 2 Mayo 2013, 18:15 pm »

HOLA!!!

Esto es programacion basica!

Te diria que leas esto, seguramente encuentres la respuesta:
http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/71.htm

GRACIAS POR LEER!!!

En primer lugar gracias por contestar, solo eso ya se agradece, tambien gracias por el link, encontre cosas utiles, pero no exactamente lo que buscaba... de todas formas muchas gracias;

Una cosa con lo de que esto es programacion basica que has querido decir? No puedo ponerlo aqui?
 Me tocara hacer un bucle con la sentencia if, espero no liarme mucho jajaja, muchas gracias :)
En línea

"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)
ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: excluir numeros de la funcion Rnd(x,y)?
« Respuesta #3 en: 2 Mayo 2013, 19:10 pm »

Es sencillo: Mete el indice de cada botón válido a un arreglo, llama a la función Rand con el tamaño del arreglo como parámetro, y ¡chanchan!, te arrojará un número dentro del arreglo que contendrá el indice de un botón válido.

¡Saludos!
En línea

marrison

Desconectado Desconectado

Mensajes: 179



Ver Perfil
Re: excluir numeros de la funcion Rnd(x,y)?
« Respuesta #4 en: 3 Mayo 2013, 15:03 pm »

Es sencillo: Mete el indice de cada botón válido a un arreglo, llama a la función Rand con el tamaño del arreglo como parámetro, y ¡chanchan!, te arrojará un número dentro del arreglo que contendrá el indice de un botón válido.

¡Saludos!

lo siento, soy nuevo en esto de vb y no lo he entendido muy bien... hago un arra de los botones validos, pero es que eso cambia, como puedo hacer que solo esten los validos?
En línea

"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: excluir numeros de la funcion Rnd(x,y)?
« Respuesta #5 en: 3 Mayo 2013, 15:19 pm »

HOLA!!!

Entonces lo que queres es una funcion de numeros aleatorios que no repita y tenga un minimo y un maximo?

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
marrison

Desconectado Desconectado

Mensajes: 179



Ver Perfil
Re: excluir numeros de la funcion Rnd(x,y)?
« Respuesta #6 en: 3 Mayo 2013, 15:26 pm »

HOLA!!!

Entonces lo que queres es una funcion de numeros aleatorios que no repita y tenga un minimo y un maximo?

GRACIAS POR LEER!!!

no exactamente, hay 6 botones, cada boton con un numero, al principio genero un numero aleatorio con Rnd(1,7), al pulsar un boton hay dos opciones, si el numero del boton corresponde con el numero aleatorio pierdes, si no pasa turno y se bloquea,

Lo he hecho con dos jugadores, cada uno elige el boton, ahora lo que quiero es hacer que solo sea para un jugador, de tal forma que el pc piense un boton para pulsar, de ahi lo del aleatorio, pero como hay algunos botones que estan desactivados no funionaria, por eso quiero excluir de la funcion Rnd los numeros de los botones que esten desactivados, no se si me explico....

Muchas gracias por contestar, un saludo
En línea

"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: excluir numeros de la funcion Rnd(x,y)?
« Respuesta #7 en: 3 Mayo 2013, 15:58 pm »

HOLA!!!

Espero que entiendas el codigo que arme.

Es un ejemplo, la funcion devolvera numeros enteros entre el minimo y el maximo inclusive exeptuando los numeros que se encuentren en el Vector "Excluir".

Código
  1. Private Sub Form_Load()
  2.    Dim Excluidos(2) As Long
  3.    Excluidos(0) = 2
  4.    Excluidos(1) = 4
  5.    Excluidos(2) = 5
  6.    Debug.Print RndExcluye(1, 7, Excluidos)
  7.    End
  8.  
  9. End Sub
  10. Private Function RndExcluye(Min As Long, Max As Long, Excluir() As Long) As Long
  11.    Dim Num As Long
  12.    Dim Flag As Boolean
  13.        Randomize Timer
  14.        Flag = True
  15.        Do While Flag = True
  16.            Num = CLng((Min - Max) * Rnd + Max)
  17.            Flag = False
  18.            For x = 0 To UBound(Excluir)
  19.                If Excluir(x) = Num Then Flag = True
  20.            Next
  21.        Loop
  22.        RndExcluye = Num
  23. End Function
  24.  

GRACIAS POR LEER!!!
En línea

"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

 79137913                          *Shadow Scouts Team*
marrison

Desconectado Desconectado

Mensajes: 179



Ver Perfil
Re: excluir numeros de la funcion Rnd(x,y)?
« Respuesta #8 en: 3 Mayo 2013, 16:04 pm »

gracias, a ver si eso me sirve jajajaja
En línea

"Es genial trabajar con ordenadores. No discuten, lo recuerdan todo y no se beben tu cerveza" (Paul Leary)

"Controlar la complejidad es la esencia de la programación" (Brian Kernigan)

"Primero resuelve el problema. Entonces, escribe el código" (John Johnson)

"640K deberían ser suficientes para todo el mundo" (Bill Gates, 1981)
ignorantev1.1


Desconectado Desconectado

Mensajes: 617


/\ Así acabo cuando quiero programar...


Ver Perfil WWW
Re: excluir numeros de la funcion Rnd(x,y)?
« Respuesta #9 en: 3 Mayo 2013, 19:16 pm »

Todos los botones tendrán el mismo nombre, la diferencia estará en su indice ("index"), entonces:

Código
  1. 'Los botones se llamarán "boton"
  2. Dim arrayConIndicesValidos() as Integer
  3. Dim tamanoArray as Integer
  4.  
  5. Sub paraLlenarElArray()
  6.   Dim i as Integer
  7.  
  8.   Erase arrayConIndicesValidos 'Borrar el contenido del array
  9.   tamanoArray = 0  ' ...
  10.   For i=0 to Boton.Count - 1 'Recorre todos los botones
  11.        If Boton(i).Enabled Then 'Si hay un boton (activado|válido|enabled) lo mete al array de botones válidos
  12.             If tamanoArray=0 Then 'Si el array está vacío
  13.                  Redim arrayConIndicesValidos(0) 'Lo inicializa
  14.             else
  15.                  Redim Preserve arrayConIndicesValidos(tamanoArray) 'Si no lo está, lo hace un campo más grande
  16.             End If
  17.             arrayConIndicesValidos(tamanoArray) = i 'En el último campo creado registra el inidice del botón válido
  18.             tamanoArray = tamanoArray + 1 '...
  19.        End If
  20.   Next
  21. End Sub
  22.  
  23. ' (...)
  24. Call paraLlenarElArray()
  25. botonValidoAleatorio = Int(Rand * tamanoArray)
  26. Boton(botonValidoAleatorio).Enabled = False
  27. ' (...)
  28.  

¡Saludos!
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
numeros aleatorios en funcion de una division
Programación Visual Basic
Pegano25 9 3,934 Último mensaje 12 Junio 2011, 20:43 pm
por martin_poipon
[RETO] + Funcion Extraer Numeros de Cadenas! [Cpp/C] « 1 2 3 4 »
Programación C/C++
x64core 39 34,705 Último mensaje 8 Enero 2012, 00:58 am
por Eternal Idol
[RETO] + Funcion Extraer Numeros de Cadenas! « 1 2 ... 5 6 »
Programación Visual Basic
x64core 55 27,629 Último mensaje 9 Enero 2012, 10:26 am
por Psyke1
Help! Calcular máximo de 3 numeros usando función
Programación C/C++
sora_ori 5 3,739 Último mensaje 18 Febrero 2013, 23:34 pm
por BatchianoISpyxolo
Limitar rango de numeros en funcion
Programación C/C++
luis456 1 3,331 Último mensaje 15 Abril 2013, 20:58 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines