2017-02-09 176 views
0

我想创建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 
+0

我不知道VB,但想问一下,这个代码有没有循环?我的意思是一旦你点击H按钮,algaorythm又会如何回到Line2来检查你是否击中了L按钮? – ReadyFreddy

+0

感谢您的回复。如果我按'H',使用'随机'功能,那么它将产生前一个数字和100之间的随机数字,如果我按'L',那么它将生成1和前一个数字之间的数字。我使用if语句检查'L'和'H' – uiit

+0

关于algorythm的另一个问题。可以说电脑选择15,但我想30. 15 <30和低=答案,这意味着15现在,所以当我打到L按钮,它会产生另一个数字之间1和低,这意味着1和15,这个数字将是偶数较小。如果它降低,它不应​​该增加数量吗?但如果你的意思是已经“低”,按下低,它确定。 – ReadyFreddy

回答

0

试试这个代码,

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您提供后,我更新了这个代码。它将继续生成highlow之间的随机数。 highlow的值将相应地改变为将由玩家/用户提供的输入HL,并且当猜测正确的号码时,玩家/用户应该给予R作为输入。他们可以给X作为输入来退出应用程序。 Attempt会显示多少次尝试猜测正确的数字。

+0

感谢response.When我按'H'许多时间,然后就会给我相同数量。数不会改变。按3,4次'H'后会给出相同的数字。数字不变。感谢 – uiit

+0

请检查这[LINK](https://i.imgsafe.org/c4520011bc.jpg)。 – uiit

+0

大多数情况下它的工作正常,但有时它会卡住相同的数字 – uiit

相关问题