戏等级超过记录等级,还要弹出英雄榜对话框对话。
2 消除相同棋子模块的算法设计
消除相同棋子模块的算法主要分为如下几步:
(1) 当鼠标单击棋子时,保存到棋子坐标及类型到第一次选中变量中。
(2) 得到鼠标第二次选中的棋子坐标及类型。
(3) 比较两次棋子类型,如果相同,转步骤(4)。如果不相同,转步骤(5)。
(4) 画一条连接线,并消除这对棋子,退出等待下一次鼠标选择。
(5) 把鼠标第二次选中的棋子坐标及类型赋值给第一次选中变量。
3 游戏升级模块的算法设计
游戏升级模块的算法主要分为如下几步:
(1) 保存当前游戏等级和限制时间初始值。
(2) 当游戏中的棋子全部被消除完毕时,就把当前游戏等级增加一级。
(3) 把限制时间的初始值减少5秒。
(4) 调用重新开始游戏接口函数。
4 消除提示模块的算法设计
消除提示模块的算法主要分为如下几步:
(1)判断提示次数变量的值,如果等于0,结束。
(2)查找当前棋盘中相同的棋子。
(3)在相同棋盘中,查找可以消除的棋子。
(4)给出提示连线,提示次数变量减少1。
5 棋子换盘模块的算法设计
棋子换盘模块的算法主要分为如下几步:
(1)保存当前棋盘数组中的数据到临时数组中。
(2)循环的从临时数组中,随机取出数据保存到棋盘数组中。
6 英雄榜模块的算法设计
英雄榜模块的算法主要分为如下几步:
(1)读取配置文件,得到并显示当前最高等级及大名。
(2)在用户结束游戏时,比较当前用户等级和最高等级。如果高于配置文件中的最高等级,就弹出英雄榜对话框,要求输入大名,并连同用户的等级保存到配置文件中。
7 音乐播放模块的算法设计
需要在用户选择音乐播放时,把音乐资源载入程序并播放。
8 帮助类模块的算法设计
把相应的对话框资源显示出来即可。
五、项目中所涉及的各个类的UML图
1 主界面对话框类UML图
CLlkDlg
+ *m_p : CChessMan
+ map[MAXX][MAXY] : int
+ m_bStart : BOOL
+ m_nLevel : int
+ m_timePoint : int
+ m_MsgRgn : CRgn
+ m_cmGroup : CPtrArray
+ m_hintNum : int
+ m_exchangeNum : int
+ m_nHighLevel : int
+ m_method : CStatic
+ m_line : CLineStatic
+ m_bkPic : CStatic
# m_hIcon : HICON
# m_main_menu : CMenu
# m_hintP2 : int
# m_hintP1 : int
+ RefreshMap () : void
+ Exchange (map[MAXX][MAXY] : int ) :