gpt4 book ai didi

C# IndexOutOfRange 数组异常

转载 作者:行者123 更新时间:2023-11-30 13:55:36 26 4
gpt4 key购买 nike

我正在尝试创建一个 2D 字符数组来保存一个字符网格,该网格将用作 2D 控制台游戏的一种“ map ”。

我得到一个:

IndexOutOfRange exception

..不明白为什么。我已经在 Debug模式下逐步检查代码,但仍然看不到问题。

它逐步执行代码,直到到达 X = 25Y = 1,我的网格的右上边界。

我有 _gameWidth_gameHeight 创建如下,在 main 之外但仍在类内:

static int _gameWidth = 25;
static int _gameHeight = 15;

以下是尝试生成和填充网格时失败的代码。它在这一点上失败了:

else if (x == _gameWidth && y == 1)
_grid[x, y] = '╕';



static void GenerateGrid()
{
for (int y = 1; y <= _gameHeight; y++)
{
for (int x = 1; x <= _gameWidth; x++)
{
if (x == 1 && y == 1)
_grid[x, y] = '╒';
else if (x == _gameWidth && y == _gameHeight)
_grid[x, y] = '╛';
else if (x == _gameWidth && y == 1)
_grid[x, y] = '╕';
else if (x == 1 && y == _gameHeight)
_grid[x, y] = '╘';
else if ((x != 1 && y == _gameHeight) || (x != _gameWidth && y == 1))
_grid[x, y] = '═';
else if ((x == 1 && y > 1 && y < _gameHeight) || (x == _gameWidth && y > 1 && y < _gameHeight))
_grid[x, y] = '│';
else
_grid[x, y] = 'x';

}
Console.WriteLine("");
}
}

最佳答案

改变

for (int i = 1; i <= gameHeight; i++)

for (int i = 0; i < gameHeight; i++)

对宽度做同样的事情。

编辑:这是因为数组索引从数字 0 开始,以数组长度减 1 结束。

关于C# IndexOutOfRange 数组异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32796852/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com