Vb6 Visual Basic 6.0的随机数猜测游戏

Vb6 Visual Basic 6.0的随机数猜测游戏,vb6,Vb6,我正在尝试制作一个程序,生成一个随机数,你必须通过键入答案来猜测它。问题是它与正确的数字不匹配 对象: 2个标签,1个文本框,1个命令按钮 我的第一个代码: Private Sub Command1_Click() Dim Num, Random As Integer Label2.Caption = "" Num = Val(Text1.Text) Randomize (Random) Random = Val(Label1.Caption) Label1.Caption = Int(10

我正在尝试制作一个程序,生成一个随机数,你必须通过键入答案来猜测它。问题是它与正确的数字不匹配

对象: 2个标签,1个文本框,1个命令按钮

我的第一个代码:

Private Sub Command1_Click()
Dim Num, Random As Integer

Label2.Caption = ""
Num = Val(Text1.Text)
Randomize (Random)
Random = Val(Label1.Caption)
Label1.Caption = Int(10 * Rnd + 1)

For Num = 1 To Num
    If Num = Random Then
    Label2.Caption = "you won "
    Else
    End If
Next
End Sub

对于循环,您不需要这样做,它会检查每个数字,直到您猜到的数字为止

Private Sub Command1_Click()

    Dim Num, Random As Integer

    Label2.Caption = ""
    Num = Val(Text1.Text)
    Randomize (Random)
    Random = Val(Label1.Caption)
    Label1.Caption = Int(10 * Rnd + 1)


        If Num = Random Then
        Label2.Caption = "you won "
        Else
        End If

    End Sub
要调试它,请将

        If Num = Random Then
        Label2.Caption = "you won "
        Else
        Label2.Caption = "The number " & Num & " Does not equal " & Random
        End If

首先,当前代码将始终导致数字0是第一个“随机”生成的数字。其次,该公式将产生一个可预测的随机数序列

这背后的问题是,计算机并不聪明,也不能真正创造随机数,这就是为什么你需要用“随机”来“播种”它们,让它们“摇动”骰子,产生一个不同的数字。但是,如果你用相同的数字随机化,它将产生完全相同的“随机”数字序列

例如,如果您使用代码,它将始终生成以下数字序列:0、8、7、5

这就是为什么你需要用。。。一个随机数!哈哈。但是你怎么得到一个随机数呢?从技术上讲,你不能,但你可以作弊。您可以执行
Randomize(Timer)
Randomize
,它将计时器作为一个参数,它所做的是“种子”随机数生成,从午夜起经过秒数和毫秒数。因此,如果你每天都在相同的秒和毫秒点击按钮猜测随机数,那么你将得到相同的随机数序列

你可以尝试通过添加日、月或年来扩展这个理论,这将使“种子”指数扩展,你永远不会看到重复的随机数序列,但要做到这一点非常困难,因为一旦你开始使用大的种子数,你会遇到一些奇怪的问题,比如如果你将一个非常大的数字改为1,它仍然会生成相同的随机数序列(在我的测试场景中,使用5969992到5969995范围内的任何数字进行随机化将产生相同的随机数序列:9、8、6、6、1)。这可能是随机化函数本身的一个限制。就我个人而言,我认为尝试使用计时器进行种子设定是不值得的

下面是调整代码以生成更“随机”的数字序列:

Dim Num, Random As Integer

Label2.Caption = ""
Num = Val(Text1.Text)
Randomize
Label1.Caption = Int(10 * Rnd + 1)
Random = Val(Label1.Caption)

If Num = Random Then
    Label2.Caption = "you won "
Else
    Label2.Caption = "The number " & Num & " Does not equal " & Random
End If

谢谢你,这也是对我的表单的一个很好的补充。如果你不介意的话,我还更改了底部代码来修复结果。干杯!
dim num, Random as integer

label2.caption =""
num = val(text1.text)

randomize
label1.caption = int((10 +1-1)*rnd+1)
random = val(label1.caption)

if num = random then
label2.caption ="you won"
else
label2.caption = "Try again"
end if