网站换域名后需要多长时间才能收录恢复正常,dw编辑器,用ps怎么做网站,网站推广app软件云边有个稻草人-CSDN博客
在学完C语言函数之后#xff0c;我们就有能力去实现简易版扫雷游戏了#xff08;成就感满满#xff09;#xff0c;下面是扫雷游戏的源码#xff0c;快试一试效果如何吧#xff01;
在test.c里面进行扫雷游戏的测试#xff0c;game.h和game.c…云边有个稻草人-CSDN博客
在学完C语言函数之后我们就有能力去实现简易版扫雷游戏了成就感满满下面是扫雷游戏的源码快试一试效果如何吧
在test.c里面进行扫雷游戏的测试game.h和game.c里实现扫雷游戏的实现后续我会出扫雷游戏代码的详细思路和解析。
目录
效果图
game.h
game.c
test.c 效果图 哇趣一下子就踩到雷了幸运到爆 game.h
#pragma once
#includestdio.h
#includestdlib.h
#includetime.h#define ROW 9
#define COL 9#define ROWS ROW2
#define COLS COL2#define EASY_COUNT 10//初始化棋盘
void InitBoard(char mine[ROWS][COLS], int rows, int cols,char set);//打印棋盘
void DisplayBoard(char show[ROWS][COLS], int row, int col);//布置雷
void SetMine(char mine[ROWS][COLS], int row, int col);//排查雷
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col); game.c
#define _CRT_SECURE_NO_WARNINGS 1
#include game.h//初始化棋盘
void InitBoard(char board[ROWS][COLS], int rows, int cols, char set)
{for (int i 0; i rows; i){for (int j 0; j cols; j){board[i][j] set;}}
}//打印棋盘
void DisplayBoard(char show[ROWS][COLS], int row, int col)
{printf(--------扫雷--------\n);//打印显示列int i 0;for ( i 0; i row; i){printf(%d , i);}printf(\n);for (i 1; i row; i){int j 0;printf(%d , i);for (j 1; j col; j){printf(%c , show[i][j]);}printf(\n);}}//布置雷
void SetMine(char mine[ROWS][COLS], int row, int col)
{//产生随机的一个坐标int x 0;int y 0;int count EASY_COUNT;while (count){x rand() % row 1;y rand() % col 1;if (mine[x][y] ! 1){mine[x][y] 1;count--;}}
}//方法一
//int GetMineCount(char mine[ROWS][COLS], int x, int y)
//{
// return mine[x - 1][y]
// mine[x 1][y]
// mine[x - 1][y - 1]
// mine[x][y - 1]
// mine[x 1][y - 1]
// mine[x - 1][y 1]
// mine[x][y 1]
// mine[x 1][y 1] - 8 * 0;
//}//方法二
int GetMineCount(char mine[ROWS][COLS], int x, int y)
{int i 0;int count 0;for (i -1; i 1; i){int j 0;for (j -1; j 1; j){count mine[x i][y j] - 0;}}return count;
}//排查雷
void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col)
{int x 0;int y 0;int win 0;while (winrow*col-EASY_COUNT){printf(请输入要排查的坐标);scanf(%d %d, x, y);//要正确地输入坐标if (x 1 x row y 1 y col){//输入的坐标是雷if (mine[x][y] 1){printf(踩雷被炸游戏结束\n);DisplayBoard(mine, ROW, COL);break;}//输入的坐标不是雷else{int count GetMineCount(mine, x, y);show[x][y] count 0;DisplayBoard(show, ROW, COL);win;}}else{printf(输入错误请重新输入:);}}if (win EASY_COUNT){printf(恭喜你排雷成功!\n);}} test.c
#define _CRT_SECURE_NO_WARNINGS 1
#includegame.h//打印菜单
void menu()
{printf( 欢迎来到扫雷游戏 \n);printf(*************************\n);printf(********* 1.play ********\n);printf(********* 0.exit ********\n);printf(*************************\n);
}void game()
{srand((unsigned int)time(NULL));//定义两个字符串数组char mine[ROWS][COLS] { 0 };//存放雷的信息char show[ROWS][COLS] { 0 };//存放排查出的雷的信息//初始化棋盘InitBoard(mine, ROWS, COLS, 0);InitBoard(show, ROWS, COLS, *);//打印棋盘DisplayBoard(show, ROW, COL);//布置雷SetMine(mine, ROW, COL);//排查雷FindMine(mine, show, ROW, COL);}void test()
{int input 0;do{menu();printf(请选择);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏\n);default :printf(输入错误请重新输入);}} while (input);
}int main()
{test();return 0;
} 期待我后续扫雷游戏的详细介绍吧 我是云边有个稻草人
期待与你的下一次相遇Bye~