C#控制台应用程序 -

时间:2016-11-22 18:17:00

标签: c#

所以当我到达程序的最后,如果一个神奇宝贝突然出现,它会一次又一次地重复同一个神奇宝贝。 例如我遇到了Mr.Mime 我击败了Mr.Mime 我很安全 我很安全 我遇到了Mr.Mime 我死 我遇到了Mr.Mime 我死 我很安全 我遇到了Mr.Mime 我击败了Mr.Mime

我怎么能阻止这个?

我的代码:

{
 "key" => 
    {"key1" => []},
 "key2" =>
    {"key3"=> []}
}

1 个答案:

答案 0 :(得分:0)

问题出在这条线上。

Console.WriteLine("You defeated " + random[new Random().Next(0, random.Length)]);

每次都获得相同的随机值,因为Random()构造函数基于系统时间,并且在两次调用之间没有足够的变化。

请参阅下面引用的Random Class文档

  

...但是,因为时钟具有有限的分辨率,所以使用了   无参数构造函数,用于在close中创建不同的Random对象   继承创建产生相同的随机数生成器   随机数序列。以下示例说明了两个   紧密连续实例化的随机对象会生成一个   相同系列的随机数。在大多数Windows系统上,随机   彼此在15毫秒内创建的对象很可能   有相同的种子价值。

要解决此问题,请尝试以下

Console.WriteLine("You defeated " + random[rnd.Next(0, random.Length)]);