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

网站主页跳转indexwordpress获取文章时间

网站主页跳转index,wordpress获取文章时间,wordpress 用不了矢量,包装设计公司logo目录 【前言】 一、模块化程序设计#xff08;多文件编程#xff09;介绍 1.概述 2.传统编程的方式 3.模块化程序设计的方法 二、扫雷代码设计思路 三、扫雷代码设计 1.创建菜单函数 2.实现9x9扫雷 3.初始化棋盘 4.打印棋盘 5.随机布置雷的位置 6.排查雷的信息 7.回…目录 【前言】 一、模块化程序设计多文件编程介绍 1.概述 2.传统编程的方式 3.模块化程序设计的方法 二、扫雷代码设计思路 三、扫雷代码设计 1.创建菜单函数 2.实现9x9扫雷 3.初始化棋盘 4.打印棋盘 5.随机布置雷的位置 6.排查雷的信息 7.回到步骤1重新选择进入游戏1或者退出游戏0 四、实现三子棋的模块化程序设计源码 1.新建一个test.c源文件 2.新建一个game.c源文件 3.创建一个game.h头文件 五、扫雷代码运行结果演示 1.很遗憾你被炸死了 2.坐标非法重新输入 3.恭喜你排雷成功 【最后】 个人主页库库的里昂 CSDN新晋作者 欢迎 点赞✍评论⭐收藏 ✨其他专栏C语言初阶 ✨收录专栏代码小游戏 希望作者的文章能对你有所帮助有不足的地方请在评论区留言指正大家一起学习交流 【前言】 《扫雷》是一款益智小游戏发行于1992年。 游戏目标是在最短的时间内根据点击格子出现的数字找出所有非雷格子同时避免踩雷踩到一个雷即全盘皆输。(编译器用的是VS2019) 扫雷游戏链接 一、模块化程序设计多文件编程介绍 在讲解扫雷之前我们先来了解一下什么是模块化程序设计多文件编程。 1.概述 模块化程序设计是指在进行程序设计时将一个大程序按照功能划分为若干小程序模块每个小程序模块完成一个特定的功能然后在这些小程序模块之间建立必要的联系通过这些小程序模块的互相协作完成整个大程序功能的程序设计方法。这里需要说明的是模块化程序设计开发并非专指多文件编程模块化程序设计开发的重点在于小功能模块的设计和协作多文件编程只是将一个或多个“小程序模块”打包在单独的文件中以文件的形式进行呈现形成了多文件编程形式。 本文重点使用多文件编程的方法。 2.传统编程的方式 所有的函数均放在.c文件里若使用的模块比较多则一个文件内会有很多的代码不利于代码的组织和管理而且很影响编程者的思路。 3.模块化程序设计的方法 把各个模块的代码分别放在各个新建的.c文件里在.h文件里提供外部可调用函数的声明其它.c文件想使用其中的代码时只需要#include XXX.h文件即可。使用模块化编程可极大的提高代码的可阅读性、可维护性、可移植性等。 示例 主函数调用 file.c 中定义的函数 fun() ,以及file.h对函数的声明。 file.c #includefile.h void fun() {......; }file.h void fun();test.c #includestdio.h int main() {......fun();return 0; }二、扫雷代码设计思路 1.创建菜单函数【选择进入游戏1或者退出游戏0】 2.实现9x9扫雷 3.初始化棋盘 4.打印棋盘 5.随机布置雷的位置 6.排查雷的信息 检查输入坐标是不是雷 如果这个位置不是雷就计算这个位置的周围8个坐标有几个雷并显示雷的个数如果这个位置是雷就炸死了游戏结束如果把不是雷的位置都找出来了那游戏也结束了 7.回到步骤1重新选择进入游戏1或者退出游戏0 三、扫雷代码设计 1.创建菜单函数 菜单界面函数实际上就像是我们的一个界面就好比是游戏的界面目录餐馆当中的菜单。一样的道理。这个是库函数就有的我们只需要直接引用下即可。 game函数实现 主要功能如下 1.创建并初始化棋盘 2.设置雷的位置使用rand函数 3.打印棋盘信息 4.排查雷a.展开一片非雷区域                   b.显示周围雷的个数                   c.判断游戏输赢 代码示例: #include game.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(mine, ROWS, COLS, 0);InitBoard(show, ROWS, COLS, *);DisplayBoard(show, ROW, COL);//布置雷SetMine(mine, ROW, COL);//DisplayBoard(mine, ROW, COL);//排查雷FindMine(mine, show, ROW, COL); }int main() {srand((unsigned int)time(NULL));int input 0;do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏\n);break;default:printf(选择错误重新选择\n);break;}} while (input);return 0; }效果图 2.实现9x9扫雷 #define ROW 9 #define COL 9 使用 #define 宏定义在这里的好处 方便程序的修改不用对整个程序进行修改只需对宏定义上进行修改。提高程序的运行效率更加方便模块化。在9x9扫雷基础上只需改变宏定义的值就可以实现NxN扫雷的效果。 3.初始化棋盘 数组最开始存放的是空格达到为打印棋盘做准备的一个初始化棋盘的实现。 初始化棋盘首先要创建两个数组一个是mine数组存放雷的信息一个数组是show显示排查雷的位置我们封装一个InitBoard的函数来实现对以上两个数组的初始化。注这里传参时的set是决定数组初始化的内容所以多传了一个参数。只要调用两次这个InitBoard函数就可以实现两个数组的初始化。 这里是函数的传参封装在game函数里面 在game.h文件中#define定义了以下符号ROWS,COLS,ROW,COL 为什么需要11x11的数组呢 为了防止访问数组越界访问 代码示例 #define ROWS ROW2 #define COLS COL2 void InitBoard(char board[ROWS][COLS], int rows, int cols, char set) {int i 0;int j 0;for (i 0; i rows; i){for (j 0; j cols; j){board[i][j] set;}} } 效果图 4.打印棋盘 打印棋盘本质上是打印数组的内容*。 代码示例 void DisplayBoard(char board[ROWS][COLS], int row, int col) {int i 0;int j 0;printf(---------扫雷--------\n);for (i 0; i col; i){printf(%d , i);}printf(\n);for (i 1; i row; i){printf(%d , i);for (j 1; j col; j){printf(%c , board[i][j]);}printf(\n);}printf(---------扫雷--------\n); } 效果图 5.随机布置雷的位置 字符‘1’表示雷字符‘0’表示不是雷字符星号表示还没有被排查过的位置在布置雷这里我们又需要用到rand这个随机函数了需要用到stdlib.h头文件这个函数在使用前需要使用srand这个函数srand这个函数的使用只需要调用一次srand函数在使用时需要一个随机种子这个随机种子可以用时间戳所以需要用到time.h的头文件这里的EASY_COUNT在game.h文件中#define声明了这个符号为10 这是布置雷的个数 代码示例 #include stdio.h #include stdlib.h #include time.h#define EASY_COUNT 10 void SetMine(char mine[ROWS][COLS], int row, int col) {int count EASY_COUNT;while (count){int x rand() % row 1;int y rand() % col 1;if (mine[x][y] 0){mine[x][y] 1;count--;}} } 6.排查雷的信息 排查雷的信息我们需要考虑到排查雷的信息是一个循环所以需要用到while语句什么时候结束呢 row*col个字符中有10个雷只有当我们把所有不是雷的位置排查完游戏才算赢我们在while条件判断里面写win (row * col - EASY_COUNT)作为输赢的条件 输入的坐标值必须在9x9的范围内 如果坐标不在9x9的范围内则这个坐标是非法的如果输入的坐标位置的内容不是星号则表示该坐标位置已经被排查过如果输入的坐标位置上的字符等于‘1’则表示这个坐标是雷游戏结束如果以上都不是则显示目标位置周围的8的坐标的雷的数量排查一个win只有当win等于总字符数减去雷的个数时才表示排雷成功 代码示例 void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) {int x 0;int y 0;int win 0;while (win row * 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{//不是雷就统计x,y坐标周围有几个雷int c GetMineCount(mine, x, y);show[x][y] c 0;DisplayBoard(show, ROW, COL);win;}}else{printf(坐标非法重新输入\n);}}if (win row * col - EASY_COUNT){printf(恭喜你排雷成功\n);DisplayBoard(mine, ROW, COL);} } 效果图 7.回到步骤1重新选择进入游戏1或者退出游戏0 效果图 四、实现三子棋的模块化程序设计源码 1.新建一个test.c源文件 test.c文件用来存放游戏的逻辑代码。 #define _CRT_SECURE_NO_WARNINGS 1#include game.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(mine, ROWS, COLS, 0);InitBoard(show, ROWS, COLS, *);DisplayBoard(show, ROW, COL);//布置雷SetMine(mine, ROW, COL);//DisplayBoard(mine, ROW, COL);//排查雷FindMine(mine, show, ROW, COL); }int main() {srand((unsigned int)time(NULL));int input 0;do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:game();break;case 0:printf(退出游戏\n);break;default:printf(选择错误重新选择\n);break;}} while (input);return 0; } 2.新建一个game.c源文件 game.c文件用来存放函数的定义。 #define _CRT_SECURE_NO_WARNINGS 1 #include game.hvoid InitBoard(char board[ROWS][COLS], int rows, int cols, char set) {int i 0;int j 0;for (i 0; i rows; i){for (j 0; j cols; j){board[i][j] set;}} }void DisplayBoard(char board[ROWS][COLS], int row, int col) {int i 0;int j 0;printf(---------扫雷--------\n);for (i 0; i col; i){printf(%d , i);}printf(\n);for (i 1; i row; i){printf(%d , i);for (j 1; j col; j){printf(%c , board[i][j]);}printf(\n);}printf(---------扫雷--------\n); }void SetMine(char mine[ROWS][COLS], int row, int col) {int count EASY_COUNT;while (count){int x rand() % row 1;int y rand() % col 1;if (mine[x][y] 0){mine[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] mine[x 1][y 1] mine[x][y 1] mine[x - 1][y 1] - 8 * 0; }void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) {int x 0;int y 0;int win 0;while (win row * 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{//不是雷就统计x,y坐标周围有几个雷int c GetMineCount(mine, x, y);show[x][y] c 0;DisplayBoard(show, ROW, COL);win;}}else{printf(坐标非法重新输入\n);}}if (win row * col - EASY_COUNT){printf(恭喜你排雷成功\n);DisplayBoard(mine, ROW, COL);} } 3.创建一个game.h头文件 game.h文件用来存放函数声明符号声明头文件的包含以及宏定义。 #pragma once#include stdio.h #include stdlib.h #include time.h#define ROW 9 #define COL 9#define ROWS ROW2 #define COLS COL2#define EASY_COUNT 10//初始化棋盘 void InitBoard(char board[ROWS][COLS], int rows, int cols, char set);//显示棋盘 void DisplayBoard(char board[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); 五、扫雷代码运行结果演示 1.很遗憾你被炸死了 2.坐标非法重新输入 3.恭喜你排雷成功 【最后】 今天的扫雷小游戏就到这里啦有没有给你的编程之路带来些许快乐呀后面我还会更新许多小游戏的代码设计大家喜欢的话可以订阅一下专栏哟✨
http://www.zqtcl.cn/news/929890/

相关文章:

  • 前端手机网站同企网站建设做网站
  • 重庆专业网站公司查看网站是否收录
  • 网站怎么做网上报名学多久可以做网站 知乎
  • 网站建设项目总结报告织梦模板建站
  • 关于网站建设的基础知识中石化十建公司官网
  • 江苏做网站怎么收费wordpress的wap插件
  • 企业营销网站建设公司哪家好网站建设团队名称
  • 法制网站建设问卷调查手机网站打开自动wap
  • 建设网站 如何给文件命名佛山网站推广市场
  • 网站客户问题解答网站建设网站规划书
  • 罗湖网站公司网络营销的种类有哪些
  • 怎么做微网站推广做一个自己的网站需要什么
  • 一个静态网站开发考虑什么最近一周新闻热点回顾
  • 北京网站设计知名乐云seo汝州建设局网站
  • 珠海左右创意园网站开发注册安全工程师报名条件和要求
  • 建设文明网站包括怎么用手机建设网站
  • 网站建设商城宁波seo深度优化平台有哪些
  • 免费企业查询网站网站建设有关的职位
  • 有哪些网站是可以做会计题目的广告网站建设设计
  • 房地产项目网站建设wordpress codecolorer
  • 网站服务器机房html5写的网站有什么好处
  • 三网合一网站源码下载宣传片拍摄手法及技巧
  • 重庆有网站公司公司做网站能抵扣进项税吗
  • 深圳南山网站开发卖东西的网站怎么建设
  • 网站开发教程全集网站内外链建设
  • 购物网站排名数商云科技
  • 哪种网站百度网盘登录入口官网
  • 做淘宝网站多少钱wordpress 七牛云存储
  • 做淘宝网站多少钱江苏省建设厅网站建筑电工证
  • 深圳网站建设 贴吧广州档案馆建设网站