[英]Issues With Ordering Array from Greatest To Least
在下面,您將看到制作隨機數組的條件。 我需要按從大到小的順序對項目進行排序,然后根據用戶選擇的類別將其放入文本框。 這是用於DnD 4e能力生成器的。 我需要能夠將最高的技能得分放入該班級的最合適領域。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
'Dim randstr As New Random
'Dim a As Integer
'Dim b As Integer
'Dim c As Integer
'Dim d As Integer
'Dim h As Integer
'Dim f As Integer
'a = randstr.Next(3, 18)
'b = randstr.Next(3, 18)
'c = randstr.Next(3, 18)
'd = randstr.Next(3, 18)
'h = randstr.Next(3, 18)
'f = randstr.Next(3, 18)
Static randomNumberGenerator As New System.Random
Dim randomNumbers(6) As Integer ' Create the array
Dim smallestNumber As Integer = 3 ' Set the lower bounds
Dim largestNumber As Integer = 18 ' Set the upper bounds
For i = 0 To 6 ' loop through each element in the array
randomNumbers(i) = randomNumberGenerator.Next(smallestNumber, largestNumber)
Next
If CbClass.SelectedItem = "Fighter" Then
End If
End Sub
這會將您的數組從大到小排序-在此代碼之后。
For i = 0 To 6 ' loop through each element in the array
randomNumbers(i) = randomNumberGenerator.Next(smallestNumber, largestNumber)
Next
加
Array.Sort(randomNumbers)
Array.Reverse(randomNumbers)
將它們添加到文本框
TextBox1.Text = randomNumbers(0).ToString
TextBox2.Text = randomNumbers(1).ToString
TextBox3.Text = randomNumbers(2).ToString
TextBox4.Text = randomNumbers(3).ToString
TextBox5.Text = randomNumbers(4).ToString
TextBox6.Text = randomNumbers(5).ToString
當然要記住將上述文本框的名稱更改為您所需要的名稱。
要設置角色的統計信息,您可能需要這樣的內容
If CbClass.SelectedItem = "Fighter" Then
Strength = randomNumbers(0)
Aglity = randomNumbers(1)
Health = randomNumbers(2)
Intellect = randomNumbers(3)
End If
等等。
這將是您生成和訂購號碼的最簡單方法:
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Static randomNumberGenerator As New System.Random()
Dim smallestNumber As Integer = 3 ' Set the lower bounds
Dim largestNumber As Integer = 18 ' Set the upper bounds
Dim randomNumbers() As Integer = _
Enumerable _
.Range(0, 6) _
.Select(Function (x) randomNumberGenerator.Next(smallestNumber, largestNumber + 1)) _
.OrderByDescending(Function (x) x) _
.ToArray()
' Rest of your code here
End Sub
千萬記住,調用randomNumberGenerator.Next(smallestNumber, largestNumber + 1)
的+ 1
是重要的,因為這個調用的第二個參數是一個獨特的上限。
運行此代碼時, randomNumbers
數組將包含以下內容:
然后,您可以只分配Dim x = randomNumbers(0)
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.