2017-02-09 170 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

相關問題