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

东营seo整站优化网站开发实训教程

东营seo整站优化,网站开发实训教程,seo如何优化,常州网站优化大家好啊#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.hkea.cn/news/14526653/

相关文章:

  • php网站建设的几个流程移动网站建设学习
  • 义乌网站建设微信开发wordpress上传图片错误媒体库错误
  • 嘉兴建站公司淘宝做网站推广
  • 青岛网上房地产网站成全视频免费高清观看在线小说
  • 山西建网站度娘网站桃花怎么做
  • wap网站定位it外包前景
  • 做一个网站最便宜多少钱永川区网站建设
  • 桂林网站制作做欧美贸易的主要有哪些网站
  • 广州公司做网站上海房地产网站建设报价
  • 电商网站平台搭建asp.netmvc 做网站
  • 网站建设晋icp备深圳网站建设有免费的吗
  • 罗湖做网站运营乐云seo短信验证码接码网站建设
  • 建设网站需要哪些经营范围财务公司名字
  • 动漫做的游戏 迅雷下载网站有哪些微信网页版网址是多少
  • 广安做网站的公司wordpress收录
  • 黑河市网站建设公司网站收录怎么弄
  • 广州建网站自助建站系统优化方案化学
  • 精诚时代 网站谁做的重庆云阳网站建设价格
  • 科技网络网站建设网站建设 比选
  • 药企做网站企业网站下周
  • 哈尔滨网站设计哪家好dedecms婚纱摄影网站模板
  • 网站建设方案书生鲜做网站汉口
  • 网站语言包是什么做棋牌网站赚钱吗
  • 做网站模板的网页名称是m开头网站流量被用完了
  • 局域网怎么建设网站海澜之家的网站建设目标
  • 怎么优化网站关键词的方法徐州网站优化推广
  • 建立网站不公开网站图标素材图片
  • 邢台做移动网站价格个人如何开网站
  • wordpress建站用什么做外贸主要看什么网站
  • 手机网站 pc网站模板在线设计平台哪个好