- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
题目
24点游戏设计
一、实验目的、内容
1.1程序功能设计:24点游戏是一种常见的纸牌游戏,程序主要负责实现随机发牌、结果验算、计分功能、难度设计和保留历史记录等功能。
1.2运用Microsoft Visual Studio 2005中的MFC应用程序平台,编写C++程序,实现24点游戏的基本功能。达到的具体内容有:
a创建应用程序框架
b创建对话框资源
c添加消息处理程序
d添加成员函数与成员变量
e 扑克牌在对话框中的动态显示
f 正确控制计时器进度条
g操作列表视图控件
h 处理游戏流程(其中包括发牌函数、验算函数、计分函数等编写)
1.3
包含的类:
Head files(头文件)中包含:Expression.h Point24.h Point24Dlg.h Resource.h StdAfx.h Value.h
Source files(资源文件)中包含:Expression.cpp Point24.cpp Point24Dlg.cpp StdAfx.cpp Value.cpp
最主要的是 CExpression类用于验算表达的对错和是对话框类,用于控制游戏流程的CPoint24Dlg类。还有CaboutDlg、CPoint24App、CValue类等。
其中以CPoint24Dlg为基类的有:CEdit,CString,CListCtrl,CComboBox,CProgressCtrl等,用于控制对话框的输入输出变量。
包含的指针:
绘图指针,定义在函数void CPoint24Dlg::OnPaint()中的Cbitmap *OldBitMap,CPaintDC pDC(this),CDC *dc,dcMem等,用于绘制显示对话框中扑克牌位置的矩形框;
更改数据CDataExchange* pDX,CPoint24Dlg中的CWnd* pParent(为NULL), 控制对话框控件是否可用的CWnd *pWnd,菜单指针CMenu* pSysMenu等等。
描述进行的程序设计,采用……进行…, 要达到…内容….应包含有类和指针…
二、实验程序设计及结构
需求分析(功能、类、成员)
程序主要负责实现随机发牌、结果验算、计分功能、难度设计和保留历史记录等功能,创建类,并为类添加成员变量和成员函数才能使控件发挥作于,整个游戏流程运作。
1.1对话框类CPoint24Dlg:
定义的变量:
double m_Result;//储存计算结果
int m_number1,m_number2,m_number3,m_number4;//扑克牌的点数
int m_pattern1,m_pattern2,m_pattern3,m_pattern4;//扑克牌的图案
int Step;//进度条的步进量
int m_score;//当前得分
int m_factor;//分数增量
int count;//题数
BOOL IsStart;//是否开始
LV_ITEM lvItem;//定义列表框的列
定义控件变量
CExpression m_expression;//计算表达式对象
CListCtrl m_list;//列表框控件变量
CProgressCtrl m_progress;//进度条控件变量
CComboBox m_combo;//组合框控件变量
CEdit m_input;//计算式输入编辑框控件变量
CString m_inputs;//储存输入表达式
定义的函数
protected:
void OnCancel();//重载该函数使按Escape无法离开程序
virtual void DoDataExchange(CDataExchange* pDX);
HICON m_hIcon;
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnStart();//发牌
afx_msg void OnInput();//输入计算式
afx_msg void OnCalc();//计算
afx_msg void OnSelchangeCombo();//处理组框选择
afx_msg void OnTimer(UINT nIDEvent);//处理计时器
afx_msg void OnAbout();
DECLARE_MESSAG
文档评论(0)