如何生成给定范围内的随机数?VB.NET
问题描述:
我想创建computer guess game
其中我认为1-100
和计算机之间的数字生成1-100
之间的随机数和用户给出生成的数字太低或太高或正确guess.EG计算机生成数23
如果我L
那么下次就会产生1个T0 23.If下一次之间的号码,如果它显示10然后我按01那么它将10之间产生的数字和23希望你明白给输入了我我正在试图做。和H
一样。 感谢 这里是我的代码,我尝试如何生成给定范围内的随机数?VB.NET
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
-
审查这一Link您提供后,我更新了这个代码。它将继续生成high
和low
之间的随机数。 high
和low
的值将相应地改变为将由玩家/用户提供的输入H
或L
,并且当猜测正确的号码时,玩家/用户应该给予R
作为输入。他们可以给X
作为输入来退出应用程序。 Attempt
会显示多少次尝试猜测正确的数字。
我不知道VB,但想问一下,这个代码有没有循环?我的意思是一旦你点击H按钮,algaorythm又会如何回到Line2来检查你是否击中了L按钮? – ReadyFreddy
感谢您的回复。如果我按'H',使用'随机'功能,那么它将产生前一个数字和100之间的随机数字,如果我按'L',那么它将生成1和前一个数字之间的数字。我使用if语句检查'L'和'H' – uiit
关于algorythm的另一个问题。可以说电脑选择15,但我想30. 15 ReadyFreddy