Я делаю Реверси игра в C ++, но у меня возникают проблемы с выяснением того, как проверять наличие последовательных фигур вражеской доски, как только игрок помещает их на доске.
Плата представляет собой двумерный массив 8×8 со значениями 0, -1 или 1.
Функция ApplyMove просто поместит фигуру текущего игрока на доску и проверит, есть ли вражеские фигуры в каком-либо направлении. Это тогда перевернет все части в этом направлении.
Моя функция будет иметь следующие параметры:
void ApplyMove(char board[BOARD_SIZE][BOARD_SIZE], int row, int col, char currentPlayer)
Я хочу, чтобы программа использовала циклы для перебора всех 8 возможных направлений, начиная с фрагмента, который был помещен игроком. Как бы это было достигнуто самым простым способом без множества ифсов и других?
Один способ, который кажется мне простым, — это использование переменных xoffset
а также yoffset
которые принимают значения 1, 0, -1. Использовать for
Цикл значений этих переменных, а затем while
цикл, чтобы следовать последовательным частям.
Других решений пока нет …