Я пытаюсь создать массив двумерных символов, чтобы удерживать сетку символов, которая будет использоваться как своего рода «карта» для 2D-консольной игры.C# IndexOutOfRange Array Exception
Я получаю:
IndexOutOfRange исключение
..и не может понять, почему. Я прошел через код в режиме отладки и все еще не вижу проблемы.
Он обрабатывает код до тех пор, пока он не достигнет X = 25
и Y = 1
, верхней правой границы моей сетки.
У меня есть _gameWidth
и _gameHeight
создаются следующим образом, за пределами основных, но все еще внутри класса:
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("");
}
}
Нам не хватает декларации 'grid [,]' –
Проблема решена. Спасибо за быстрые ответы. – Tinderlog