网站大量收购闲置独家精品文档,联系QQ:2885784924

C++ 扫雷程序输出报告.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C扫雷程序输出报告要点

程序输出报告程序设计时使用环境----Win10 VS20151程序设计思路模块化设计一个扫雷游戏。要实现埋雷,计算一个格子周围雷数,打开雷位,显示雷区几个功能.需要以下几个主要数据,判断雷位的雷是否存在,雷位周围的雷数,是否已经被打开,游戏是否结束,雷区大小,布雷量(本程序中非必须保存于类中数据)2功能的具体实现为了方便计算和理解先分出类classOneMine{OneMine(); //雷位构造函数voidInitOneMine();//初始化一个雷位boolIsMine;//是否是雷boolOpened; //是否已经打开shortAroundMines;//周边的雷数friendclassOperation;friendclassMines;};classMines//创建雷区类{boolGameOver;//扫雷是否结束shortRows; //雷区的行数shortCols;//雷区的列数shortMinesCount;//布设雷的数量OneMine *pos[50][50]; //存放雷对象的数组指针public:Mines(); //雷区类构造函数~Mines(); //析构函数friendclassOperation;};classOperation :publicMines//操作类{public:voidReInitMine(shortrow, shortcol, shortmines);//重新初始化雷区voidLayOneMines();//布置一个地雷voidCalculateAroundMine(intx, inty);//计算每个雷周边的雷数voidShowOneMine(intx,inty); //触雷时的执行函数voidShowMine(); //显示未触雷时的雷区情况voidShowAllMine();//触雷时的触发函数voidOpenOneMine(intx, inty);//打开一个雷位};实现埋雷//布一个地雷voidOperation::LayOneMines() //布一个地雷{int m, n;do {m = rand() % Cols + 1; n = rand() % Rows + 1;//随机产生雷位坐标} while (pos[m][n]-IsMine);pos[m][n]-IsMine = true;}PS:rand()函数的输出是依赖于默认输入数据的,需要使用windows.h中的GetTickCount()函数来初始化实现计算格子周围雷数voidOperation::CalculateAroundMine(intx, inty) //计算雷位周边雷数{int mines = 0;for (inti = x - 1; i = x + 1; i++)for (int j = y - 1; j = y + 1; j++)mines = mines + pos[i][j]-IsMine; //利用IsMine数据的特性计算周围雷数pos[x][y]-AroundMines = mines;}实现打开雷位voidOperation::OpenOneMine(intx, inty) //打开一个雷位{if (xCols || x1 || yRows || y1)return;//如果点的位置不在雷区,则返回if (GameOver)return; //如果扫雷结束,则返回if (pos[x][y]-Opened)return;//如果该位置已经打开,则返回if (pos[x][y]-IsMine) //如果该雷位是地雷{ShowAllMine(); //找出所有的地雷,并显示出来coutBOOM!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;GameOver = true;return;}else//如果该雷位不是地雷{pos[x][y]-Opened = true;if (pos[x][y]-AroundMines =

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档