首页 > 解决方案 > 在 VB.NET 的 RNG 中生成相同的数字

问题描述

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

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

标签: vb.netwinformsrandomvisual-studio-2019

解决方案


你很亲近!这是一个修改原始逻辑的工作示例:

   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

推荐阅读