Создание функции для обновления ходов таблицы крестики-нолики двумерного массива - PullRequest
0 голосов
/ 30 октября 2018

У меня есть две функции, чтобы заставить пользователя сделать ход и компьютер для генерации ходов, поэтому при создании функции обновления компьютера и ходов пользователя, «x» и «o» для ходов и «_» для пробела, буду ли я использовать указатели для моего многомерного массива, и если да, то как бы вы это написали? Пример с объяснением будет очень признателен!

Ответы [ 3 ]

0 голосов
/ 30 октября 2018

Если вы хотите передать указатель на ваши функции, вы можете объявить и использовать его следующим образом:

computer_move(char (*p)[3][3])
{
    p[1][1] = 'x';
}

char ttt[3][3];
computer_move(&ttt);
0 голосов
/ 30 октября 2018

Обновление двумерного массива char с помощью функции, передав указатель в массив в качестве параметра:

int main(){
    char array[5][5];
    updateArray(array, 0, 0, 'a');
}

void updateArray(char * arr, int row, int col, char c){
    arr[row][col] = c;
}

Обратите внимание, что при объявлении массива в C идентификатор массива (в данном случае array) является указателем на первый элемент массива. Скобки ([row][col]) обращаются к элементам массива путем вычисления его адреса с использованием арифметики указателей . Надеюсь, что это полезно.

0 голосов
/ 30 октября 2018

Как именно вы собираетесь использовать указатели? Указатели на что? Я не думаю, что вам вообще нужны указатели, если только вы не имеете в виду что-то конкретное, что не указано в вашем вопросе. Я бы использовал простой двумерный массив символов.

Определите ваш массив следующим образом:

char a[3][3] = {  
   {"_", "_", "_"},
   {"_", "_", "_"},
   {"_", "_", "_"}};

Ваша доска может выглядеть следующим образом: 4x4 многомерный массив

Например, чтобы заполнить «х» в верхнем левом углу, напишите:

a[0][0] = 'x';

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...