猜数游戏文档
- 格式:doc
- 大小:421.47 KB
- 文档页数:29
武汉工程大学计算机科学与工程学院综合设计报告设计名称:应用软件综合设计设计题目:基于MFC的3位数猜数游戏学生学号:1205090216专业班级:12计科02学生姓名:魏文钊学生成绩:指导教师(职称):吕品(副教授)完成时间:2014年12月16至2015年1月15 武汉工程大学计算机科学与工程学院制说明:1、报告中的第一、二、三项由指导教师在综合设计开始前填写并发给每个学生;四、五两项(中英文摘要)由学生在完成综合设计后填写。
2、学生成绩由指导教师根据学生的设计情况给出各项分值及总评成绩。
3、指导教师评语一栏由指导教师就学生在整个综合设计期间的表现、设计完成情况、报告的质量及答辩等方面,给出客观、全面的评价。
4、所有学生必须参加综合设计的答辩环节。
凡不参加答辩者,其成绩一律按不及格处理。
答辩小组成员应由2人及以上教师组成。
5、报告正文字数一般应不少于5000字,也可由指导教师根据本门综合设计的情况另行规定。
6、平时表现成绩低于6分的学生,其综合设计成绩按不及格处理。
7、此表格式为武汉工程大学计算机科学与工程学院提供的基本格式(适用于学院各类综合设计),各教研室可根据本门综合设计的特点及内容做适当的调整,并上报学院批准。
答辩记录表成绩评定表学生姓名:学号:班级:目录(以下章节名称为参考)摘要 (I)Abstract (II)第一章课题背景 (1)1.1 设计背景 (1)1.2 主要设计 (x)第二章设计简介及设计方案论述 (x)2.1 设计思路 (x)2.2 设计流程图 (x)第三章详细设计 (x)3.1 MFC主要技术介绍 (x)3.2 游戏界面及对话框设计………..………………………………………………………3.3猜数相关程序设计……………………………………………………………………第四章设计结果及分析 (x)4.1 游戏结果 (x)4.2 游戏分析 (x)总结 (x)致谢 (x)参考文献 (x)附录主要程序代码 (x)摘要该软件在Windows系统上为玩家提供猜数字游戏的基本功能,游戏用户可以在开始游戏时,选择不同数字位数来进行游戏。
当用户选择了适合的位数时,系统会在内部产生对应范围内的随机数,以供用户进行猜测,用户每次猜数字后系统会给出本次猜数字的结果提示,先比较用户猜测数字是否等于系统产生的随机数,若相等则提示用户猜数字成功,然后输出用户猜测的次数和本局游戏所用时间,并根据猜测次数给出评价。
如果用户猜测数字不等于系统产生的随机数,则提示该数字与随机数比较数字的位置与数字的数字相同的个数,并输出比较结果,同时记录当前用户猜测的次数。
直至用户成功猜中随机数或达到猜数所设定的此时。
游戏过程中可根据个人喜好选择退出游戏或重新开始。
关键词(小4号黑体顶格):随机数,猜数字,游戏模块AbstractThe software on a Windows system for gamers to guess the basic functions of digital games, game users can, at the beginning of the game to select different number digits for the game. When the user selects the suitable figures, the system can produce corresponding internally within the scope of the random number, for the user to guess, each time the user guess Numbers after the system will give the guess results suggest, first to compare the user to guess if number is equal to the system to produce random number, if equal to prompt the user to guess Numbers is successful, then output the user guess the number of times and the bureau takes time, and according to the evaluation to guess the number given. If the user guesses number is not equal to system to produce random number, indicates that the position of the figure compared with random Numbers and digital number the same number, and the output results, at the same time guessing the number of records for the current user. To user successfully guess random number or to guess the number set at this time. In the process of the game can choose according to individual be fond of exit game or start again.Keywords(小4号黑体顶格):关键词用小4号Times New Roman字体,每个关键词之间用“;”,结尾没有标点。
第一章课题背景1.1 设计背景猜数字(又称 Bulls and Cows )是一种大概于20世纪中期兴起于英国的益智类小游戏。
一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。
这种游戏规则简单,但可以考验人的严谨和耐心。
猜数字(又称 Bulls and Cows )是一种大概于20世纪中期兴起于英国的益智类小游戏。
一般由两个人玩,也可以由一个人和电脑玩,在纸上、在网上都可以玩。
这种游戏规则简单,但可以考验人的严谨和耐心。
求解猜数字游戏的策略通常有两个目标:一是保证在猜测次数限制下赢得游戏,二是使用尽量少的猜测次数。
第一个目标追求的是最坏情况下的猜测次数最少,第二个目标追求的是平均情况下猜测次数最少。
对于某些数码和数位的规则组合,这两个目标不能同时实现。
例如,对于4个数位、6个数码的 Mastermind 游戏,平均猜测次数最少的策略需要平均 4.340 次,但最坏需要6次猜测;如果限制猜测次数最多为5次,则平均猜测次数最少的策略需要平均 4.341 次。
系统的猜测策略可分为三类:简单策略、启发式策略和最优策略。
下面以标准规则(10个数码,4个数位,不含重复数字)为例,介绍这几类策略。
这些策略也适用于其它规则变体。
这种策略非常直接——每次都猜可能答案中的第一个。
例如,首先猜测1234,如果得到的反馈是 2A0B,那么可能的答案包括1256,1257,5236,等等。
根据简单策略,下一次就猜1256,因为1256是所有可能答案中最小的数字。
简单策略的优点是速度非常快,缺点是所需猜测次数很多。
对于标准规则,简单策略最多需要9次猜测,而平均需要5.560次。
这类策略是猜数字游戏最常用的解法。
其算法步骤如下:a. 首先猜 1234,得到第一个反馈(xAyB)。
b. 从所有数字中,筛选出满足已知反馈的所有可能数字,称之为“可能集”。
c. 对于所有数字(而不仅限于筛选出来的可能集),逐一评估每个数字的“好坏”,并给其打分。
选取得分最高的那个数字猜。
如果有多个数字的评分一样高,则优先选取可能集中的数字。
d. 重复步骤 b-c,直到猜出 4A0B 为止。
显然,启发式策略的重点在于如何评估一个数字的。
为此,人们提出了多种直观的评价指标。
猜数字游戏的最优策略需要由计算机用穷举法获得。
其思路是,由于每次猜测的选择是有限的(因为总共的数字组合个数有限),并且我们知道一定可以在有限次数内猜出所有答案,那么计算机可以穷举所有猜法,从中找出最佳的策略。
1.2 MFC 主要技术介绍1.2.1 MFC介绍MFC,微软基础类(Microsoft Foundation Classes),同VC类似,是一种Application Framework,随微软Visual C++开发工具发布。
该类库提供一组通用的可重用的类库供开发人员使用。
大部分类均从CObject 直接或间接派生,只有少部分类例外。
MFC 应用程序的总体结构通常由开发人员从MFC类派生的几个类和一个CWinApp类对象(应用程序对象)组成。
MFC 提供了MFC AppWizard 自动生成框架。
此外MFC的部分类为MFC/ATL 通用,可以在Win32 应用程序中单独包含并使用这些类。
Visual C++ 不仅仅是一个编译器。
它是一个全面的应用程序开发环境,使用它充分利用具有面向对象特性的 C++ 来开发出专业级的 Windows 应用程序。
为了能充分利用这些特性,必须理解C++程序设计语言。
掌握了C++,就必须掌握 Microsoft 基本类库 (MFC) 的层次结构。
该层次结构包容了Windows API 中的用户界面部分,并能够很容易地以面向对象的方式建立Windows应用程序。
这种层次结构适用于所有版本的Windows 并彼此兼容。
用MFC所建立的代码是完全可移植的。
MFC 是一个很大的、扩展了的 C++ 类层次结构,它能使开发 Windows 应用程序变得更加容易。
MFC是在整个Windows家族中都是兼容的,也就是说,无论是Windows3.x、Windows95还是 Windows NT,所使用的 MFC 是兼容的。
每当新的 Windows 版本出现时,MFC 也会得到修改以便使旧的编译器和代码能在新的系统中工作。
MFC 也回得到扩展,添加新的特性、变得更加容易建立应用程序。
与传统上使用 C 语言直接访问 Windows API相反,使用 MFC 和 C++ 的优点是 MFC 已经包含和压缩了所有标准的"样板文件"代码,这些代码是所有用 C 编写的 Windows 程序所必需的。
因此用 MFC 编写的程序要比用C语言编写的程序小得多。
另外,MFC所编写的程序的性能也毫无损失。
必要时,你也可以直接调用标准 C 函数,因为 MFC 不修改也不隐藏 Windows 程序的基本结构。