当前位置: 首页 > 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.pierceye.com/news/291415/

相关文章:

  • 开奖网站怎么做wordpress4.9.8中文版
  • 国外做任务的网站网推公司
  • 国外有在线做设计方案的网站吗为什么用Vue做网站的很少
  • 网站一定要备案网站建设与维护工作
  • 锦江区建设和交通局网站怎样在网上建立平台
  • 网站维护升级访问中六安论坛网站
  • ppt模板网站哪个免费重庆手机版建站系统哪家好
  • 35岁学设计晚不晚北京网站快速排名优化
  • 网站建设三合一 500元阜阳网站建设公司
  • 那些公司需要网站开发工程师网页开发与网站开发
  • 手机端网站如何做排名wordpress no7
  • 搭建网站什么意思o2o的典型电子商务平台
  • vs2013网站开发教程wordpress站内搜索框
  • 素材网站怎么做利用小程序反向做网站
  • 怎么自己做网站地图做网站详细步骤
  • 做网站的整体风格确定方式郑州seo代理外包
  • 语种网站建设沭阳做网站好的
  • wordpress网站换字体颜色网站建设案例包括哪些
  • 北京市环境建设办公室网站怎么找到合适的网站建设商
  • 网站在线优化中国品牌加盟网
  • 网站可以做章子吗什么是网络营销?其特点是什么?
  • 网站优化人员中小型网站设计公司
  • 旅游网网站的设计wordpress添加网页背景图片大小
  • 学网站建设难不难wordpress5分钟安装
  • 建网站优化中山做网站专业的公司
  • 网站cmd做路由分析七牛云官网登录
  • 怎么在网站上打广告网站制作方案范文
  • 关键词搜不到我的网站wordpress 内网访问
  • 检察机关门户网站建设工作自查报告网站建设服务领域
  • 网站排名seo软件泉州高端模板建站