c - 如何停止用替换字符替换字符??
问题描述
我正在编写一个带有一些附加功能的井字游戏。
有时,当我尝试打印字符数组(即板)时,它会用带有白色问号(�)的黑色菱形或空方框替换一些字符。
我需要做什么来解决这个问题?
void print_board(char board[N][N], int n)
{
printf("\nCurrent board:\n");
for (int i = 0; i < n; i++)
{
printf("|");
for (int j = 0; j < n; j++)
{
printf("%c|", board[i][j]);
}
printf("\n");
}
printf("\n");
}
我希望有一个带有 x 和 o 的普通板,但其中一些被替换为 � 或一个空框。
void change_board(char board[N][N], int moves_history[TWO][N], int row, int column, int player_index, int turns_num, int board_size)
{
char player_sign = (player_index == FIRST_PLAYER) ? FIRST_PLAYER_SIGN : SECOND_PLAYER_SIGN;
board[row][column] = player_sign;
moves_history[0][turns_num-1] = row;
moves_history[1][turns_num-1] = column;
print_board(board, board_size);
if (did_anyone_win(board,player_index, player_sign,board_size,row,column))
{
exit(0);
}
player_index = (player_index == FIRST_PLAYER) ? SECOND_PLAYER : FIRST_PLAYER;
player_turn(board,board_size,turns_num,player_index,moves_history);
}
void Undo(char board[N][N], int moves_history[TWO][N], int undo, int board_size, int turns_num, int player_index)
{
for (int i = turns_num-TWO; i >= turns_num+undo-1; i--)
{
board[moves_history[0][i]][moves_history[1][i]] = EMPTY_CELL;
moves_history[0][i] = 0;
moves_history[1][i] = 0;
}
print_board(board,board_size);
player_index = player_index == FIRST_PLAYER ? SECOND_PLAYER : FIRST_PLAYER;
player_turn(board,board_size,turns_num+undo-1,player_index,moves_history);
}
这些是我更换电路板的唯一地方,我认为这里没有任何错误,但我将它们仅供参考。
解决方案
根据您的变量名称,我注意到您的电路板有一个 NxN 矩阵。但是你的移动历史是一个大小为 N 的数组。这可能是问题吗?
推荐阅读
- reactjs - Cannot read property 'isLoggedIn' of null
- android - 如何从 ionic/react 构建 APK 以安装在我的 android 设备上或在 google play 上发布?
- alexa - 在 Alexa 的单个自定义插槽中使用数字和短语
- python - 对多行 pandas 的 groupby 应用逻辑
- python - 我认为 scipy.interpolate 可能被破坏了或者我用错了?
- javascript - 在javascript游戏中使画布中的两个移动形状不重叠(碰撞)
- scala - java.net.MalformedURLException:无协议:将 arg 传递给 spark-submit 作业时为 null
- python - 如何为 .py 文件创建 requirements.txt?并非所有模块都通过 pip 安装,但仅涉及某些特定 .py 文件的模块
- bash - 如何在一组主机上执行磁盘清理
- php - 实体 AdminBundle\Entity\Comptable 中的复合主键不允许使用单个 id