我想要做的是创建一个具有根据用户规范随机生成的数组的应用程序。
例如,他们将尺寸指定到文本框中,然后创建特定尺寸然后我希望能够按下另一个按钮' 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
答案 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部分将交替将随机值添加到一个或另一个地方。您可以将值添加到所需的位置。