Willekeurig een variabele kiezen uit een lijst

Status
Niet open voor verdere reacties.

roeney12

Gebruiker
Lid geworden
23 jul 2008
Berichten
105
Hey,

Ik ben bezig met een programma waarin een gebruiker een combinatie krijgt van twee kleuren of twee vormen (bijv. Yellow-Circle of Blue-Red).
Ik heb nu een aantal variabelen met msgbox en ik wil dat het programma willekeurig een variabele uit de lijst kiest en die msgbox weergeeft.

Uit deze variabelen moet het programma kiezen:
Code:
' MsgBoxes
    Public r1 As String = MsgBox("Yellow")
    Public r2 As String = MsgBox("Blue")
    Public r3 As String = MsgBox("Red")
    Public r4 As String = MsgBox("Circle")
    Public r5 As String = MsgBox("Square")
    Public r6 As String = MsgBox("Triangle")

Hier is de code waarin de variabelen gebruikt moeten worden:
Code:
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        While readcounter > 0
            current.Text = current.Text + 1
            ' hier komt de eerste variabele
            ' hier komt de tweede variabele (deze twee moeten dus willekeurig gekozen worden
            readcounter = readcounter - 1
            System.Threading.Thread.Sleep(delaycounter * 1000)
        End While
        MsgBox("End")
    End Sub

Ik zou graag een aantal suggesties willen horen :)
Alvast bedankt!

Roeney12
 
Je kan het met 2 array's doen en dan met een 'Random' een van de waardes uit een van de array's halen:
[CPP] Dim kleuren() As String = {"yellow", "blue", "red"}
Dim vormen() As String = {"circle", "square", "triangel"}
Dim random As New Random

While readcounter > 0
current.Text = current.Text + 1
' hier komt de eerste variabele'
MsgBox(kleuren(random.Next(0, 2)))
' hier komt de tweede variabele (deze twee moeten dus willekeurig gekozen worden'
MsgBox(vormen(random.Next(0, 2)))
readcounter = readcounter - 1
System.Threading.Thread.Sleep(delaycounter * 1000)
End While
MsgBox("End")[/CPP]


Persoonlijk vind ik het dan wel altijd prettiger om dit te doen omdat het (lijkt dat het) de diversiteit verhoogt:
[CPP] Dim kleuren() As String = {"yellow", "blue", "red"}
Dim vormen() As String = {"circle", "square", "triangel"}
Dim random As New Random

While readcounter > 0
current.Text = current.Text + 1
' hier komt de eerste variabele'
MsgBox(kleuren(Math.Round(random.Next(0, 200) / 100, 0)))
' hier komt de tweede variabele (deze twee moeten dus willekeurig gekozen worden'
MsgBox(vormen(Math.Round(random.Next(0, 200) / 100, 0)))
readcounter = readcounter - 1
System.Threading.Thread.Sleep(delaycounter * 1000)
End While
MsgBox("End")[/CPP]
Ik heb hier nooit bewijs voor gevonden, maar bij mij (lijkt) het altijd te werken....:)

Succes!:thumb:
MartinJM
 
Dankje MartinJM!

Ik ga hem nu uitproberen, kijken of het werkt zoals ik wil :)
 
Het werkt! :D
Hartstikke bedankt!

Nog 1 dingetje:
Hoe kan ik er voor zorgen dat ie willekeurig het getal 1 of 2 kiest?
 
Even snel uit de losse pols:
[CPP]random.next(1, 2)[/CPP]
Volgens mij zou dit het moeten doen. Let er wel op dat het kan dat je vrij vaak achter elkaar dezelfde krijgt... Dat komt dan ook door het relatief kleine aantal getallen waaruit 'gekozen' moet worden.

MartinJM
 
Het werkt met een kleine aanpassing, omdat het tweede getal volgens mij een 'tot' is en geen 'tot en met'.
Code:
Random.Next(1, 3)

Alles is opgelost, bedankt! :thumb:
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan