Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 从最大到最小排序数组的问题_Arrays_Vb.net_Random_Drag And Drop - Fatal编程技术网

Arrays 从最大到最小排序数组的问题

Arrays 从最大到最小排序数组的问题,arrays,vb.net,random,drag-and-drop,Arrays,Vb.net,Random,Drag And Drop,下面你将看到我制作随机数组的方法。我需要从最大到最小订购物品,然后根据用户选择的类别将它们放入文本框中。这是针对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

下面你将看到我制作随机数组的方法。我需要从最大到最小订购物品,然后根据用户选择的类别将它们放入文本框中。这是针对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

将它们添加到文本框

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(smallest number,largestNumber+1)
时,调用
+1
非常重要,因为此调用的第二个参数是一个独占的上限

运行此代码时,
randomNumbers
数组将包含如下内容:


然后,您可以只分配一些值,如
Dim x=randomNumbers(0)
,等等。

您说对数字排序有问题,但问题是什么?对于排序例程,您有什么代码?与您想要得到的相比,您有什么行为?这需要编辑到您的问题中。看看这里。。干杯非常非常不清楚你在问什么。预期的结果是什么?你得到了什么?怎么会错呢?看,我没有分拣部分。我看了一些其他代码,做了同样的事情,但它没有什么,我正在寻找戈尔。我需要做的是将数组从最高到最低排序,然后能够获取我需要的数组的每个部分,然后将其输出到符合要求的文本框中。比如说,如果有人让一个战士拥有最高的属性,那就是力量。如果说得通的话,泰先生正是我要找的。
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