VB Array生成随机值

时间:2014-04-30 06:07:58

标签: arrays vb.net random

我想要做的是创建一个具有根据用户规范随机生成的数组的应用程序。

例如,他们将尺寸指定到文本框中,然后创建特定尺寸

然后我希望能够按下另一个按钮' PlayButton'随机将已生成的值拆分为2个不同的列表框,在这些列表框中将其加起来并且具有最高值的人是赢家

这是我已经拥有的代码:

Public Sub NewButton_Click(sender As Object, e As EventArgs) Handles NewButton.Click
    Try
        Row = ColumnBox.Text
        Column = RowBox.Text

    Catch ex As InvalidCastException
        MessageBox.Show("Dimensions are not valid")
    End Try
    Dim Array As Random = New Random(DateTime.Now.Millisecond)
    Dim oTextbox As Label
    For index1 As Integer = 0 To (Row - 1) Step 1
        For index2 As Integer = 0 To (Column - 1) Step 1
            oTextbox = New Label()
            With oTextbox
                .Name = "TextBox" & index1.ToString & index2.ToString
                .Text = Array.Next(100)
                .Width = Me.Width / 8
                .Left = index1 * (Me.Width / 8)
                .Top = index2 * .Height
            End With
            Panel1.Controls.Add(oTextbox)
        Next index2
    Next index1

    ColumnBox.Text = "Columns"
    RowBox.Text = "Rows"
End Sub

1 个答案:

答案 0 :(得分:1)

在开始之前,我强烈建议您在项目选项中使用Option Strict On

您可以使用以下内容填充数组:

Dim arr(,) As Integer

Sub NewButton_Click(sender As Object, e As EventArgs) Handles NewButton.Click
    Dim iRowLen, iColLen As Integer
    Dim rdm As New Random()

    If Integer.TryParse(RowBox.Text, iRowLen) AndAlso Integer.TryParse(ColumnBox.Text, iColLen) Then
        ReDim arr(iRowLen - 1, iColLen - 1)

        For i As Integer = 0 To iRowLen - 1
            For j As Integer = 0 To iColLen - 1
                arr(i, j) = rdm.Next(100)
            Next
        Next
    Else
        MessageBox.Show("Dimensions are not valid")
    End If
End Sub

然后你有一个填充了随机值的数组。要将值分配到两个组中,您可以执行以下操作:

Sub PlayButton_Click(sender As Object, e As EventArgs) Handles PlayButton.Click
    Dim rdm As New Random()
    Dim lst As New List(Of Integer)(arr)

    While lst.Count > 0
        Dim index As Integer = rdm.Next(lst.Count)

        If lst.Count Mod 2 = 0 Then
            ' Do something with the value
        Else
            ' Do something with the value
        End If

        lst.Remove(index)
    End While        
End Sub

上面的代码将从数组中选择随机值。 IfElse部分将交替将随机值添加到一个或另一个地方。您可以将值添加到所需的位置。