当前位置: 首页 > news >正文

黄冈免费网站推广平台汇总天坛网站建设

黄冈免费网站推广平台汇总,天坛网站建设,鞍山网站制作价格,推广员网站怎么做目录 一、前言#xff1a; 二、游戏规则#xff1a; 三、游戏前准备 四、游戏实现 1、打印菜单 2、初始化棋盘 3、打印棋盘 4、布置雷 5、排雷 五、完整代码 一、前言#xff1a; 用C语言完成扫雷游戏对于初学者来说#xff0c;难度并不是很大#xff0c;而且通…目录 一、前言 二、游戏规则 三、游戏前准备 四、游戏实现 1、打印菜单 2、初始化棋盘 3、打印棋盘 4、布置雷 5、排雷 五、完整代码 一、前言 用C语言完成扫雷游戏对于初学者来说难度并不是很大而且通过编程这个小游戏会让你对函数调用分支循环连续输入等有很好的掌握该过程并不涉及指针及以后的内容。 二、游戏规则 扫雷游戏规则十分简单比如9*9网格中就是在81个网格中找到其中的10颗雷并不被雷炸死。 三、游戏前准备 我们为了让代码更加简洁将代码分成三个文件中编写如图所示在test.c文件中放主函数 在game.h中放所需的头文件在gam.c中放调用的函数。 四、游戏实现 为了方便下面的讲解我先把主函数和头文件放出来 #includestdio.h #includetime.h #define ROW 9 #define COL 9 #define ROWS ROW2 #define COLS COL2 #define mine_count 10 void Initboard(char board[ROWS][COLS], int rows,int cols,char set); void Printboard(char board[ROWS][COLS], int row, int col); void Setmine(char board[ROWS][COLS],int row,int col); void Finemine(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col); game.h文件中放入头文件并定义全文所需的宏变量这样方便改动比如本篇讲述的是9*9网格的你只需将定义的9改成其他数据就可以得到一个10*10或其他的网格 #includegame.h void game() {char mine[ROWS][COLS];char show[ROWS][COLS];//第一步初始化棋盘Initboard(mine, ROWS, COLS,0);Initboard(show, ROWS, COLS,*);//第二步打印棋盘Printboard(show, ROW, COL);//第三步布置雷Setmine(mine, ROW, COL);//Printboard(mine, ROW, COL);//第四步排雷Finemine(mine, show, ROW, COL); } void menu() {printf(****************\n);printf(**** 1 play ****\n);printf(**** 0 exit ****\n);printf(****************\n); } int main() {int count 0;srand((unsigned int)time(NULL));do{menu();printf(请输入你的选择);scanf(%d, count);switch (count){case 1:game();break;case 0:printf(你已选择退出游戏\n);break;default:printf(这是一个不规范的选择请重新选择\n);break;}} while (count);return 0; } 通过主函数你应该能看出来我们实现这个游戏的逻辑是先打印出菜单告诉你不同的选择然后通过你的选择来判断是否进入游戏所以游戏大体分成以下几步 1、打印菜单 2、初始化棋盘 3、随机布置十颗雷 5、打印棋盘 4、排雷 下面我们逐步实现这几点 1、打印菜单 void menu() {printf(****************\n);printf(**** 1 play ****\n);printf(**** 0 exit ****\n);printf(****************\n); } 运行后可以打印出菜单 2、初始化棋盘 在game()函数中我们定义了两个字符数组 char mine[ROWS][COLS]; char show[ROWS][COLS]; //第一步初始化棋盘 Initboard(mine, ROWS, COLS,0); Initboard(show, ROWS, COLS,*); 其中第一个数组是雷盘布置雷在上面第二个数组是展示的告诉玩家游戏进行情况我们用0表示无雷可以先把雷盘全部初始化为‘0’展示盘全部初始化为‘*’ 具体函数如下 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;}} } 3、打印棋盘 在主函数中我们就提到了初始化后打印棋盘其实打印棋盘和布置雷两步可以互换先后顺序但是这里打印棋盘还可以用来检测上面初始化是否成功 //第二步打印棋盘Printboard(show, ROW, COL); 代码如下 void Printboard(char board[ROWS][COLS], int row, int col) {int i 0;int j 0;for (i 0; i row; i)printf(%d , i);printf(\n);for (i 1; i col; i){printf(%d , i);for (j 1; j row; j){printf(%c , board[i][j]);}printf(\n);} } 运行后结果如下 4、布置雷 //第三步布置雷Setmine(mine, ROW, COL);//Printboard(mine, ROW, COL);//这步可以用来检测雷是否布置成功如果怕出错可以用上 初始化棋盘之后就要在雷盘中随即找十个位置放雷也就是说要放进去十颗雷 void Setmine(char board[ROWS][COLS], int row, int show) {int num mine_count;while (num){int i rand() % 9 1;int j rand() % 9 1;if (board[i][j] 0){board[i][j] 1;num--;}} } 用‘1’表示雷就是将mine数组中随即找十个位置将‘0’换成‘1’表示在这里埋雷 5、排雷 排雷过程中只有两种结果一种是正好是雷那么就会炸死另一种则是不是雷如果不是雷我们应该把它周围有几个雷判断出来不然几乎不可能通关 代码如下 int lei_count(char mine[ROWS][COLS], int a, int b) {int count mine[a - 1][b - 1] mine[a - 1][b] mine[a - 1][b 1] mine[a][b - 1] mine[a][b 1] mine[a 1][b - 1] mine[a 1][b] mine[a 1][b 1] - 8 * 0;return count; } void Finemine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) {int a, b;int wulei row * col - mine_count;while (wulei){printf(请输入你要检查的坐标);scanf(%d %d, a, b);if (a 0 a row b 0 b col){if (mine[a][b] 1){printf(抱歉这是雷你被炸死了\n);break;}else{//既然不是雷那就统计雷的数量int count lei_count(mine, a, b);show[a][b] count 0;Printboard(show, ROW, COL);wulei--;}}elseprintf(此坐标不存在请重新输入\n);} } 五、完整代码 game.h #includestdio.h #includetime.h #define ROW 9 #define COL 9 #define ROWS ROW2 #define COLS COL2 #define mine_count 10 void Initboard(char board[ROWS][COLS], int rows,int cols,char set); void Printboard(char board[ROWS][COLS], int row, int col); void Setmine(char board[ROWS][COLS],int row,int col); void Finemine(char mine[ROWS][COLS],char show[ROWS][COLS],int row,int col);test.c #includegame.h void game() {char mine[ROWS][COLS];char show[ROWS][COLS];//第一步初始化棋盘Initboard(mine, ROWS, COLS,0);Initboard(show, ROWS, COLS,*);//第二步打印棋盘Printboard(show, ROW, COL);//第三步布置雷Setmine(mine, ROW, COL);//Printboard(mine, ROW, COL);//第四步排雷Finemine(mine, show, ROW, COL); } void menu() {printf(****************\n);printf(**** 1 play ****\n);printf(**** 0 exit ****\n);printf(****************\n); } int main() {int count 0;srand((unsigned int)time(NULL));do{menu();printf(请输入你的选择);scanf(%d, count);switch (count){case 1:game();break;case 0:printf(你已选择退出游戏\n);break;default:printf(这是一个不规范的选择请重新选择\n);break;}} while (count);return 0; } game.c #includegame.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 Printboard(char board[ROWS][COLS], int row, int col) {int i 0;int j 0;for (i 0; i row; i)printf(%d , i);printf(\n);for (i 1; i col; i){printf(%d , i);for (j 1; j row; j){printf(%c , board[i][j]);}printf(\n);} } void Setmine(char board[ROWS][COLS], int row, int show) {int num mine_count;while (num){int i rand() % 9 1;int j rand() % 9 1;if (board[i][j] 0){board[i][j] 1;num--;}} } int lei_count(char mine[ROWS][COLS], int a, int b) {int count mine[a - 1][b - 1] mine[a - 1][b] mine[a - 1][b 1] mine[a][b - 1] mine[a][b 1] mine[a 1][b - 1] mine[a 1][b] mine[a 1][b 1] - 8 * 0;return count; } void Finemine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) {int a, b;int wulei row * col - mine_count;while (wulei){printf(请输入你要检查的坐标);scanf(%d %d, a, b);if (a 0 a row b 0 b col){if (mine[a][b] 1){printf(抱歉这是雷你被炸死了\n);break;}else{//既然不是雷那就统计雷的数量int count lei_count(mine, a, b);show[a][b] count 0;Printboard(show, ROW, COL);wulei--;}}elseprintf(此坐标不存在请重新输入\n);} } 用C语言解决扫雷游戏还是非常有意思的上面这种还是最简单的还有许多有趣的东西值得探索比如如何搞一个20*20的棋盘或如何用递归的方法实现快速展开如果想了解更多点击关注去学习更多C语言的知识。
http://www.zqtcl.cn/news/291415/

相关文章:

  • 企业网站制作 深圳网站建站行业公司主页建设
  • 外汇直播网站建设开发做网站空间商需要办什么手续
  • 源码哥网站的模板皮肤病在线咨询医生免费咨询
  • 温岭市市住房和城乡建设规划局网站附近的电脑培训班在哪里
  • 网站备案百度站长提交减肥网站源码
  • 网站添加文章机械代加工厂家
  • 学做各种糕点的网站cn网站建设多少钱
  • 首页网站关键词优化教程如何查询网站点击率
  • 文章类型的网站模版北京朝阳区房价2023年最新房价
  • wap网站发布注销主体和注销网站
  • 微信小程序 做网站满足客户的分销管理系统
  • 高佣联盟做成网站怎么做wordpress 更新版本
  • 杭州营销网站建设公司成都网站排名优化报价
  • 网站建设设计哪家好太原新建火车站
  • 医疗网站建设信息cps推广平台有哪些
  • rp怎么做网站备案 添加网站
  • 汕尾手机网站设计淘宝客做网站怎么做
  • 营口公司网站建设网站百度seo关键词优化
  • 网站开发命名规范汉中网站制作
  • 嘉定网站建设公司泗水做网站ys178
  • 邯郸网站设计招聘网齐家网和土巴兔装修哪家好
  • 京东网站推广方式jquery网页设计成品
  • 做本地网站卖四川省建设科技协会网站首页
  • 注册网站引流wordpress5.0.2图集怎么发布
  • 360产品展示网站哈尔滨个人建站模板
  • 怎么做网站的浏览量陕西省住房和建设厅官方网站
  • 上海网站 备案查询平面设计接单网站有哪些
  • 用别人的公司名字做网站想自己做网站推广
  • 百度智能建站平台建设工程信息网官网入口查询
  • 比价网站源码整站程序服务器怎么发布网站