所以当我到达程序的最后,如果一个神奇宝贝突然出现,它会一次又一次地重复同一个神奇宝贝。 例如我遇到了Mr.Mime 我击败了Mr.Mime 我很安全 我很安全 我遇到了Mr.Mime 我死 我遇到了Mr.Mime 我死 我很安全 我遇到了Mr.Mime 我击败了Mr.Mime
我怎么能阻止这个?
我的代码:
{
"key" =>
{"key1" => []},
"key2" =>
{"key3"=> []}
}
答案 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)]);