2016-11-06 90 views
0

试图做一个数字添加游戏作为计算机科学项目的一部分,并与我目前有代码显示在不同的文本框中相同的数字。我希望两个不同的随机数字显示在单独的框中,谢谢。如何在同一个表单中创建两个单独的随机数字?

Dim rn As Random 
    Dim number As Integer 
    rn = New Random 
    number = rn.Next(1, 9) 
    Dim rn2 As Random 
    Dim number1 As Integer 
    rn2 = New Random 
    number1 = rn2.Next(1, 9) 



    tbxOne.Text = number.ToString 
    tbxTwo.Text = number1.ToString 

End Sub 
+3

使用*一个*随机实例,并再次调用NEXT。这不会保证它们不同 - 随机并不意味着独特 – Plutonix

+1

'Dim nums = Enumerable.Range(1,8).OrderBy(Function(r)rn.Next())。Take(2).ToArray()''会给你从1到8的2个不同值的数组(如你的代码)'tbxOne.Text = nums(0).ToString' – Plutonix

回答

0

您可以使用1个实例本身创建随机数。而且你的随机数可以不同或相同。

Dim rn As Random 
Dim number As Integer 
Dim number1 As Integer 

rn = New Random 
number = rn.Next(1, 9) 
number1 = rn.Next(1, 9) 

tbxOne.Text = number.ToString 
tbxTwo.Text = number1.ToString 
0

您正在同时创建两个Random实例。这些数字并非真正随机的;他们的种子是时间依赖的,所以你的两个兰德姆将有相同的种子。你应该使用一个随机,每当你需要一个新值时使用它的Next函数。

Dim rn As New Random 
Dim number As Integer = rn.Next(1, 9) 
Dim number1 As Integer = number 
Do until number1 <> number 
    number1 = rn.Next(1, 9) 
Loop 

tbxOne.Text = number.ToString 
tbxTwo.Text = number1.ToString 

可能有一个更优雅的解决方案来确保唯一的数字,但循环可能会满足您的需求。

相关问题