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

各大网站热搜榜排名营销云

各大网站热搜榜排名,营销云,工商营业执照网上查询官网,做国际贸易用什么网站先开一个test.c文件用来游戏的逻辑测试#xff0c;在分别开一个game.c文件和game.h头文件用来实现游戏的逻辑 主要步骤#xff1a; 游戏规则#xff1a; 输入1#xff08;0#xff09;开始#xff08;结束#xff09;游戏#xff0c;输入一个坐标#xff0c;如果该坐…  先开一个test.c文件用来游戏的逻辑测试在分别开一个game.c文件和game.h头文件用来实现游戏的逻辑 主要步骤 游戏规则 输入10开始结束游戏输入一个坐标如果该坐标不是雷则会显示该坐标周围有几个雷 打印菜单 void menu() {printf(**************************\n);printf(********* 1.play *********\n);printf(********* 0.exit *********\n);printf(**************************\n); } int main() {int input 0;srand((unsigned int )time(NULL));do{menu();printf(请选择);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(游戏结束,退出游戏\n);break;default :printf(输入错误请重新输入\n);}} while (input);return 0; } 打印棋盘 写两个数组一个是用来打印给玩家看的棋盘一个是用来放置炸弹的隐藏棋盘等到游戏结束我们才会打印这个棋盘。然后我们给数组初始化用*来初始化我们给玩家看的棋盘用字符‘0’初始化隐藏棋盘。 char mine[ROWS][COLS] { 0 };char show[ROWS][COLS] { 0 };//初始化棋盘InitBoard(show, ROWS, COLS, *);InitBoard(mine, ROWS, COLS, 0);//打印棋盘DisPalyBoard(show, ROW, COL);//DisPalyBoard(mine, ROW, COL);打印行列 因为我们是用坐标来选择排雷的所以我们需要在棋盘的周围打印出行列才可以让玩家更好的去选择。 首先在打印棋盘for循环上方加上一个打印0~9的for循环就可以打印出棋盘的行了然后用打印列的for循环套在打印棋盘的for循环上就可以打印出棋盘的列了。 ​ void DisPalyBoard(char arr[ROWS][COLS], int row, int col) {printf(------扫雷游戏------\n);​int i 0;//打印行的for循环for (i 0; i col; i){printf(%d , i);}printf(\n);//打印列的for循环for ( i 1; i row; i) {printf(%d , i);//打印棋盘的for循环for (int j 1; j col; j){printf(%c , arr[i][j]);}printf(\n);} }​ 放置炸弹 要想棋盘上随机分布十个炸弹炸弹我们用字符‘1’定义我们就需要生成随机数使数组的随机十个元素等于字符‘1’而生成随机数就需要调用到前面我写猜数字游戏时讲过的rand函数、srand函数、time函数了。 void SetMine(char arr[ROWS][COLS], int row, int col) {int count EsayCount;while (count){int x rand() % row 1;int y rand() % col 1;if (arr[x][y] 0)//防止生成相同随机数时使多个炸弹放置在同一位置{arr[x][y] 1;count--;}} } 排查炸弹 当我们输入一个坐标后如果时炸弹结束游戏如果不是炸弹则需要显示炸弹的数量。 判断是否是炸弹只需写一个if语句判断该坐标中数组所对应的元素是否等于‘1’就行了。 显示周围有几个雷我们就需要将所选坐标的周围的数加起来就可以了这些加起来的数的和替换所选坐标的元素就可以了。 int GetMineCount(char mine[ROWS][COLS],int x,int y) {return (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 - 1][y 1] mine[x 1][y] mine[x][y 1] - 8 * 0); } void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) {int x 0, y 0;int win 0;while (win row*col - EsayCount){printf(请输入要排查的坐标:);scanf(%d %d, x, y);if (x 1 x row y 1 y col){if (mine[x][y] 1){printf(很遗憾你被炸死了\n);DisPalyBoard(mine, ROW, COL);break;}else{//该坐标不是雷就得统计该坐标的周围有几个雷int count GetMineCount(mine, x, y);show[x][y] count 0;DisPalyBoard(show, ROW, COL);win;}}else{printf(坐标非法,请重新输入\n);}}if (win row * col - EsayCount){printf(恭喜你排雷成功\n);DisPalyBoard(mine, ROW, COL);} }游戏可改性 因为在写这个程序时需要输入很多的数字如果我们想修改这些数时就要一个一个改这样非常的麻烦。为了避免这些麻烦我们只需要在头文件定义某字符等于某个数字就可以了这样我们想改游戏参数的时候在头文件game.h改就行了。 #define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2 #define EsayCount 10 比如当我们想改行和列改为16炸弹数量改为40的时候我们只需要在头文件将ROW 与 COL定义为16就可以了。 #define ROW 16 #define COL 16#define ROWS ROW2 #define COLS COL2 #define EsayCount 40 完整代码 game.h头文件 #pragma once#includestdio.h #includestdlib.h #includetime.h#define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2 #define EsayCount 10 //初始化棋盘 void InitBoard(char arr[ROWS][COLS], int rows, int cols, char test); //打印棋盘 void DisPalyBoard(char arr[ROW][COL], int row, int col); //布置雷的信息 void SetMine(char arr[ROWS][COLS], int row, int col); //排查雷 void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col); test.c #includegame.hvoid menu() {printf(**************************\n);printf(********* 1.play *********\n);printf(********* 0.exit *********\n);printf(**************************\n); }void game() {//存放布置好雷的信息char mine[ROWS][COLS] { 0 };//存放排查出雷的信息char show[ROWS][COLS] { 0 };//初始化棋盘InitBoard(show, ROWS, COLS, *);InitBoard(mine, ROWS, COLS, 0);//打印棋盘DisPalyBoard(show, ROW, COL);//DisPalyBoard(mine, ROW, COL);//随机布置10个雷SetMine(mine, ROW, COL);//排查雷FindMine(mine,show, ROW, COL); }int main() {int input 0;srand((unsigned int )time(NULL));do{menu();printf(请选择);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(游戏结束,退出游戏\n);break;default :printf(输入错误请重新输入\n);}} while (input);return 0; } game.c #includegame.h void InitBoard(char arr[ROWS][COLS], int rows, int cols, char set) {int i 0;for (i 0; i rows; i){for (int j 0; j cols; j){arr[i][j] set;}} } void DisPalyBoard(char arr[ROWS][COLS], int row, int col) {printf(------扫雷游戏------\n);int i 0;for (i 0; i col; i){printf(%d , i);}printf(\n);for ( i 1; i row; i){printf(%d , i);for (int j 1; j col; j){printf(%c , arr[i][j]);}printf(\n);} }void SetMine(char arr[ROWS][COLS], int row, int col) {int count EsayCount;while (count){int x rand() % row 1;int y rand() % col 1;if (arr[x][y] 0){arr[x][y] 1;count--;}} }int GetMineCount(char mine[ROWS][COLS],int x,int y) {return (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 - 1][y 1] mine[x 1][y] mine[x][y 1] - 8 * 0); } void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) {int x 0, y 0;int win 0;while (win row*col - EsayCount){printf(请输入要排查的坐标:);scanf(%d %d, y, x);if (x 1 x row y 1 y col){if (mine[x][y] 1){printf(很遗憾你被炸死了\n);DisPalyBoard(mine, ROW, COL);break;}else{//该坐标不是雷就得统计该坐标的周围有几个雷int count GetMineCount(mine, x, y);show[x][y] count 0;DisPalyBoard(show, ROW, COL);win;}}else{printf(坐标非法,请重新输入\n);}}if (win row * col - EsayCount){printf(恭喜你排雷成功\n);DisPalyBoard(mine, ROW, COL);} }效果图 游戏后续优化 2.如果排查位置不是雷周围也没有雷可以展开一片。 3.增加一个计时功能。 网页版扫雷 扫雷游戏网页版 - Minesweeper
http://www.zqtcl.cn/news/887826/

相关文章:

  • 做电影网站如何规避版权做新年公告图片的网站
  • 网站修改后怎么上传济南网络员
  • 家居seo整站优化方案怎样开平台软件
  • 深圳网站关键词网站做视频转流量
  • 做网站如何配置自己的电脑精准防恶意点击软件
  • 单页网站 挣钱深圳高水平网站制作
  • 网站建设哪几家好一些打开浏览器历史记录
  • 公司里面有人员增减要去哪个网站做登记网页开发报价单
  • 网站设计的公司运营接单百度搜索引擎首页
  • 最专业的做网站公司有哪些成都龙泉建设有限公司网站
  • 云南省玉溪市建设局官方网站wordpress 迁移 空白
  • 网站空间和数据库多个织梦dedecms网站怎么做站群
  • 网站模块插件是怎么做的个人建设网站流程图
  • 作品展示的网站建设网站方案
  • 整站优化哪家专业网站漏洞解决办法
  • 怎么给自己的网站做扫描码南宁seo排名外包
  • 网站的服务器在哪里怎么建设网站啊
  • 山东做网站三五网站备案怎样提交到管局
  • 自己如何做网站教程中山企业网站推广公司
  • 网站每年费用本地同城服务平台
  • 暗网网站有那些青岛网站设计公司推荐
  • 营业执照咋做网等网站遂宁网站建设公司哪家好
  • 湖南平台网站建设找哪家重庆网站建设营销
  • wordpress搭建企业网站小型网络架构
  • 淘宝联盟链接的网站怎么做培训网站排名
  • 上海高端网站建设定制大连开发区邮编
  • 手机网站公司免费crm软件下载
  • 家居企业网站建设平台周口seo
  • 扁平化网站建设公司广告推广方案
  • 高端企业网站 程序北京做网站费用