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

企业网站的首页设计模板php网站授权

企业网站的首页设计模板,php网站授权,网站空间200m,淄博周村学校网站建设报价大家好啊#xff0c;我是小象٩(๑ω๑)۶ 我的博客#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家#xff0c;希望能够和大家一起交流学习#xff0c;共同进步。 这一节课我们不学习新的知识#xff0c;我们来做一个扫雷小游戏 目录 扫雷小游戏概述一、扫雷游戏分析… 大家好啊我是小象٩(๑òωó๑)۶ 我的博客Xiao Xiangζั͡ޓއއ 很高兴见到大家希望能够和大家一起交流学习共同进步。 这一节课我们不学习新的知识我们来做一个扫雷小游戏 目录 扫雷小游戏概述一、扫雷游戏分析和设计1.1 扫雷游戏的功能说明1.2 设计思路总结 二、扫雷游戏代码的实现game.hgame.ctest.c 三、扫雷游戏的扩展四、结尾 扫雷小游戏概述 扫雷是一款极具趣味性和挑战性的逻辑解谜游戏玩家需要在一个布满方块的网格中根据数字提示推理出隐藏地雷的位置并标记或避开它们。这款游戏历史悠久许多操作系统都将其作为自带游戏因其简单易上手却又充满策略性而深受玩家喜爱。 一、扫雷游戏分析和设计 1.1 扫雷游戏的功能说明 • 使用控制台实现经典的扫雷游戏 • 游戏可以通过菜单实现继续玩或者退出游戏 • 扫雷的棋盘是9*9的格子 • 默认随机布置10个雷 • 可以排查雷 ◦ 如果位置不是雷就显示周围有几个雷 ◦ 如果位置是雷就炸死游戏结束 ◦ 把除10个雷之外的所有非雷都找出来排雷成功游戏结束 1.2 设计思路总结 首先利用控制台打造经典扫雷游戏含菜单可选择继续或退出。棋盘为 9×9默认随机布置 10 个雷。玩家排查雷若选中非雷位置显示周围雷数选中雷则游戏结束找出所有非雷位置游戏胜利。 然后我们可以采用两个 11×11 的字符数组mine数组存放布置好的雷信息初始为’0’布置雷处改为’1’show数组存放排查出的雷的信息初始为’* 以此避免信息混淆同时扩大数组防止排查雷时越界。 最后再通过多文件形式开发test.c编写测试逻辑game.c实现游戏函数game.h声明数据类型和函数使代码结构清晰便于维护。 二、扫雷游戏代码的实现 之前学习了多文件的形式对函数的声明和定义这里我们实践⼀下我们设计三个文件 test.c //⽂件中写游戏的测试逻辑 game.c //⽂件中写游戏中函数的实现等 game.h //⽂件中写游戏需要的数据类型和函数声明等game.h #pragma once #include stdio.h #include stdlib.h #include time.h #define EASY_COUNT 10 #define ROW 9 #define COL 9 #define ROWS ROW2 #define COLS COL2//初始化棋盘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 board[ROWS][COLS], int row, int col);//排查雷void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);这是一个头文件主要用于声明函数和定义常量为其他源文件提供必要的接口和信息以实现模块化编程。 前面包含了标准输入输出库 stdio.h、标准库 stdlib.h 和时间库 time.h这些库提供了后续代码中使用的基本函数如 printf、scanf、rand 和 time 等。 宏定义EASY_COUNT 定义了简单难度下雷的数量为 10 个。 ROW 和 COL 分别定义了游戏棋盘的实际行数和列数这里是 9x9的棋盘。 ROWS 和 COLS 分别是在实际棋盘基础上增加了两行两列的扩展棋盘大小用于方便处理边界情况。 声明了四个函数这些函数的具体实现将在 game.c 文件中完成。 InitBoard 用于初始化棋盘将棋盘的每个元素设置为指定的字符。 DisplayBoard 用于打印棋盘方便玩家查看游戏状态。 SetMine 用于在棋盘上随机布置雷。 FindMine用于玩家排查雷根据玩家输入的坐标判断是否踩到雷并更新游戏状态。 game.c #include stdlib.h #include time.h #include game.hvoid InitBoard(char board[ROWS][COLS], int rows, int cols, char set){int i 0;for (i 0; i rows; i){int j 0;for (j 0; j cols; j){board[i][j] set;}}}void DisplayBoard(char board[ROWS][COLS], int row, int col){int i 0;printf(--------扫雷游戏-------\n);for (i 0; i col; i){printf(%d , i);}printf(\n);for (i 1; i row; i){printf(%d , i);int j 0;for (j 1; j col; j){printf(%c , board[i][j]);}printf(\n);}}void SetMine(char board[ROWS][COLS], int row, int col){//布置10个雷//⽣成随机的坐标布置雷int count EASY_COUNT;while (count){int x rand() % row 1;int y rand() % col 1;if (board[x][y] 0){board[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{//该位置不是雷就统计这个坐标周围有⼏个雷int count GetMineCount(mine, x, y);show[x][y] count 0;DisplayBoard(show, ROW, COL);win;}}else{printf(坐标⾮法重新输⼊\n);}}if (win row * col - EASY_COUNT){printf(恭喜你排雷成功\n);DisplayBoard(mine, ROW, COL);} } 这是一个源文件主要实现了 game.h 中声明的函数是扫雷游戏的核心功能实现文件。 InitBoard 函数使用双重循环遍历棋盘的每个元素将其初始化为指定的字符 set。 DisplayBoard 函数打印棋盘的行列编号并输出棋盘的每个元素方便玩家查看游戏状态。 SetMine 函数利用 rand 函数生成随机坐标在棋盘上随机布置 EASY_COUNT 个雷直到布置完成。 GetMineCount 函数计算指定坐标周围 8 个格子中雷的数量通过字符 ‘1’ 和 ‘0’ 的 ASCII 码差值来统计。 FindMine 函数处理玩家排查雷的操作根据玩家输入的坐标判断是否踩到雷。如果踩到雷游戏结束否则统计周围雷的数量并更新显示棋盘直到所有非雷格子都被排查完玩家获胜。 test.c #include game.hvoid menu(){printf(***********************\n);printf(***** 1. play *****\n);printf(***** 0. exit *****\n);printf(***********************\n);}void game(){char mine[ROWS][COLS];//存放布置好的雷char show[ROWS][COLS];//存放排查出的雷的信息//初始化棋盘//1. mine数组最开始是全0//2. show数组最开始是全*InitBoard(mine, ROWS, COLS, 0);InitBoard(show, ROWS, COLS, *);//打印棋盘//DisplayBoard(mine, ROW, COL);DisplayBoard(show, ROW, COL);//1. 布置雷SetMine(mine, ROW, COL);//DisplayBoard(mine, ROW, COL);//2. 排查雷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);break;}} while (input);return 0;} 这也是一个源文件主要负责游戏的流程控制和用户交互是游戏的入口文件。 主函数main是程序的入口点使用 srand 函数初始化随机数种子以确保每次游戏的雷布局不同。通过 do-while 循环不断显示菜单根据用户的选择调用相应的函数直到用户选择退出游戏。 综上所述game.h 提供了游戏的接口和常量定义game.c 实现了游戏的核心功能test.c 负责游戏的流程控制和用户交互三个文件协同工作实现了一个简单的扫雷游戏。 三、扫雷游戏的扩展 • 是否可以选择游戏难度 简单 99 棋盘10个雷 中等 1616棋盘40个雷 困难 30*16棋盘99个雷 • 如果排查位置不是雷周围也没有雷可以展开周围的一片 • 是否可以标记雷 • 是否可以加上排雷的时间显示 四、结尾 这一课的内容就到这里了下节课继续学习指针的其他一些知识 如果内容有什么问题的话欢迎指正有什么问题也可以问我
http://www.dnsts.com.cn/news/24439.html

相关文章:

  • ftp两个网站子域名的绑定注册域名以后怎么做网站
  • 怎么制作网站域名网站开发的职位要求
  • 贵阳网站建设服务公司北京城建一建设发展有限公司网站
  • 专门做mod的网站办网站需要多少费用
  • 互联网公司 网站百度竞价和优化的区别
  • 东莞注塑切水口东莞网站建设如何做简单网站首页
  • 重庆建设造价信息网站百度网盟官网
  • 任丘市网站建设长春搜索引擎优化
  • 珠宝网站建商台北wordpress主题 虎嗅网
  • 建设网站卡盟如何在本机搭建wordpress
  • 合肥专业网站制济南网站优化公司
  • 国内ui网站有哪些做app和网站怎样
  • 单页网站在线制作北京seo优化推广
  • postgresql做网站用什么环境wordpress 又拍
  • 展会网站建设建设网站费用多少
  • 建设网站需要域名还有什么企业邮箱登录9951026net
  • 西安网站建设费用广州工程项目
  • 开设计公司客源哪里找宁波seo整站优化软件
  • 做网站最低多少钱网络设计方案书中内容很多
  • 手机网站制作架构深圳网站建设哪个
  • 湖北做网站教程哪家好营销的方法手段有哪些
  • 响应式布局网站案例旅游设计网站
  • 最好的网站开发建设银行网站密码忘记了咋办
  • 做兼职工作上哪个网站招聘佛山网签查询系统
  • 哈尔滨网站seo公司做网站时怎么更改区域内的图片
  • 融水做的比较好的网站有哪些瑞安塘下做网站的公司
  • 辽宁pc网站建设开发wordpress建站wifi
  • 百度权重查询网站站长网站优点
  • 购买一个网站多少钱网站源码天堂
  • 网站单页面怎么做做网站建设公司crm在线