用MFC完成一个简单的猜数字游戏: 输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

时间:2022-03-10 21:25:18

最近学习了MFC一些比较基础的知识,所以打算通过做一个简单的数字游戏来理解MFC的流程并进一步熟悉其操作。

在这里,我做了一个猜数字的小游戏。第一步当然是设计主界面,先给大家展示一下游戏界面:

主界面:

用MFC完成一个简单的猜数字游戏:  输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

从这个主界面可以看到,它包含标题,菜单栏,工具栏。

标题是给人一个认识,这是什么游戏,标题设置为:“猜数游戏”;

而菜单栏和工具栏才是游戏的核心,它要保证能够完成游戏的基本功能。

菜单栏和工具栏是对应的,包含了”start“,"help","restart"这三个菜单响应。很明显”start“和"restart"这两个实现的是”开始游戏“和”重新开始游戏“;help是描述游戏规则。

点击”help“或者带有蓝色问号的图标,即可以读取关于游戏的信息,在这里我采用的是显示对话框来表达:

用MFC完成一个简单的猜数字游戏:  输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

对话框显示猜数字游戏的规则,即输入四个不重复的数字,点确定按钮后结果显示在输出结果中。

输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。如果九次仍未猜中,则游戏结束。

点击确定后回到主界面。

所以,现在最主要的是"start"要实现游戏的功能,我们可以先自己在纸上设计游戏开始界面的大致模式。这个模式主要是指:游戏的输入参数,游戏的输出参数等等。

在这个过程中,我是根据需要实现的功能,先用C语言完成并进行测试。然后根据程序中的参数,自己设计一个比较清晰,便于用户操作的游戏开始界面。

用MFC完成一个简单的猜数字游戏:  输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

根据对话框中的一些静态文本提示,可以知道我们只需要在”输入四位数:“后的文本框中输入四个不重复的数;点击“确定”按钮后,其他文本框会根据编好程序的运行结果进行显示。

记得在做测试时,一定要考虑所有可能出现的情况:如用户本身输入的四位数有重复,我们要提示他重新输入,即显示下面的画面:

用MFC完成一个简单的猜数字游戏:  输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

现在来分析游戏的输出参数有:”输出结果“----描述格式为*A*B,如游戏规则中描述的;

”尝试次数“---代表猜的次数,因为游戏中最多限9次,这有提醒用户的作用,也从一定程度上反映用户的能力;

”游戏耗时“可以作为游戏水平的另一个指标”;

”正确答案“---有些用户玩到一半不想继续,或者游戏失败后,想看正确答案,则只需点击该按钮;

“历史记录”---是记录猜过的数以及与其对应的输出结果。

用MFC完成一个简单的猜数字游戏:  输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

当然这个正确答案是由程序随机产生的,每次产生有不一样,且四位数是不重复的。

接下来,我们就尝试玩一下这个游戏,顺便测试游戏成功或者失败后有什么指标可以参考:

用MFC完成一个简单的猜数字游戏:  输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

可以看出,历史记录中会记录每次输入的四位数以及它们的结果,目前尝试的次数为9,用时47s,但是还没有猜出来,则显示“很遗憾游戏失败!”对话框。

用MFC完成一个简单的猜数字游戏:  输入的四位数中,位置和数字都正确为A,数字相同而位置不同的为B。

而现在这个操作,显示出“4A0B”即为成功,尝试次数为3,用时15s,并提示“祝贺你成功了!”。

如果你想继续玩,则点击“restart”,又可以重新游戏。

总而言之,这个游戏是比较简单的,涉及到MFC的菜单栏,工具栏,对话框,文字输出以及一些控件处理,当然还有一些地方做的不是很完美或者还有其他的功能没有,

但是关键在于掌握一个比较完整的MFC流程,以及在实现过程中各个模块的整合与一些细节处理!