在VB.NET的RNG中生成相同的编号

在VB.NET的RNG中生成相同的编号,vb.net,winforms,random,visual-studio-2019,Vb.net,Winforms,Random,Visual Studio 2019,我试图在VisualStudio的VB16中创建一个随机数生成器,但每次运行它,我都会得到71个,我尝试将它公开、共享和其他一些东西,但它不起作用。我试图制作一个程序,让用户猜测一个随机生成的数字,并继续猜测,直到他们得到它,但出于某种原因,每次都选择完全相同的数字。它在Windows应用程序窗体中无法正常工作。我如何每次得到一个随机数 Public Shared Randomize() Dim value As Integer = CInt(Int((100 * Rnd()) + 1)) P

我试图在VisualStudio的VB16中创建一个随机数生成器,但每次运行它,我都会得到71个,我尝试将它公开、共享和其他一些东西,但它不起作用。我试图制作一个程序,让用户猜测一个随机生成的数字,并继续猜测,直到他们得到它,但出于某种原因,每次都选择完全相同的数字。它在Windows应用程序窗体中无法正常工作。我如何每次得到一个随机数

Public Shared Randomize()
Dim value As Integer = CInt(Int((100 * Rnd()) + 1))

Public Sub EnterBtn_Click(sender As Object, e As EventArgs) Handles EnterBtn.Click
    Dim entervalue As String = EnterTxt.Text
    Dim chances As Integer
    Select Case entervalue
        Case > value
            ResTxt.Text = "Too big"
            chances += 1
        Case < value
            ResTxt.Text = "Too small"
            chances += 1
        Case = value
            ResTxt.Text = "Well done, you got it in " & chances & " tries"
    End Select
End Sub

以下是一些基本代码:

Dim rnd As New Random()
For i as Integer = 0 to 10
  Console.WriteLine("{0,15:N0}", rnd.Next())
Next

注意rnd。下一件事。希望有帮助。

由于您的代码不正确,很难找出问题所在。也不清楚代码应该做什么

试试这个

Private Shared PRNG As New Random ' add this 

value = PRNG.Next(1, 101)'this will set value to a random number between 1 and 100 inclusive

你很接近!下面是一个修改原始逻辑的工作示例:

   Private random As Random = New Random()
   Private value As Integer
   Private chances As Integer

   Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
      value = random.Next(1, 100)
      chances = 0
   End Sub

   Private Sub EnterBtn_Click(sender As Object, e As EventArgs) Handles EnterBtn.Click
      Select Case EnterTxt.Text
         Case > value
            chances += 1
            ResTxt.Text = "Too big"
         Case < value
            chances += 1
            ResTxt.Text = "Too small"
         Case = value
            chances += 1
            ResTxt.Text = "Well done, you got it in " & chances & " tries"

            'and reset for next attempt
            value = random.Next(1, 100)
            chances = 0
      End Select
   End Sub

你应该在循环外创建随机,而不是在每次迭代时创建新的随机。我在事后添加了循环,而且。。。我要马上编辑它。谢谢你让我知道。代码样本应该是完整的和正确的。什么时候应该生成一个新的随机数?当程序第一次启动时,当程序运行时,它会弹出一个带有文本框和按钮的窗口,你必须尝试猜测数字,如果太高,它会显示这样,如果太低,它会显示这样,当玩家得到正确的号码时,它会告诉他们正确的号码以及尝试次数