c#索引超出了数组的边界(转弯的概率)

c#索引超出了数组的边界(转弯的概率),c#,arrays,C#,Arrays,我试图通过随机选择一条路径来制作一个迷宫,然后由计算机运行,但我不断得到索引超出范围的错误,我不知道为什么。我看过其他文章,似乎这与数组的设置方式有关,但我无法找出这段代码中的错误。此行有错误: 引发异常:mazeai.exe中的“System.IndexOutoforangeException” 附加信息:索引超出了数组的边界 if (popularity[turnNumber] > 500) 我想知道如何修复这个错误,如果有人能告诉我是什么引起的? 代码的其余部分如下所示 s

我试图通过随机选择一条路径来制作一个迷宫,然后由计算机运行,但我不断得到索引超出范围的错误,我不知道为什么。我看过其他文章,似乎这与数组的设置方式有关,但我无法找出这段代码中的错误。此行有错误:

引发异常:mazeai.exe中的“System.IndexOutoforangeException”

附加信息:索引超出了数组的边界

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?看起来它已经修复了。