如何在给定范围之间生成随机数?VB.NET



我正在尝试创建computer guess game,其中我认为1-100和计算机之间的数字在1-100和用户之间生成随机数,并给出生成的数字太低或太高或正确猜测的响应。例如,计算机生成数字23如果我输入L那么下次它将生成 1 t0 23 之间的数字.如果下次如果它显示 10,那么我按 H 那么它将生成 10 到 23 之间的数字希望您理解我想做什么。H也是如此.谢谢这是我尝试的代码

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    'Declare Variables
    Dim strGuess As Char
    Dim random As New Random
    Dim answer As Integer
    Dim low As Integer
    Dim high As Integer
   Line1:
    MessageBox.Show("You pick a number between 0 and 100 and i will try to guess.Respond")
    answer = random.Next(1, 100)
    strGuess = InputBox("Is it " & answer, "Number Guessing Game")
    ' lstGuesses.Items.Add(strGuess)'
    low = answer
  Line2:
    If (CChar(strGuess) = CChar("L")) Then
        low = random.Next(1, low)
        strGuess = InputBox("Is it " & low, "Number Guessing Game")
    End If
    GoTo Line2
    high = answer
  Line7:
    If (CChar(strGuess) = CChar("H")) Then
        high = random.Next(high, 100)
        strGuess = InputBox("Is it " & high, "Number Guessing Game ")
    End If
    GoTo Line7
 End Sub

试试这段代码,

Public Class Form1
Dim strGuess As Char
Dim random As New Random
Dim answer As Integer
Dim low As Integer = 1
Dim high As Integer = 100
Dim Attempt As Integer = 0
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    MessageBox.Show("You pick a number between 0 and 100 and i will try to guess.Respond")
    answer = random.Next(1, 100)
    strGuess = InputBox("Is it " & answer, "Number Guessing Game")
    If strGuess = "L" Then
        low = answer
        LowFunc(answer)
    ElseIf strGuess = "H" Then
        high = answer
        HighFunc(answer)
    ElseIf strGuess = "R" Then
        MsgBox("I guessed it in " & Attempt & " tries")
    ElseIf strGuess = "X" Then
        End
    End If
End Sub
Private Function LowFunc(ByVal answer As Integer)
    Attempt = Attempt + 1
    answer = random.Next(low, high)
    strGuess = InputBox("Is it " & answer, "Number Guessing Game")
    If strGuess = "L" Then
        low = answer
        LowFunc(answer)
    ElseIf strGuess = "H" Then
        high = answer
        HighFunc(answer)
    ElseIf strGuess = "R" Then
        MsgBox("I guessed it in " & Attempt & " tries")
    ElseIf strGuess = "X" Then
        End
    End If
    Return Nothing
End Function
Private Function HighFunc(ByVal answer As Integer)
    Attempt = Attempt + 1
    answer = random.Next(low, high)
    strGuess = InputBox("Is it " & answer, "Number Guessing Game")
    If strGuess = "H" Then
        high = answer
        HighFunc(answer)
    ElseIf strGuess = "L" Then
        low = answer
        LowFunc(answer)
    ElseIf strGuess = "R" Then
        MsgBox("I guessed it in " & Attempt & " tries")
    ElseIf strGuess = "X" Then
        End
    End If
    Return Nothing
End Function
End Class

--

在查看您提供的此链接后,我更新了此代码。它将继续生成 highlow 之间的随机数。highlow的值将根据玩家/用户提供的输入HL进行相应更改,当猜出正确的数字时,玩家/用户应提供R作为输入。他们可以提供X作为退出应用程序的输入。 Attempt将显示尝试了多少次才能猜出正确的数字。

最新更新