一个用VC++开发的学习游戏.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一个用VC++开发的学习游戏.doc

一个用VC++开发的学习游戏   摘要:在学习的过程中,兴趣是十分重要的因素。作为教师,我们应该考虑如何让学习变得更有趣。对许多学生而言,游戏是十分有趣的,假如我们能够在游戏中学到我们所要学的东西,将是令人兴奋的。在该文中,我们将提供一个小游戏,它能使学生在游戏的同时,掌握他们应当学会的知识。   关键词:游戏;局域网;套接字   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)28-6311-06   1 设计目标   1)游戏设计为在局域网中的两台计算机上进行单项选择题的答题比赛,为了使游戏生动有趣,界面中应具有动画元素,采用昆虫从左至右爬行时到达的位置,指示双方的积分状况。   2)游戏双方各设置50道单项选择题,可以在游戏的任何一方看到另一方的积分,积分规则为答对一题加10分,积分首先达到500分的一方胜出。   3)游戏采用VC++,Window7/ Visual Studio 2008平台开发,利用套接字(Socket)技术实现局域网中的信息传递。   2 模块设计   本游戏共由三个模块组成,它们分别是:1) 管理模块。2) 界面模块。3) 通信模块。下面分别对这三个模块的设计要点进行说明:   2.1 管理模块   在工程中,我们设计了一个CManage类,该类为C++类(普通类):   class CManage   {   public:   CString zqda[50]; //该数组存放正确答案   CString da[50]; //该数组存放玩家选择的答案   CString GetShiTi(); //该方法实现试题文件的打开、内容读取及关闭   void GetZqDaan(); //该方法实现答案文件的打开、内容读取及关闭   int GetJiFen(); //该方法返回玩家积分   ……   };   其中,GetJiFen方法的代码如下:   int CManage::GetJiFen()   {   int jifen=0;   for(int i=0;i50;i++)   {   if(zqda[i]==da[i]) //将正确答案与玩家输入的答案进行比对   jifen+=10; //如果两个答案相符,则加10分。   }   if(jifen=0)   jifen=0;   return jifen;   }   在对话框类中定义CManage对象(以服务器端为例):   class CTazhiServerDlg : public CDialog   {   ……   CManage mng;   ……   };   试题和正确答案分别放在文本文件ExamPaper.txt和Answer.txt中,通过GetShiTi方法读取试题内容,在编辑控件中显示,通过GetZqDaan方法读取正确答案,存放在zqda[50]中,通过对话框类的JifenCntSend方法从网格控件中读取玩家选择的答案,存放在da[50]中。   2.2 界面模块   2.2.1 服务器端界面   创建一个基于对话框的工程,并在对话框上添加控件,如图1及表1所示:   2.2.2 客户端界面   创建一个基于对话框的工程,并在对话框上添加控件,如图2及表2所示:   2.2.3 动画效果   我们利用计时器函数和BitBlt( )函数在对话框上显示动画,通过位图的交替显示实现昆虫爬行的两个分解动作,从而实现昆虫爬行的动画效果。首先需要在工程中导入下列位图:   在工程中添加计时器函数,计时器函数代码:   void CTazhiServerDlg::OnTimer(UINT nIDEvent)   {   CClientDC dc(this);   bjBitmap.LoadBitmap(IDB_MAPBK1);   kcBitmap.LoadBitmap(IDB_MAPKC1);   bjBitmap.GetBitmap(bjBMPstruct); //获取背景位图尺寸   kcBitmap.GetBitmap(kcBMPstruct); //获取昆虫位图尺寸   CDC *pMemPicture=new CDC; //定义CDC对象pMemPicture→CreateCompatibleDC(dc);   CDC *pMemBuffer=new CDC; //定义CDC对象   pMemBuffer→CreateCompatibleDC(dc);   px1=20+pxbuf; //昆虫的显示位置,代表对方的积分状况   px2=20+mng.Get

文档评论(0)

lmother_lt + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档