24点游戏课程设计报告

  • 格式:doc
  • 大小:316.00 KB
  • 文档页数:32

下载文档原格式

  / 32
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1基本功能描述 (2)

2设计思路 (2)

3软件设计 (4)

3.1 设计步骤 (4)

3.2 界面设计 (5)

3.3 关键功能实现 (6)

3.3.1 发牌功能的实现 (6)

3.3.2 计时功能的实现 (7)

3.3.3 计算功能的实现 (7)

3.3.4 验算功能的实现 (9)

4结论与心得体会 (9)

5参考文献 (11)

6思考题 (11)

7附录 (12)

7.1 调试报告 (12)

7.1.1 变量未定义造成的错误 (12)

7.1.2管件类未添加 (13)

7.1.3进度条错误 (13)

7.2 测试结果 (14)

7.2.1在规定时间内完成点击“验算”按钮操作 (14)

7.2.2在规定时间内未完成点击按钮操作 (16)

7.3 关键源代码 (17)

24点游戏课程设计报告

1基本功能描述

24点游戏是一种使用扑克牌来进行的益智的游戏,游戏内容为:从一副扑克牌四个花色的1到K等52张牌中,任意抽取4张牌,运用加、减、乘、除和括号等运算符把牌面上的数进行运算得到24。游戏有不同的版本,其实是对J、Q、和K的处理有所不同。有的版本版本是把J、Q、和K去除,只用1到10来进行游戏;有的版本是把J、Q、和K 当成10;还有的版本是用J表示11,Q表示12,K表示13。此次课程设计采用的是把J 表示11,Q表示12,K表示13,使游戏的四张牌在1~K这13张牌中随机取牌。具体功能如下:

1)对游戏设计三个难易级别,分别为一级、二级和三级。每次开始游戏前可以根据玩家的需要进行难度设置,如若不设置,系统默认难度级别为一级,设置完难度级别之后就可以开始游戏了,单击“开始”按钮,桌面上出现四张翻开的扑克牌,与此同时,游戏开始计时,进度条开始前进。

2)在规定的时间内,玩家可以在“输入结果”的编辑框中输入自己想好的算式,然后点击“验算”按钮:如果输入的算式经运算后所的答案正确,则会弹出“Congregations,答对了!”的窗口;如果输入的数字与给出的牌的数字不符或者符号不合法,则会弹出“Sorry,请输入正确的算式!”的窗口;如果输入的数字与四张牌相符、字符亦合法但是答案不正确,则会弹出“ Your answer is wrong!”的窗口;如果未输入任何的数字和算符,则会弹出“输入不能为空!”的窗口。

3)如果在规定的时间内,玩家没有点击验算按钮,则会弹出“Time Over!”的窗口。

4)在结束本轮游戏后,如果玩家想继续游戏,则可点击“开始”按钮即可重新发牌,开始下一轮的游戏;如果玩家想结束游戏,则可点击“结束”按钮即可结束游戏

2设计思路

24点游戏的具体流程图如下图“图1”所示。下面是对流程图的详细说明。

在游戏开始前有有难度级别设置选项,玩家可以根据自己的实际水平来进行设置。难度级别有三个级别,分别为一级、二级和三级。此三个级别是通过给玩家的思考的时间的长短来区别的,级别越高,可用时间越少。这个难易程度设置不是必选项。如果玩家不设置难易程度,那么系统就默认为难度级别一。

图1 24点游戏程序流程图

按下“发牌”按钮游戏开始,通过调用srand()和rand()函数,桌面上会随机显示出4张

纸牌,这四张牌从1~K这10张牌中随机的调出。与此同时,标识耗时时标的进度条开始前进。计时同步开始(SpendTime++)。通过每隔不同的时间来发送信息来控制三个级别的时间不同。设置了时间限制,如果(m_progress.GetPos()>=100)代表游戏结束,用户没有时间进行思考了,本轮游戏结束,在函数OnTimer()的作用下,会弹出对话“超时!”。

如果用户在限定时间内按下了“验证”按钮,系统会通过对SubCompute()和TotalCompute()两函数的调用进行相应运算,接下来系统调用OnYanSuan()函数对编辑框玩家输入的算式结果进行验算,根据不同的验算情况给出相应的结果。结果分别为:(1)如果玩家在编辑框中没有输入任何数字和算符而直接按下了“验算”按钮,则会弹出“输入不能为空白!”的提示对话框。(2)如果玩家输入的数字与扑克牌给出的数字不符合,则会弹出“Sorry,请输入正确的算式!”的提示对话框。(3)如果玩家输入的数字与四张牌相符、字符亦合法但是计算结果不为24,会弹出“Your answer is wrong!”的提示对话框。(4)如果玩家输入算式经运算后所得答案正确,则会弹出“Congregations,答对了!”的提示对话框。上述任意一种情况下,只要点击弹出框中的“确定”按钮,系统会自动结束此次游戏,接下来可以单击“开始按钮”进行下一轮的游戏或则单击“结束”按钮推出此游戏。

3软件设计

3.1 设计步骤

具体的设计步骤如下:

1)在VC++6.0中,用自己的名字gaoqingzhi建立一个MFC AppWizard(exe)工程,在应用程序类型中选择“基本对话框”,其余的都采用默认选项,即可完成对话框的创建。

2)在对话框中添加4个图像(分别用于四张扑克牌),9个按钮(分别是(、+、—、*、/、)、开始、运算、结束),1个编辑框(输入算式),一个进度条和三个单选按钮(用于选择难度级别)接着根据属性对以上所添加的控件进行属性修改,主要进行重命名,以便编辑源代码的时候区分,另外对图像的处理除了对其进行重命名外还要对其添加位图。之后通过打开C:\WINDOWS\system32打开cards.dll加载Bitmap图片,并选中对其进行重命名。

3)接着对以上添加的控件建立类向导。主要有Add Function、Add Variable和Edit Code 这三项的添加。

4)根据流程图在类的原文件中逐一添加实现各个模块其功能所需要的各种函数,并添加相应的源代码,同时在头文件中添加对各种函数及变量的声明。

5)对编译好的程序进行保存,开始进行调试,边调试边根据报错对原程序进行修改,