Trabajar con lista aleatoriamente

Iniciado por zarq29, 2 Mayo 2008, 20:20 PM

0 Miembros y 1 Visitante están viendo este tema.

zarq29

Hola

Soy bastante novato en VB,y necesito saber como tener una lista de cadenas (nombres precisamente) y mostrarlas de forma aleatoria...bien, paso a explicarme mejor:
Quiero crear una especie de "fixture" de un torneo, y que los grupos se den de forma aleatoria. Para eso coloque un botón "Aleatorio" con el cual busco dar valores de cadenas aleatorias a algunos Labels, pero respetando la lista de nombres que mencione anteriormente, y sin repetir en más de una ocacion esa cadena, es decir: una vez usada la cadena, no vuelve a utilizarse.

espero me hayan entendido lo que necesito

gracias de antemano, y saludos!




"Si Hay un Derecho, Hay un Revez... Solo es Cuestion de Imaginarlo..."

cassiani

Usa vectores y la función RND para generar un numero entre 0 y el limite de elementos del mismo, luego seleccionas la cadena con el numero generado.

¡Saludos voy retrasado!

zarq29

si podrias ser un poco mas específico o dejarme algun ejemplo te agradeceria mucho ;)

Cita de: zarq29soy bastante novato en VB

.................
xD

perdon las molestias :-[
saludos




"Si Hay un Derecho, Hay un Revez... Solo es Cuestion de Imaginarlo..."

naderST

Bueno... yo lo haria asi:


Option Explicit

Private Sub Command1_Click()
Dim Equipos As Variant

Equipos = Array("Barcelona", "Milan", "Chelsea", "Real Madrid")

Randomize

Label1.Caption = Equipos(Int(Rnd * (UBound(Equipos) + 1)))
End Sub


Lambda

Cita de: naderST en  2 Mayo 2008, 21:31 PM
Bueno... yo lo haria asi:


Option Explicit

Private Sub Command1_Click()
Dim Equipos As Variant

Equipos = Array("Barcelona", "Milan", "Chelsea", "Real Madrid")

Randomize

Label1.Caption = Equipos(Int(Rnd * (UBound(Equipos) + 1)))
End Sub



Es Dim Equipos() As variant

creo recordar o si queres un numero definido Dim Equipos(1 To 200) As Variant

hace tiempo q no programo en VB asi q no estoy seguro XD

naderST

Cita de: Lambda en  2 Mayo 2008, 22:24 PM
Cita de: naderST en  2 Mayo 2008, 21:31 PM
Bueno... yo lo haria asi:


Option Explicit

Private Sub Command1_Click()
Dim Equipos As Variant

Equipos = Array("Barcelona", "Milan", "Chelsea", "Real Madrid")

Randomize

Label1.Caption = Equipos(Int(Rnd * (UBound(Equipos) + 1)))
End Sub



Es Dim Equipos() As variant

creo recordar o si queres un numero definido Dim Equipos(1 To 200) As Variant

hace tiempo q no programo en VB asi q no estoy seguro XD

En este caso no es necesario poner () bueno creo yo... porque lo probe y funciono bien.

zarq29

muchas gracias amigo, funciono perfecto, solo por un problema...

al presionar el command, suele pasar que me queda (por ejemplo) " Milan vs Milan "... hay alguna forma de solucionarlo?

gracias nuevamente

saludos




"Si Hay un Derecho, Hay un Revez... Solo es Cuestion de Imaginarlo..."

naderST

usa IF ejemplo:

if label1.caption = Label2.caption then
'GENERA OTRO
end if