【发布时间】:2019-06-02 10:00:23
【问题描述】:
我需要一些帮助来完成课堂作业。我正在尝试创建一个必须有循环的随机数猜谜游戏。基本上,您输入一个数字作为猜测,程序将显示一条消息,告诉您猜测是太高、太低还是正确,它会循环直到您猜对为止。该程序还会计算您所做的猜测次数。
这是表格:
这是我目前的代码:
Private Sub btnDisplay_Click(sender As Object, e As EventArgs) Handles btnDisplay.Click
Dim decNumber As Decimal
Dim rand As New Random
Dim decGuess As Decimal
Dim intCount As Integer = 0
decGuess = CDec(txtGuess.Text)
Do
decNumber = rand.Next(1, 100)
intCount += 1
lblCount.Text = intCount.ToString
If decNumber < decGuess Then
lblResponse.Text = "Too low, try again."
ElseIf decNumber > decGuess Then
lblResponse.Text = "Too high, try again."
ElseIf decNumber = decGuess Then
lblResponse.Text = "Correct."
End If
Loop Until decGuess = decNumber
End Sub
我不太确定代码中的错误是什么,但每当我点击“显示”时,猜测计数是一个非常高的数字,标签中显示的消息总是“正确”,所以我的问题是如何解决这个问题并正确编写循环?
更新:
Public Class Form1
Dim intNumber As Integer
Dim rand As New Random
Dim intGuess As Integer
Dim intCount As Integer
Private Sub btnNew_Click_1(sender As Object, e As EventArgs)
lblResponse.Text = String.Empty
txtGuess.Clear()
lblCount.Text = String.Empty
intNumber = rand.Next(1, 100)
End Sub
Private Sub btnGuess_Click(sender As Object, e As EventArgs) Handles btnGuess.Click
intGuess = CInt(txtGuess.Text)
If intNumber < intGuess Then
lblResponse.Text = "Too high, try again."
ElseIf intNumber > intGuess Then
lblResponse.Text = "Too low, try again."
ElseIf intNumber = intGuess Then
lblResponse.Text = "Correct."
End If
intCount += 1
lblCount.Text = intCount.ToString
End Sub
【问题讨论】:
-
你正在做相反的事情。你输入一个数字,然后让计算机猜测它是哪个数字。电脑很不擅长。
-
Random.Next返回一个整数,因此摆脱 Decimal 数据类型并使用 Integer。 -
更新后的代码是正确的。您只需要在
btnNew_Click_1事件中设置intCount = 0。另外,由于发泄被称为btnNew_Click_1,请检查您现在是否有两个不同的事件。 You Button 可能连接到旧按钮或两者。 -
谢谢@Jimi,我意识到问题与按钮的名称有关。
标签: vb.net visual-studio loops visual-studio-2015