Vb.net Vb猜谜游戏随机生成器坏了

Vb.net Vb猜谜游戏随机生成器坏了,vb.net,random,Vb.net,Random,在我的代码中,我现在意识到我必须使用新的随机函数,我的代码以前使用的是随机化,然后是数字,但现在它出现了大量错误,甚至不允许我运行程序。我认为这只是一个小错误,但我只是需要一些帮助来完成最后一部分 以下是代码,感谢您的帮助:) 我不能让代码处理随机生成的数字,我必须使用新的随机函数我不能使用randomize()。有人知道如何帮助我吗?这是代码 Dim timestook As Int32 = 1 Dim usersguess As Integer Dim value =

在我的代码中,我现在意识到我必须使用新的随机函数,我的代码以前使用的是随机化,然后是数字,但现在它出现了大量错误,甚至不允许我运行程序。我认为这只是一个小错误,但我只是需要一些帮助来完成最后一部分 以下是代码,感谢您的帮助:)

我不能让代码处理随机生成的数字,我必须使用新的随机函数我不能使用randomize()。有人知道如何帮助我吗?这是代码

    Dim timestook As Int32 = 1
    Dim usersguess As Integer
    Dim value = New Random(0 - 19)
    Console.WriteLine("You have to guess this number. It is between 1 and 20. Good Luck !")

    usersguess = Console.ReadLine()
    'keep looping until they get the right value
    While usersguess <> value
        'now check how it compares to the random value
        If usersguess < value Then
            timestook = timestook + 1
            Console.WriteLine("You're too low. Go higher ")
        ElseIf usersguess > value Then
            Console.WriteLine("You're too high. Go Lower.")
            timestook = timestook + 1
        End If
        'If they are wrong the code will run again,after telling the user if they are too high or too low.
        usersguess = Console.ReadLine()

    End While
    '        Console.WriteLine("You're correct. Well Done")
    If usersguess = value Then
        Console.WriteLine("You took,{0}", timestook)
    End If
    Console.ReadLine()
End Sub
Dim时间取为Int32=1
Dim usersguess作为整数
尺寸值=新的随机值(0-19)
WriteLine(“你必须猜这个数字。它在1到20之间。祝你好运!”)
usersguess=Console.ReadLine()
'继续循环,直到得到正确的值
而usersguess值
'现在检查它与随机值的比较情况
如果usersguess<值,则
耗时=耗时+1
Console.WriteLine(“你太低了,往上走”)
ElseIf usersguess>值,然后
控制台。WriteLine(“你太高了,放低点。”)
耗时=耗时+1
如果结束
如果他们错了,在告诉用户他们是过高还是过低后,代码将再次运行。
usersguess=Console.ReadLine()
结束时
'Console.WriteLine(“你说得对,干得好”)
如果usersguess=value,则
WriteLine(“您执行,{0}”,执行时间)
如果结束
Console.ReadLine()
端接头

你需要在谷歌上搜索一下。您的问题是,您没有创建
Random
对象来处理随机数生成

以下是修复代码的方法:

Dim randNumGen As New Random() 'Create Random object
Dim value As Integer = randNumGen.Next(0, 20) 'set value equal to a new random number between 0-19

请注意,为了可读性和简单性,可以进一步重构此代码(如将
timestake=timestake+1
更改为
timestake+=1
,并选择更好的变量名,如
numberOfGuesses
,而不是
timestake
,等等。

表达式
New Random(0-19)
完全不做您认为它做的事情,name不返回整数。相反,它创建一个对象实例,该对象类型知道如何创建新的随机值。表达式的
0-19
部分是的种子,与传递值
-19
相同

这看起来像是家庭作业或个人练习,因此我觉得在这种情况下,使用
Random
类型作为参考的单独示例会比我为您修复问题中的代码示例更好:

Dim rnd As New Random()
For i As Integer = 0 To 10
    Console.WriteLine(rnd.Next(0, 20))
Next i

这里还值得一提的是,对于整个程序,您通常只需要一个
Random
对象,或者对于程序的每个逻辑部分,至少只需要一个
Random
对象。创建新的
Random
对象会重置种子,为了获得最佳结果,您希望在后续调用sa时遵循相同的种子请暂时删除实例。

这不是您使用的方式。
New
创建随机类的实例,而不是随机数。如何在不使用随机函数的情况下创建随机数1.跟随链接。2.阅读。3.盈利!