BUG反思:
在之前制作扫雷小游戏的过程中,我由于经验不足导致了一些bug,在此我展示了一些我犯的错误以及解决方法以供大家参考。
问题:打印错误
问题描述
在打印雷场时,原本应该打印字符 ’ * ’ 时打印成了“@” 。
原因分析:
错误分析:出现这种问题是因为被打印的字符‘ * ’错写成了字符串" * "的形式,我们使用printf()打印时允许其打印的是字符而不是字符串,打印与被打印的格式不同导致了打印出@ 。
#include<stdio.h>
int main()
{
char a = 'a';
char b = "a"; //字符串不仅不能作为变量被打印,
//甚至不能存储在变量里面
printf("%c", a);//字符应该以%c的字符型被打印
//printf("%s", a);
return 0;
}
解决方案:
将 “ * ” 改为 ’ * ’ 即可。
//初始化玩家雷场
void init_player_board(char player_board[ROWS][COLS], int rows, int cols)
{
//玩家看到的是一个由*构成的地图
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
player_board[i][j] ='*';
}
}
}