目录
前言
扫雷是一个大家耳熟能详的游戏,游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输。今天就跟大家分享一下如何用c语言实现简单版本的扫雷。
一、基本思路
1、创建游戏界面地图以及地雷生成地图
2、打印出用户地图
3、由用户输入坐标
4、判定用户是否踩到地雷
5、更新地图,显示地雷信息
6、胜利判定
二、代码实现
1.创建游戏界面地图以及地雷生成地图
char ShowMap[MAX_ROW][MAX_COL] = { 0 };
char MineMap[MAX_ROW][MAX_COL] = { 0 };
init(ShowMap, MineMap);
void init(char ShowMap[MAX_ROW][MAX_COL], char MineMap[MAX_ROW][MAX_COL])
{
/*for (int row = 0;row < MAX_ROW;row++)
{
for (int col=0;col<MAX_COL;col++)
{
ShowMap[row][col] = '*';
}
}*/
memset(ShowMap, '*', MAX_ROW * MAX_COL);
memset(MineMap, '0', MAX_ROW * MAX_COL);
//随机产生十个地雷
srand((unsigned int)time(0));
int minecount = 0;
while (minecount < MINE_COUNT)
{
int row = rand() % MAX_ROW;
int col = rand() % MAX_COL;
if (MineMap[row][col] == '1')
{
continue;
}
MineMap[row][col] = '1';
minecount++;
}
}
2.打印出用户地图
system("cls");
print(ShowMap);
void print(char Map[MAX_ROW][MAX_COL])
{
for (int row = 0; row < MAX_ROW; row++)
{
for (int col = 0; col < MAX_COL; col++)
{
printf("%c ", Map[row][col]);
}
printf("\n");
}
}
3.由用户输入坐标
用户输入坐标,进行合法性判定
int row = 0;
int col = 0;
printf("请输入坐标(row,col):");
scanf_s("%d %d", &row, &col);
//合法性判定
if (row<0||row>=MAX_ROW||col<0||col>=MAX_COL)
{
printf("输入的坐标有误,请重新输入!\n");
continue;
}
if (ShowMap[row][col]!='*')
{
printf("输入的位置已翻开,请重新输入!");
continue;
}
4.判定用户是否踩到地雷
if
最低0.47元/天 解锁文章
1125

被折叠的 条评论
为什么被折叠?



