首页 / 软件开发 / C++ / 用VC++编写扫雷游戏
用VC++编写扫雷游戏2010-09-18首先分析扫雷的最基本功能。点击鼠标左键于未知区域,如果未知区域有雷,游戏停止,显示所有的地雷。如果没雷,则显示周围雷数,如果周围没雷,则再查看周围八个区域是否有雷直到有雷为止并显示,这其实是一个递归过程。点击鼠标右键于未知区域,则将其置为有雷而不管是否真的有雷。可选择初、中、高三级并可自定义雷数和区域大小。雷区上部左侧显示总雷数减被标明有雷区域的数目。雷区上部中间位置显示一按钮用于开局和显示鼠标动作的结果。雷区上部右侧显示扫雷的时间。将雷全部扫清后,则显示一对话框将你的姓名记入排行榜。以时间排序。为完成上述功能,应用Visual C++的具体技术细节如下:1. 应用AppWizard创建基于SDI的应用程序CBombApp,去除打印和状态条支持,在资源编辑器中修改菜单和相应的加速键,使其与Windows扫雷游戏一致。具体为开局(ID-GAME-BEGIN)、初级(ID-GAME-JUNIOR)、中级(ID-GAME-MIDDLE)、高级(ID-GAME-SENIOR)、自定义(ID-GAME-CUSTOM)、颜色(ID-GAME-COLOR)、英雄榜(ID-GAME-SORT)、退出(ID-GAME-EXIT)、帮助(ID-HELP)。2. 在资源编辑器中对应于雷区的每个小区域的13个属性。用画笔或其他绘图工具绘制出相对应的13个10乘10的16色小位图,三个对应于小人表情的20乘20的16色小位图,供更换颜色时使用的一套与前16个对应的单色位图,显示时间和雷数的0~9十个数字位图(底色为黑色)。定制CUSTOMER对话框,内含三个静态文本控件和三个编辑控件,三个编辑控件分别对应成员m_iRowNum,m_iColumnNum,m_iBombNum。该对话框用于定制雷数,行列数,其相应的MFC类为CCustomer。定制SORT对话框,内含九个静态文本控件,其中六个显示排行榜的姓名和时间,其对应的MFC类为CSort。定制INPUT对话框,内含一个静态文本控件和一个编辑控件,编辑控件用于在游戏成功结束时输入姓名,其对应的MFC类为CInput。3. 定义类Bomb,封装每颗雷的相关属性。Class Bomb
{
public:
int isbomb;//决定初始时是否是雷
bool issel; //判断区域是否被处理过且周围有雷
bool isdone;//判断递归时是否被处理过
int num; //周围雷数
bool findbomb; //排雷者认为是雷时置一(但是不一定真是雷)
} ;