人工智能扫雷课程设计报告

人工智能扫雷课程设计报告

ID:12393667

大小:130.00 KB

页数:14页

时间:2018-07-16

人工智能扫雷课程设计报告_第1页
人工智能扫雷课程设计报告_第2页
人工智能扫雷课程设计报告_第3页
人工智能扫雷课程设计报告_第4页
人工智能扫雷课程设计报告_第5页
资源描述:

《人工智能扫雷课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、人工智能project报告目录1.自动扫雷…………………………………………………………3需求分析…………………………………………………………3游戏规则…………………………………………………………3扫雷游戏设计……………………………………………………3自动扫雷设计……………………………………………………5用户手册…………………………………………………………5运行结果…………………………………………………………6结论………………………………………………………………7主要算法代码……………………………………………………7141自动扫雷1.

2、问题描述、需求分析扫雷是Windows操作系统自带的桌面小游戏之一,由于其规则简单,长期以来一直受到电脑用户的欢迎。自动扫雷是开始扫雷后根据扫雷规则利用计算机进行扫雷。开始棋局,单击第一个按钮,因为执行第一个动作时所有按钮是雷的概率都相等,为了方便起见每次开局后都按下第一个按钮,如果不幸第一个按钮就是雷,那么单击--开始--重新开局。2.游戏规则游戏界面如下图所示,游戏区域是由MXN个格子组成的“雷区”,左上方的数字显示雷区中未被标出的地雷的个数,右上方的数字显示用户从第一次点击开始所用的时间,单位是秒。中间的图标指示游戏的状态(完

3、成:笑脸;失败:哭脸)。用户需要通过鼠标操作来确定雷区中所有地雷的位置:14左键单击:尝试某个格子是否有地雷。如果该格子下有地雷,则游戏失败·如果该格子下没有地雷但其周围八个格子下有地雷,该格子会显示其周围八个格子中地雷的个数;如果该格子下没有地雷且其周围八个格子下也没有地雷,则此处被挖开。右键单击:改变某个格子是否有雷的标志(工)。或左右键同时单击:当该格子周围已标地雷的个数与格子中的数字相同时,则挖开周围的其余格子。当提示该格子周围已标地雷的个数少于格子;143.扫雷游戏设计每个格子有如下几种状态:{MS_NORMAL,MS_O

4、PEN,MS_FLAG,MS_QUEST,MS_EXPLODE}MINESTATUS1)格子类共有变量如下:MINESTATUSm_nStatus;//格子状态intm_nMineNum;//格子周围的雷数,即格子上显示的数字CWnd*m_pParent;//父窗口intm_nX,m_nY;//按下按钮的横纵坐标成员函数14SetStatus(MINESTATUSnStatus)//设置状态GetStatus()//获取状态SetMineNum(intnMineNum)//设置雷数GetMineNum()//获取雷数DrawItem

5、(BOOLbFail=TRUE);//绘制格子2)布雷类共有变量如下intm_nRow,m_nCol;//棋盘有多少行多少列intm_nMineNum;//棋盘上的雷数intm_nX,m_nY;//棋盘的位置intm_nOldMine;intm_aMineTest[9];intm_nMineTest;CMineButton*m_aLandMine[10000];//棋盘CWnd*m_pParent;成员函数Create(intnRow,intnCol,intnMineNum,intnX,intnY,CWnd*pParent);Res

6、et(intnRow,intnCol,intnMineNum);//重新布局ReDraw(BOOLbFail);//刷新棋局LButtonDown(CPointpoint);//左键按下BothButtonDown(CPointpoint);//左键与右键同时按下RButtonDown(CPointpoint);//右键按下MouseMove(CPointpoint,intbBothDown);//鼠标移动LButtonUp(CPointpoint);//左键弹起BothButtonUp(CPointpoint);//左键与右键同时

7、弹起OpenMine(intnCurMine);//开局函数IsSuccess();//判断是否扫雷成功RndBtShdDn(intnCurMine);GetMineNum()//获取棋盘的雷数GetRight(intnCurMine)//获取四邻域的中心点像素正右方像素点的位置GetLeft(intnCurMine)//获取四邻域的中心点像素正下左像素点的位置GetTop(intnCurMine)//获取四邻域的中心点像素正上方像素点的位置GetBot(intnCurMine)//获取四邻域的中心点像素正下方像素点的位置3)布雷算

8、法:首先定义一个n*n的二维数组,该数组的i-1到i+1,j-1到j+1除去i,j本身。值为周围有几个雷。如果该数组的值为10则本身是雷。然后自动生成m个雷,让这m个雷分布在界面上。被选中的值i,j点的值为10,从i-1到i+1,从j

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。