Делаю игру "Сапер". Столкнулся с проблемой переполнения массива. Начал ограничивать изменения в координатах для счёта мин вокруг клетки.
Получился вот такой код:
int mines = 0;
const int kDxFirst[] = { 1, 1, 1, 0, 0, -1, -1, -1 };
const int kDxLast[] = { -1, -1, -1, 0, 0, 1, 1, 1 };
const int kDy[] = { 1, 0, -1, -1, 1, 0, 1, -1 };
//if chosen cell is at the end or at the corner
if (a != 0)
{
for (size_t i = 0; i < 8; i++)
{
if (field[a + kDxFirst[i]][b + kDy[i]] == char(206))
{
mines++;
}
}
}
else if (a == 0)
{
for (size_t i = 0; i < 5; i++)
{
if (field[a + kDxFirst[i]][b + kDy[i]] == char(206))
{
mines++;
}
}
}
else if (a == SIZE - 1)
{
for (size_t i = 0; i < 5; i++)
{
if (field[a + kDxLast[i]][b + kDy[i]] == char(206))
{
mines++;
}
}
}
но когда я указываю клетку которая прикасается к нижнему краю программа закрывается и возвращает код -1073741819.
Помогите пожалуйста.