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

做境外域名网站图怪兽作图神器下载

做境外域名网站,图怪兽作图神器下载,网站建设陕icp,北京市重大项目建设指挥部网站1.扫雷游戏的分析和设计 需要创建3个文件夹 test.c----扫雷游戏的测试 game.c----扫雷游戏的实现 game.h----扫雷游戏的实现 雷的信息使用二维数组存放 • 使⽤控制台实现经典的扫雷游戏 • 游戏可以通过菜单实现继续玩或者退出游戏 • 扫雷的棋盘是9*9的格⼦ • 默认…1.扫雷游戏的分析和设计 需要创建3个文件夹 test.c----扫雷游戏的测试 game.c----扫雷游戏的实现 game.h----扫雷游戏的实现 雷的信息使用二维数组存放 • 使⽤控制台实现经典的扫雷游戏 • 游戏可以通过菜单实现继续玩或者退出游戏 • 扫雷的棋盘是9*9的格⼦ • 默认随机布置10个雷 • 可以排查雷 ◦ 如果位置不是雷就显⽰周围有⼏个雷◦ 如果位置是雷就炸死游戏结束◦ 把除10个雷之外的所有⾮雷都找出来排雷成功游戏结束扫雷的过程中布置的雷和排查出的雷的信息都需要存储所以我们需要⼀定的数据结构来存储这些信息 创建两个数组一个存放雷1是雷0不是雷 第二个数组就存放排查出的雷的信息避免太过混乱 越界访问会导致程序崩溃 把存放雷的数组扩大一圈防止越界上下左右多一行和列 1.使用两个二维数组来实现 2.如果棋盘的大小是99数组的大小就给1111 因为要扩大一圈后的大小就是11*11 3.数组使用字符数组就行 2.扫雷游戏的代码实现 game.h #pragma once#include stdio.h//直接把头文件放在.h文件里面 #include stdlib.h #include time.h #pragma once #define ROW 9//行 #define COL 9//列#define ROWS ROW2//11 #define COLS COL2#define EASY_count 10//简单版本设置的雷为10 //初始化棋盘 void InitBoard(char board[ROWS][COLS], int rows, int cols, char set);//11//打印棋盘 void DisplayBoard(char board[ROWS][COLS], int row, int col);//9//布置雷 void SetMine(char mine[ROWS][COLS], int row, int col);//排查雷 void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col);test.c #define _CRT_SECURE_NO_WARNINGS 1#include game.h//包含自己的头文件就能引用game.h中自己定义的一些条件 void menu() {//打印菜单printf(**********************************************\n);printf(*************** 1 . play ***************\n);printf(*************** 0 . exit ***************\n);printf(**********************************************\n); } void game() {//游戏逻辑 11 * 11char mine[ROWS][COLS] {0};//存放雷的信息char show[ROWS][COLS] {0};//存放排查出的雷的信息//初始化棋盘初始化的是11*11的规格因为最外面的外围要保证咱们得程序不越界InitBoard(mine,ROWS,COLS,0);//把11行11列传过去InitBoard(show, ROWS, COLS,*);//打印棋盘就只打印9*9的部分DisplayBoard(show, ROW, COL);//DisplayBoard(mine, ROW, COL);测试一下//布置雷只在9*9的部分布置雷SetMine(mine, ROW, COL);//把雷放到mine数组内因为mine数组就是存放雷的信息的数组//DisplayBoard(mine, ROW, COL);//排查雷在9*9的部分排查雷FindMine(mine,show,ROW,COL); }void test() {int input 0;//这个变量必须放外面如果放里面的话//每次循环进行就会将input重新赋值为0srand((unsigned int)time(NULL));//要包含头文件使rand产生随机值就是产生随机的雷do{menu();//打印菜单printf(请选择:);scanf(%d,input);//判断输入的值switch (input){case 1:game();//输入1之后进入游戏printf(扫雷\n);break;case 0:printf(退出游戏\n);break;default://输入错误printf(选择错误重新选择\n);break;}}while (input);//一直玩的情况玩完一把接着玩输入input,是1就接着玩}int main() {test();return 0; }game.c  #define _CRT_SECURE_NO_WARNINGS 1#include game.h//包含自己的头文件 //初始化棋盘规格是11*11 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;//想初始化什么就初始化什么初始化的值就是传过来的字符}} }//只打印9*9 //打印棋盘 void DisplayBoard(char board[ROWS][COLS], int row, int col) {printf(温馨提示);printf(在输入数据的时候不要输入逗号\n);printf(应该在输入一个坐标值后按一下空格\n);printf(再输入另一个坐标值\n);printf(不听话你就等着出乱码吧\n);printf(--------扫雷-------\n);int i 0;for (i 0; i col; i)//从0开始保证对其{printf(%d , i);//打印列数}printf(\n);for (i 1; i row; i)//为什么从1开始因为最外围有一圈是空的为了防止越界{printf(%d , i);//打印行数int j 0;for (j 1; j col; j){printf(%c , board[i][j]);}printf(\n);//打印完一行就换行}printf(--------扫雷-------\n); } //布置的雷是在棋盘上随机的找啊10个坐标布置的 void SetMine(char mine[ROWS][COLS], int row, int col) {int count EASY_count;//给出雷的个数每布置一个雷就减少一个雷int x 0, y 0;while (count)//当count为0的时候就不再进入循环了雷已经布置好了{//x,y生成的坐标范围都是1~9x rand()%row1;//行y rand()%col1;//列//如果这个坐标已经放雷就不需要重复放雷如果没放就放雷if (mine[x][y] ! 1)//如果这个位置不是字符一{mine[x][y] 1;//就放一个字符一//布置一个雷count--;//减少一个雷}} } //1-01, 1的ASCLL值是49 // 2-02 //统计周围雷的个数 int Get_Mine_Count(char mine[ROWS][COLS],int x,int y)//返回雷的个数 {//将你输入的坐标周围的8个坐标的原有的字符相加起来这些原有的字符可能是1或者是0//有雷或者没有雷//第一种写法/*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;//坐标上面的值减去字符0就是他们坐标上面有的数字//在你输入的坐标周围总共有8个坐标所以直接8*0*///第二种写法使用循环的方式int i 0,count0;for (i -1; i 1; i){int j 0;for (j -1; j 1; j){countmine[x i][y j] - 0;//因为你输入的坐标不是雷所以将他加进去也无所谓//要排查周围雷的信息//将这8个坐标上的字符数字累加在count内}//mine[x i][y j]随之i和j的变化模拟了你输入的坐标周围的8个坐标的值}return count; }//排查雷思路 //1.输入一个坐标 //2.判断这个坐标是否越界 //3.判断这份位置是否是雷 //如果是雷就炸死 //如果不是雷就统计这个周围雷的个数显示出来 void FindMine(char mine[ROWS][COLS], char show[ROWS][COLS], int row, int col) {int x 0, y 0;int win 0;while (wincol*row- EASY_count)//总共的方格数-雷的数量直到这个值为0是不会停下的除非你提前踩雷了{printf(请输入排查的坐标);scanf(%d %d, x, y);if (x 1 x row y 1 y col)//输入的坐标是合法的{//接下来就判断这个坐标上面是不是雷if (mine[x][y] 1)//输入的位置是雷{printf(很遗憾你踩雷了游戏结束);DisplayBoard(mine, ROW, COL);//让玩家死得瞑目知道雷的位置break;//让循环停下来}else//输入的位置不是雷我们就要统计这个坐标周围的8个坐标雷的数量{int count Get_Mine_Count(mine, x, y);//统计类雷的个数//将算出的雷的数量放到show数组show[x][y] count 0;//转化为字符放到数组里面DisplayBoard(show, ROW, COL);//打印show数组内的信息//不是雷的话win;//}}else{printf(输入的坐标有误x(1~9),y(1~9),应该重新输入);}}//如果我们把所有不是雷的位置都排查完了那我们排雷就成功了if (win row * col - EASY_count)//所有的雷都被排完了{printf(恭喜你排雷成功了);//把雷的信息打印出来DisplayBoard(mine, ROW, COL);} }3.扫雷游戏的拓展 是否可以选择游戏难度 简单9*9棋盘,10个雷 中等16*16棋盘40个雷 困难30*16棋盘99个雷 点开一个坐标周围不是雷的就都显现出来了 在线扫雷游戏扫雷游戏网页版 - Minesweeper
http://www.dnsts.com.cn/news/155352.html

相关文章:

  • 三网合一的模板网站辽宁省网站备案要求
  • 网站设置301解除移动屏蔽湘潭网站定制
  • 网站 前台 后台重庆造价工程新希望官网
  • 哈尔滨网站建设公司名字wordpress404模板
  • 网站建设xs029如何在linux下安装wordpress
  • 网站建设新际国家骨干高职院校建设网站
  • 学做ppt推荐网站seo优化找stso88效果好
  • flash素材网站网络工程师和做网站哪个难
  • 网站能查到从哪里做的吗母婴产品网站模板
  • 如何建设网站论文文献asp. net 做网站
  • 北京政平建设投资集团有限公司网站服装服饰设计网站
  • 免费申请httq网站?wordpress cdn 规则
  • 免费模板素材网站有哪些漳州网站建设
  • wordpress怎么搜站点合肥app开发费用
  • php网站开发技术论文网站关于我们页面设计
  • 网站vps网站宣传册怎么做
  • 寻求南宁网站建设人员网站被跳转公告怎么写
  • 做自适应网站下载网站模板
  • 做计算机网站的总结域名链接网站
  • 6网站建设做网站网易邮箱网页版
  • 网站建设与维护税率制作平台网站费用
  • 自己做的产品在哪个网站上可从卖德国 网站后缀
  • 网站建设合同 技术合同最早做网页的公司
  • 驻马店营销型网站建设优化推广网站底部怎么修改
  • 郑州加盟网站建设服装设计软件有哪些软件
  • 做电子请柬的网站前端开发培训找不到工作
  • 找人做网站维护多少钱wordpress 当前分类文章数
  • 网站开发音乐新工商名录
  • 分析北师大教育学原理网站建设wordpress 新建用户
  • 做个视频网站网站备案幕布下载