c#索引超出了数组的边界(转弯的概率)
我试图通过随机选择一条路径来制作一个迷宫,然后由计算机运行,但我不断得到索引超出范围的错误,我不知道为什么。我看过其他文章,似乎这与数组的设置方式有关,但我无法找出这段代码中的错误。此行有错误: 引发异常:mazeai.exe中的“System.IndexOutoforangeException” 附加信息:索引超出了数组的边界c#索引超出了数组的边界(转弯的概率),c#,arrays,C#,Arrays,我试图通过随机选择一条路径来制作一个迷宫,然后由计算机运行,但我不断得到索引超出范围的错误,我不知道为什么。我看过其他文章,似乎这与数组的设置方式有关,但我无法找出这段代码中的错误。此行有错误: 引发异常:mazeai.exe中的“System.IndexOutoforangeException” 附加信息:索引超出了数组的边界 if (popularity[turnNumber] > 500) 我想知道如何修复这个错误,如果有人能告诉我是什么引起的? 代码的其余部分如下所示 s
if (popularity[turnNumber] > 500)
我想知道如何修复这个错误,如果有人能告诉我是什么引起的?
代码的其余部分如下所示
static bool isDead = false;
static int turnNumber = 0;
static Random rand = new Random();
static int turnProb = rand.Next(1, 1001);
static int turnDirection = 0;
static int[] popularity = new int[10];
static int[] turns = new int[10];
static int[] maze = new int[10];
public static void OpponetAI()
{
if (popularity[turnNumber] > 500)
{
turnRight();
}
else { turnLeft(); }
}
您可以添加以下检查来检查turnNumber的值
public static void OpponetAI()
{
if (popularity.Length <= turnNumber)
{
//add break point here, if you enter this break point,
//then next "popularity[turnNumber]" will throw exception.
//popularity only accept popularity[0] to popularity[popularity.Length-1]
}
if (popularity[turnNumber] > 500)
{
turnRight();
}
else { turnLeft(); }
}
publicstaticvoidopponetai()
{
如果(0.500)
{
右转();
}
else{左转();}
}
显然车次号
在某一点上大于9。但是,我们看不到int的递增位置。请查看您的turnNumber值。若要发生该错误,在评估时必须大于9或小于0。看起来更像是代码审查问题,而不是常见问题,解决该问题对提问者以外的任何人都没有好处。当轮次成功时,会添加轮次数,并且始终在0-9范围内。如果您需要,我可以发布其余的重要代码。“当轮次成功时,轮次编号会添加到中,并且始终在0-9范围内。”坦率地说,如果您在那里遇到错误,它可能不在您预期的范围内……当IDE引发异常时,您不能只检查IDE上的值吗?假设你使用的是VS?看起来它已经修复了。