У меня есть матрица размером 7x7, которая представляет игровое поле. Когда игрок совершает движение, программа должна проверять позиции вокруг координат, где находится кусок, чтобы обнаружить другую часть в сторону.C - контрольная матрица [x] [y] позиции около
Я использую эту функцию:
int check_position(COORDINATES coordinates, char board[7][7]) {
int result = -1;
if (board[coordinates.x][coordinates.y] != 'O' && board[coordinates.x-1][coordinates.y] != 'O' && board[coordinates.x][coordinates.y-1] != 'O' && board[coordinates.x+1][coordinates.y] != 'O' && board[coordinates.x][coordinates.y+1] != 'O' && board[coordinates.x-1][coordinates.y-1] != 'O' && board[coordinates.x+1][coordinates.y+1] != 'O' && board[coordinates.x-1][coordinates.y+1] != 'O' && board[coordinates.x+1][coordinates.y-1] != 'O') {
result = 1;
}
return result;
}
Первый параметр координата кусок игрока в качестве структуры, с членами х и у. Второй параметр - это массив платы.
Заявление if
не работает, и я не знаю, какую альтернативу я могу взять.
Вы можете мне помочь? Благодаря!
Вы, вероятно, нужно больше 'if' заявления (или, вернее,' еще if') и в них убедитесь, что вы не индексировать вне диапазона. Например, подумайте о том, что произойдет, если, например, 'coord.x' -' 0' или '6'. Вы * можете * к нему как к одному выражению, но его будет очень трудно читать и поддерживать. –
Это для C или C++. Они разные языки, выбирайте один. На C++ могут быть разные ответы. – Olaf