基于Qt的24点游戏的设计与实现
[关键词:Qt,24点游戏] [热度 ]提示:此毕业设计论文完整版包含【论文】 作品编号:rjgc0126,word全文:44页,合计:16000字 |
设计目的
经过此游戏的设计,综合所学专业相关理论知识,设计并开发24点游戏,借此熟悉应用系统的开发过程,培养动手的能力,检验学习成果及独立思考的能力,初步掌握基础的编程知识,和软件工程的相关系统理论,进一步巩固和加强自身对C++基础知识的理解,提升自己的编程水平,最终达到理论和实践相结合的目的。
求算24点是一极为有趣大众智力游戏,深得很多人的喜爱。玩法是:把一副扑克牌均分成两份,两个人各持一份进行游戏,没人随机抽取两张出来组成四张牌,把四张牌加减乘除能够采用括号来凑成结果二十四,先算出来的一方赢得对方的两张牌,然后再进行下一轮。如果都没算出结果为和局,直到把对方的扑克牌全部缴获,游戏结束。此游戏说来简单,就是利用加减乘除以及和括号将给出的四个数组成一个值为二十四的表达式,但同时因为其中也有一些趣味问题的存在而使得该游戏历久不衰。本文就介绍利用Qt creator集成开发环境来开发该游戏的全过程。
......
系统模块分析
概要设计的核心问题是确定系统总体结构和模块划分。系统功能要层层划分,直到每一个模块能够作为一个能够执行的程序单元为止。功能模块划分的最终结果,是系统结构图。根据需求分析,该游戏可划分为数据读取模块(包括发牌功能),卡牌牌面计算模块即组合模块,积分计算模块,时间管理模块,数据库模块。
数据读取模块:其主要功能是读取源文件中的卡牌的图片原件,然后进行显示,读取牌面的数据之后,系统将牌面的数据传给计算模块。也可经过发牌功能重新随机读取牌面来进行刷新操作。
牌面计算模块:接受来自数据读取模块,经过相关算法对数据进行组合求得所需要的结果,如果穷举结束后没有得到想要的结果则该牌组不符合要求。
积分模块:顾名思义,对用户所答得题目正确数量进行累计,答对一道得二分,答错一道或此道题的时间消耗完,扣一分,初始分数为零。并在界面上进行显示。
时间管理模块:设置每道题的最大消耗时间,超出时间默认答错,扣除相应的分数。答对题目则在刷新题目的同时对时间也进行刷新,从头计算。
......
发牌界面模块
发牌模块位于整个布局的上半部分,采用的是水平布局的布局格式。前4个widget为四张放置牌面的Label类的实例对象通过Label中的setPixmap()方法来对牌面进行设计,因为提前将牌面的图片途径设置为Qt中的字符串类型并且用一个随机函数对各个牌面随机进行设置,以此作为其右侧发牌按钮的槽函数,通过发牌按钮的信号机制来最终实现发牌功能。此外还通过两个标签类的实例化对象来记录分数,此功能与24点游戏的计算的模块以及记录消耗时间的模块有紧密的联系,时间消耗完之后,通过标签类的set Text方法来扣除相对应的分数,再有就是经过游戏计算模块的确定计算正确后增加分数,计算错误后扣除分数。
游戏计算模块
游戏的计算模块位于24点游戏主界面的左下方,利用的是网格布局来进行布置,实际上实现的就是一个带有括号的计算器的功能,能够进行基本的四则运算。操作符以及操作数的显示是在一个单行编辑文本框里边进行展示的,在后台对将对输入的字符进行存储作为一个中缀表达式的数组,通过一个栈来模拟操作符进栈和出栈,通过一个函数来转化成一个后缀表达式并存入另一个字符数组。然后利用另一函数对后缀表达式进行运算和相对应的栈的操作,得出的结果与24进行比较,最后通过弹出框来输出相应的结果。这个模块是整个游戏的核心模块,而其中的通过栈来模拟四则运算,即中缀表达式转为后缀表达式,也称为逆波兰式,是重中之重,应该作为工作的重心来解决由此带来的各种疑难问题来从而到预期的效果。以下截图为操作计算模块的到的运算结果......
提示:此毕业设计论文完整版包含【论文】 作品编号:rjgc0126,word全文:44页,合计:16000字 |
本软件工程毕业设计论文作品由 毕业论文设计参考 [http://www.qflunwen.com] 征集整理——基于Qt的24点游戏的设计与实现(论文)!