基于任务驱动的MFC游戏的设计与实现
2016-11-12陈惠娥
陈惠娥
(广东技术师范学院天河学院,广东 广州 510540)
基于任务驱动的MFC游戏的设计与实现
陈惠娥
(广东技术师范学院天河学院,广东 广州 510540)
文章介绍了一款综合了复杂的设计,包含视觉(图像)、听觉(声音)和软件设计等方面的游戏产品,24点游戏是运用扑克牌进行计算的益智类游戏。游戏的设计需要多方合力,包含对实际软件项目的分析、设计、编码、测试,编写系统使用说明等工作。基于任务驱动开发的24点游戏不仅体现了学生应用MFC结合穷举法编程的能力,还充分调动了其学习的主动性与积极性。
任务驱动;24点游戏;MFC
1 基于任务驱动的24点游戏的设计
1.1 任务驱动的内涵
任务驱动教学法是以实验性、实践性与操作性较强的教学为内容的教学方法[1]。也是以能够激发学生学习动机与好奇心的情景为基础,以与教学内容紧密结合的任务为载体,使学习者在完成特定任务的过程中获得知识与技能的一种教学方法[2]。
在电子信息高速发展的时代,游戏已成为我们休息之余选择的一种娱乐方式。随着科技的进步与更新换代,极其需要小组协作的游戏开发团队以及高端游戏人才。实践显示,任务驱动下24点游戏的设计与实现能够提高小组协作开发游戏的能力,综合应用微软基础类库(Microsoft Foundation Class,MFC)编程的能力。
1.2 任务驱动下24点游戏的设计
游戏的功能实现是由系统随机发出不同的扑克牌,根据扑克牌的点数指代不同的数字,按照实际数值进行24点运算,同时要求实现的控制功能是计算表达式、计时等功能。总的说来,就是从一副扑克牌中抽去大小王剩下52张,随意抽取4张牌,并且每张牌仅用一次,把牌面上的数运用加、减、乘、除和括号等进行运算得出24,其中J,Q,K都当成数字1来运算。根据这些要求,以24点游戏为任务主线,进行组内任务分配,并对分析、设计、编码、测试等任务环节进行设计,引导学生顺利完成各任务。
1.3 穷举算法的分析
24点游戏的核心算法思想就是穷举法,所谓穷举法就是列出4个数字加减乘除的各种可能性,包括括号的算法。
要实现24点的算法,需要将表达式归为3种情况,无括号的简单表达式、有一个括号的简单表达式、有两个括号以上复杂的表达式。穷举的开始需要对给出的4个数进行排列,其可能的种数为4×3×2×1=24,可以利用一个嵌套函数实现4个数的排列。
2 基于任务驱动的24点游戏的实现
将基于任务驱动的小组协作思想与24点游戏的实践过程相结合,其实施一般可分为任务设计、任务实施和测试与评价等3个阶段。
2.1 任务设计阶段
任务的设计是任务的起始阶段,是整个游戏项目的核心环节。其设计的好坏,直接影响着项目的实现。
(1)用户需求分析。24点游戏系统应该提供简单、层次关系明了、清晰的操作界面,满足用户的使用,尽可能地为用户操作提供方便。用户界面是用户与计算机信息系统之间传递、交换信息的媒介,是用户与计算机信息系统进行交互的唯一途径。
通过用户界面,用户向计算机系统提供命令、数据输入信息,这些数据经过计算机信息系统处理后,又通过用户界面将处理的结果返回给用户,另外,在处理的过程中,用户也可以通过用户界面干预计算机系统的数据处理。较之于文字界面表达不够清晰,且还需要操作人员正确无误地记忆操作命令等因素,本系统采用清晰、易懂的图形界面。
(2)任务总体设计思路。任务的设计要有明确的目标,只有任务明确、编排合理方能达到预期的效果。24点游戏设计的总体思路为开始—发牌—算法计算—显示结果—退出等功能模块。根据系统功能模块,需要通过不同控件实现它们各自相应的功能。
开始模块:开始游戏,需要调用多种函数,进行加载背景图片。
退出模块:退出游戏,需要调用OnCancel()函数。
计算模块:对表达式进行计算,判断结果。其流程如图1所示。
图1 流程图
(3)依据任务合理分组。协作小组是协作学习的基本组织形式,包括小组划分、成员角色扮演、任务分配等。协作小组依据学习者的个性倾向、个性差异而组建,每个学生的价值相互依存,相得益彰,人尽其才,在合作组中发挥其独特作用[3]。24点游戏设计的任务主要包括客户端代码编写,程序框架设计和服务端代码编写,软件测试及调试,撰写使用手册与游戏规则。依照任务需要安排4~6人为一组,并按照“组内异质、组间同质”的原则进行分组,充分发挥组内优势互补,并选出一名组长负责任务的协调工作。
2.2 任务实施阶段
任务实施是小组协作活动的重要体现。在此过程中同时需要教师的指导与监督。在该阶段,需要进行如下工作。
(1)界面设计。需要添加控件,如打开---IDC_Start—调用OnStart函数,计算---IDC_Calculate—调用OnCalculate函数,显示结果---IDC_Show—调用OnShow函数,退出--IDC_Exit—调用OnExit。
除了对各个控件关联变量以及消息响应函数,还要对对话框类进行消息响应函数的关联,所以需要用到WM_ TIMER消息响应函数OnTimer()函数来实现这项功能,将对话框类进行该消息响应函数的关联并书写程序。
(2)开始模块任务的实施。将其中4个按钮修改成位图、透明样式,以便加载图片m_button[0]=(CButton *)GetDlgItem(IDC_BUTTON11);依次为m_button0-m_ button3,获取id为IDC_BUTTON11- IDC_BUTTON14。并加载了m_bitmap[0]- m_bitmap[12]共13张纸牌图片,LoadBitmap(IDB_BITMAP1)- LoadBitmap(IDB_ BITMAP13),同时加载了一张背景图片。
(3)计算判断模块任务的实施。计算判断模块是此程序的核心模块,主要调用OnCalculate函数实现相应的功能。首先判断表达式的值是否为空,if(m_m2==""),需要调用消息框输出函数,如AfxMessageBox("Sorry! 表达式不能为空! ");该函数处理表达式为空的结果。如果表达式的判定结果为24,如if(result==24),则调用消息框输出计算正确的处理结果,如AfxMessageBox("计算结果是:24 n恭喜你!答对了! ");同时让开始按钮起作用,GetDlgItem(IDC_start)->SetWindowText("继 续")。
否则,再次调用消息框输出错误判定结果,如AfxMessageBox("你的计算结果是:“+sresult+” 很遗憾! n你错了!");让表达式再次获得焦点,以便再次获取值进行计算,如GetDlgItem(IDC_biaodashi)->SetFocus()。
2.3 测试与评价
24点游戏即“巧算24点”是一种数学游戏,游戏方式简单易学,能健脑益智,是一项极为有益的活动,较之于传统习惯鼓励个人的评价方式,积极采用“个人评价+小组集体评价”结合的新形式,大力提升了教学与实践效果,依据任务构建了良性制约和评价机制,有利于促进学生的小组协作能力的提升以及个人解决问题的能力提升。
3 结语
任务驱动的教学方法创新了学习思路与学习方式,尤其适合程序设计中课程设计的教学与实践。通过在24点游戏程序设计的应用实践表明:该方法有助于提高小组协调能力,沟通交流能力,积极调动学生的主动性与积极性,提高学生团队协作精神等方面起着积极的作用。由此可见,该教学模式可以广泛应用于其他实践性较强的课程中,通过任务驱动的“小组协作”形式,能够有效提升学生的综合应用开发以及团队协调合作能力。
[1]钟柏昌.任务驱动教学的反思与重塑[D].南京:南京师范大学,2004.
[2]郭绍青.任务驱动教学法的内涵[J].中国电化教育,2006(7):57-59.
[3]吴海花,王连山.计算机软件项目教学改革的实践与探索—基于“任务驱动”的小组协作教学模式[J].考试周刊,2009(23):11-12.
[4]孙鑫.VC++深入详解[M].北京:电子工业出版社,2012.
[5]杜青.VC++.NET(2008)课程设计经典案例[M].北京:清华大学出版社,2012.
[6]明日科技.Visual C++从入门到精通[M].3版.北京:清华大学出版社,2012.
Design and implementation of MFC game based on task driven
Chen Hui'e
(Tianhe College of Guangdong Polytechnic Normal University,Guangzhou 510540,China)
A game consists of complex product design including the vision(image),acoustic (sound)and the software design,etc is introduced in this paper.24 points is a kind of puzzle games using the poker game to calculate.Game design requires many resultant force,including the analysis of the actual software project,design,coding,testing and writing system work instructions,etc.24 point game developed based on task driven not only embodies the students' ability of application of MFC(Microsoft Foundation Class)programming combined with exhaustion method,but also gives full play to the initiative and enthusiasm of learning.
task driven;24 point game;MFC
陈惠娥(1984—),女,广东茂名。