Autor
|
Tema: excluir numeros de la funcion Rnd(x,y)? (Leído 6,330 veces)
|
marrison
Desconectado
Mensajes: 179
|
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)
|
|
|
|
marrison
Desconectado
Mensajes: 179
|
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
Mensajes: 617
/\ Así acabo cuando quiero programar...
|
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
Mensajes: 179
|
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
Mensajes: 1.169
4 Esquinas
|
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
Mensajes: 179
|
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
Mensajes: 1.169
4 Esquinas
|
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". Private Sub Form_Load() Dim Excluidos(2) As Long Excluidos(0) = 2 Excluidos(1) = 4 Excluidos(2) = 5 Debug.Print RndExcluye(1, 7, Excluidos) End End Sub Private Function RndExcluye(Min As Long, Max As Long, Excluir() As Long) As Long Dim Num As Long Dim Flag As Boolean Randomize Timer Flag = True Do While Flag = True Num = CLng((Min - Max) * Rnd + Max) Flag = False For x = 0 To UBound(Excluir) If Excluir(x) = Num Then Flag = True Next Loop RndExcluye = Num End Function
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
Mensajes: 179
|
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
Mensajes: 617
/\ Así acabo cuando quiero programar...
|
Todos los botones tendrán el mismo nombre, la diferencia estará en su indice ("index"), entonces: 'Los botones se llamarán "boton" Dim arrayConIndicesValidos() as Integer Dim tamanoArray as Integer Sub paraLlenarElArray() Dim i as Integer Erase arrayConIndicesValidos 'Borrar el contenido del array tamanoArray = 0 ' ... For i=0 to Boton.Count - 1 'Recorre todos los botones If Boton(i).Enabled Then 'Si hay un boton (activado|válido|enabled) lo mete al array de botones válidos If tamanoArray=0 Then 'Si el array está vacío Redim arrayConIndicesValidos(0) 'Lo inicializa else Redim Preserve arrayConIndicesValidos(tamanoArray) 'Si no lo está, lo hace un campo más grande End If arrayConIndicesValidos(tamanoArray) = i 'En el último campo creado registra el inidice del botón válido tamanoArray = tamanoArray + 1 '... End If Next End Sub ' (...) Call paraLlenarElArray() botonValidoAleatorio = Int(Rand * tamanoArray) Boton(botonValidoAleatorio).Enabled = False ' (...)
¡Saludos!
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
numeros aleatorios en funcion de una division
Programación Visual Basic
|
Pegano25
|
9
|
3,959
|
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,794
|
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,744
|
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,763
|
18 Febrero 2013, 23:34 pm
por BatchianoISpyxolo
|
|
|
Limitar rango de numeros en funcion
Programación C/C++
|
luis456
|
1
|
3,350
|
15 Abril 2013, 20:58 pm
por leosansan
|
|