我正在编写一个游戏“Tic Tac Toe” 我要求每个玩家在两个不同的函数中输入他们的下一步行动, 然后我将他们的 Action 保存在二维数组中,并将该数组保存在主函数中的另一个二维数组中。 但是当我打印数组时,当第二个玩家进入下一步 Action 时,它会更改字符符号。 PS:这是一个字符数组。 这是我的代码
char player1(char board[N][N], int n)
{
int k, l;
print_player_turn(1);
scanf("%d%d", &k, &l);
board[k - 1][l - 1] = 'X';
print_board(board, n);
return board;
}
char player2(char board[N][N], int n)
{
int k, l;
print_player_turn(2);
scanf("%d%d", &k, &l);
board[k - 1][l - 1] = 'O';
print_board(board, n);
return board;
}
int main()
{
char board[N][N];
int n;
print_welcome();
print_enter_board_size();
scanf("%d", &n);
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
board[i][j] = '_';
print_board(board, n);
char* ptr = board;
while (isFull(board,n)==0)
{
board[0][0] = player1(board, n);
if (XloseGeneral(board, n) == 1)
{
print_winner(2);
return 0;
}
board[0][0] = player2(board, n);
if (OloseGeneral(board, n) == 1)
{
print_winner(1);
return 0;
}
}
print_tie();
}
最佳答案
我建议您扩展 2D 数组“board”的范围,以便包括玩家 1 和玩家 2 在内的所有方法都可以访问它,而不是将其作为参数传递。
通过这种方式,您可以确保对同一变量进行修改,并且不会发生重新初始化,从而导致丢失先前的条目。
关于c - 如何从函数返回一个二维数组到主函数,并将其保存在另一个数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59356266/