Avatar billede 11er Nybegynder
26. september 2010 - 15:25 Der er 5 kommentarer og
1 løsning

rnd nummer kun 1 gang.

Hej,

Jeg har lavet koden nedenunder, men mit problem er, at det nummer der kommer kan være det samme tal mere en en gang.


Det skulle kun være mulig at et nummer kommer en gang og at det ikke er de samme numre der kommer hver gang man starter programmet.



Håber der en der kan hjælpe.


Public Class Form3

    ' Koden er til tælleren.
    Public int As Integer = 0

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Random As New Random
        nrdisplay.Text = Random.Next(1, 30)

        ' Tæller antal tryk på knappen.
        int = int + 1
        lblcount.Text = int


        ' Det udtrukne nr. skifter farve i tabellen.
        If nrdisplay.Text = 1 Then
            lblnr1.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 2 Then
            lblnr2.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 3 Then
            lblnr3.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 4 Then
            lblnr4.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 5 Then
            lblnr5.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 6 Then
            lblnr6.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 7 Then
            lblnr7.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 8 Then
            lblnr8.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 9 Then
            lblnr9.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 10 Then
            lblnr10.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 11 Then
            lblnr11.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 12 Then
            lblnr12.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 13 Then
            lblnr13.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 14 Then
            lblnr14.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 15 Then
            lblnr15.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 16 Then
            lblnr16.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 17 Then
            lblnr17.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 18 Then
            lblnr18.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 19 Then
            lblnr19.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 20 Then
            lblnr20.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 21 Then
            lblnr21.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 22 Then
            lblnr22.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 23 Then
            lblnr23.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 24 Then
            lblnr24.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 25 Then
            Label25.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 26 Then
            lblnr26.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 27 Then
            lblnr27.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 28 Then
            lblnr28.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 29 Then
            lblnr29.ForeColor = Color.Red

        ElseIf nrdisplay.Text = 30 Then
            lblnr30.ForeColor = Color.Red

        End If

    End Sub
End Class
Avatar billede arne_v Ekspert
26. september 2010 - 15:46 #1
Til inspiration:

    Private ReadOnly rng As Random = New Random
    Private nums As List(Of Integer) = New List(Of Integer)(New Integer() {1, 2, 3, 4, 5, 6, 7, 8, 9, 10})
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If nums.Count > 0 Then
            Dim ix As Integer = rng.Next(nums.Count)
            Label1.Text = nums(ix).ToString
            nums.RemoveAt(ix)
        Else
            MessageBox.Show("No more unused numbers left")
        End If
    End Sub
Avatar billede arne_v Ekspert
26. september 2010 - 15:47 #2
Der er iøvrigt en kategori til VB.NET !
Avatar billede kabbak Professor
26. september 2010 - 15:48 #3
du mangler Randomize

Dim MyValue
Randomize    ' Initialize random-number generator.

MyValue = Int((6 * Rnd) + 1)    ' Generate random value between 1 and 6.

sæt den ind sådan:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Random As New Random
Randomize 
        nrdisplay.Text = Random.Next(1, 30)
Avatar billede 11er Nybegynder
26. september 2010 - 15:57 #4
Tusind tak arne_v. Det var lige noget jeg kunne bruge.

Smider pionts til dig.

Og undskyld kategorien, troede det var rigtigt.
Avatar billede 11er Nybegynder
26. september 2010 - 15:58 #5
forkert, arne_v smid et svar og jeg giver point.
Avatar billede arne_v Ekspert
26. september 2010 - 18:03 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester