当前位置:首页>> >>


基于QT的贪吃蛇游戏设计与实现答辩.rar

收藏

资源目录
    文档预览:
    编号:20180914220935522    类型:共享资源    大小:4.99MB    格式:RAR    上传时间:2018-09-15
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    50
    金币
    关 键 词:
    基于 QT 贪吃 游戏 设计 实现 答辩
    资源描述:
    i基于 Qt的贪吃蛇游戏设计与实现摘要随着社会的发展,人们生活的步调日益加快,越来越多的人加入了全球化的世界。人们不再拘泥于一小块天地,加班、出差成为现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成了必需品。贪吃蛇简单易行、操作方便、娱乐性极强,很好地满足了玩家的需求。本系统开发平台为 Windows7,应用基于 Qt 跨平台的图形用户界面应用程序框架,程序设计语言采用 C++。在系统设计过程中,使用了面向对象的分析、设计方法。完全采用软件工程的方法进行需求分析、总体设计、总体实现和测试。在程序设计中,探讨了用图形框架的方法解决问题,对设计其他图形用户界面具有重要的实际意义。本设计实现了一个简单的贪吃蛇小游戏,该游戏不仅实现了简单的游戏操作功能,还实现了灵活的运作功能,而且具有简洁大方的图文外观。此系统具有良好的界面和必要的交互信息,使操作人员能快捷简单的进行操作,给玩家一个有趣的游戏。关键词 Qt;程序设计语言 C++;贪吃蛇iiSnake game design and implementation based on QtAbstractWith the development of the society, the quickening pace of life, people more and more people joined the globalization of the world.People are no longer limited to a small piece of heaven and earth, overtime, travel inevitably a modern business.At a time when a anywhere entertainment game became a necessity.Snake is simple, easy to operate, entertainment is extremely strong, well meet the requirements of the player.Application development platform for Windows 7, this system is based on Qt cross-platform GUI application framework, using c + + programming language.In the process of system design, using the object-oriented analysis and design method.Completely using the method of software engineering needs analysis, overall design, implementation and testing as a whole.In programming, discusses the method of using graphical framework to solve the problem, the design of other graphical user interface (GUI) has important practical significance.This design implements a simple snake game, the game is not only realize the function of simple operation, and realize the function of flexible operation, and has a concise and easy by appearance.This system has a good interface and the interaction of the necessary information, allow the operator to quick and easy to operate, to give the players a fun game.Key words Qt; C + + programming language; snake目录摘要 ......................................................................iAbstract.................................................................ii绪论 ......................................................................11 嵌入式系统 .............................................................21.1 嵌入式系统 .......................................................21.2 组成 .............................................................21.2.1 硬件层 .....................................................21.2.2 中间层 .....................................................31.3 特点 .............................................................31.3.1 可裁剪性 ...................................................31.3.2 强实时性 ...................................................41.3.3 统一的接口 .................................................41.3.4 方便 .......................................................41.3.5 强稳定性,弱交互性 .........................................41.3.6 固化代码 ...................................................41.3.7 适应性 .....................................................42 开发环境及关键技术 .....................................................52.1 Qt...............................................................52.2 信号和槽机制 .....................................................52.2.1 信号 .......................................................62.2.2 槽函数 .....................................................62.3 布局管理 .........................................................62.4 程序启动画面 QSplashScreen类 .....................................72.5 QTimer类 ........................................................82.6 二维图形的绘制方法 ...............................................82.7 右键菜单 .........................................................93 可行性分析 ............................................................103.1 研究目的 ........................................................103.2 开发的可行性 ....................................................103.2.1 操作可行性 ................................................103.2.2 技术可行性 ................................................103.2.3 经济可行性 ................................................103.3 专业术语 ........................................................113.4 条件基础 ........................................................113.5 实现目标 ........................................................113.6 可行性研究方法 ..................................................113.7 结论意见 ........................................................114 需求分析 ..............................................................124.1 研究目的 ........................................................124.2 开发背景 ........................................................124.3 任务概述 ........................................................134.3.1 目标 ......................................................134.3.2 用户特点 ..................................................134.4 需求规定 .........................................................134.4.1 对功能的规定 ..............................................134.4.2 对性能的规定 ..............................................134.5 要解决的问题 ....................................................134.6 提出的要求 ......................................................144.7 可以实现的要求 ..................................................144.8 关键点 ..........................................................144.9 嵌入式特性 ......................................................145 贪吃蛇分析 ............................................................155.1 贪吃蛇要求 ......................................................155.2 贪食蛇设计思想 ..................................................155.3 贪吃蛇游戏功能 ..................................................156 贪吃蛇设计 ............................................................166.1 系统的输入输出 ..................................................166.1.1 输入 ......................................................166.1.2 输出 ......................................................166.1.3 蛇的移动 ..................................................166.2 设计基础 ........................................................166.3 数据字典 ........................................................166.4 处理流程 ........................................................176.5 系统的逻辑模型 ..................................................186.6 功能与程序的关系 ................................................186.7 运行设计 ........................................................196.7.1 运行控制 ..................................................196.7.2 运行时间 ..................................................197 贪吃蛇实现 ............................................................207.1 程序系统的组织结构 .............................................207.1.1 每个模块的名称、标识符 ....................................207.1.2 模块之间的关系 ............................................217.2 程序描述 ........................................................217.2.1 目的和意义 ................................................217.2.2 特点说明 ..................................................217.3 程序详解 ........................................................217.3.1 构造函数 Snake(QWidget *parent) ...........................217.3.2 初始化界面函数 iniWidget() ................................227.3.3 连接信号函数 iniConnect() .................................247.3.4 初始化游戏函数 iniGame() ..................................257.3.5 贪吃蛇移动函数 doMoveSnake() ..............................257.3.6 设置是否可以穿墙函数 setEnableGoThroughWall() .............267.3.7 更新得分函数 changeScore() ................................267.3.8 更新等级函数 changeLevel() ................................277.3.9 判断贪吃蛇是否吃到食物函数 isEating() .....................277.3.10 判断游戏是否结束函数 isGameOver() .........................277.3.11 绘图事件处理函数 paintEvent(QPaintEvent *event) ...........287.3.12 键盘事件处理函数 keyPressEvent(QKeyEvent *event) ..........297.3.13 获取随机颜色函数 getColor() ...............................307.3.14 时间处理函数 ..............................................307.3.15 右键菜单处理函数 ..........................................317.3.16 获取右键菜单槽函数 ........................................317.3.17 点击右键菜单中 Info的槽函数 ...............................327.3.18 点击右键菜单中 About的槽函数 ..............................327.3.19 程序主函数 ................................................328 软件测试 ..............................................................348.1 测试的意义 ......................................................348.2 测试过程 ........................................................348.3 测试计划 ........................................................348.4 预期的结果 ......................................................348.5 测试结果 ........................................................35结论 .....................................................................40参考文献 .................................................................41致谢 .....................................................................42外文原文 .................................................................43外文翻译 .................................................................541绪论贪吃蛇是世界知名的益智类小游戏,选择这个题目一方面的原因是为了将我们的所学知识加以运用;另一方面,虽然很小就接触这个游戏,但是它的制作方法对我们而言还是很神秘的。我们希望通过自己的所学知识把它剖析开来,通过自己的动手实践,真正的了解它的本质和精髓。希望通过这次实践,我们能从中提高自己的编程能力,并从中学会从零开始分析设计程序。本游戏的开发是基于 Qt 跨平台的图形用户界面应用程序框架,用的是 C++开发语言。C++语言简洁灵活,运算符的数据结构丰富、具有结构化控制语句、程序执行效率高,而且同时具有高级语言与汇编语言的优点,与其它语言相比 ,C 语言具有可以直接访问物理地址的优点,与汇编语言相比又具有良好的可读性的可移植性。总得来说,C++语言的主要特点表现在两个方面,一是尽量兼容 C,二是支持面向对象的方法。它操持了 C 的简洁、高效的接近汇编语言等特点,对 C 的类型系统进行了改革的扩充,因此 C++比 C 更安全,C++的编译系统能检查出更多的类型错误。另外,由于 C 语言的广泛使用,因而极大的促进了 C++的普及和推广。C++语言最有意义的方面是支持面向对象的特征。虽然与 C 的兼容使得 C++具有双重特点,但他在概念上完全与 C 不同,更具面向对象的特征。数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。21 嵌入式系统1.1 嵌入式系统嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。嵌入式系统是一个控制程序存储在 ROM 中的嵌 入 式 处 理 器 控制板。事实上,所有带有数字接口的设备,如手表、微波炉、录 像 机 、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。从应 用 对 象 上加以定义,嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。国内普遍认同的嵌入式系统定义为:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。1.2 组成一个嵌入式系统装置一般都由嵌 入 式 计 算 机 系 统 和执行装置组成, 嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应 用 软 件 层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如 SONY 智能机 器 狗 ,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。1.2.1 硬件层硬件层中包含嵌 入 式 微 处 理 器 、存 储 器 (SDRAM、ROM、Flash 等)、通用设备接口和 I/O 接口(A/D、D/A、I/O 等)。在一片嵌 入 式 处 理 器 基础上添加电源电路、时钟 电 路 和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在 ROM 中。1.嵌入式微处理器嵌 入 式 系 统 硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用 CPU 最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU 许多由板 卡 完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。2.存储器 嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含 Cache、主存和辅助存储器。(1)Cache3Cache 是一种容量小、速度快的存储器阵列它位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。Cache 的主要目标就是:减小存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈,使处理速度更快,实时性更强。(2)主存主存是嵌入式微处理器能直接访问的寄 存 器 ,用来存放系统和用户的程序及数据。(3)辅助存储器辅助存储器用来存放大 数 据 量的程序代码或信息,它的容量大、但读取速度与主存相比就慢的很多,用来长期保存用户的信息。3. 通用设备接口和 I/O 接口嵌入式系统和外界交互需要一定形式的通用设备接口,如 A/D、D/A、I/O 等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的 802.11 无线设备。目前嵌入式系统中常用的通用设备接口有 A/D(模/数转换接口)、D/A(数/模转换接口),I/O 接口有 RS-232 接口(串 行 通 信 接口)、Ethernet(以 太 网 接口)、USB(通 用 串 行 总 线 接口)、音频接口、VGA 视频输出接口、I2C(现 场 总 线 )、SPI(串 行 外 围 设 备 接 口 )和 IrDA(红 外 线 接 口 )等。 1.2.2 中间层硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据 BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP 具有以下两个特点。硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软 件与硬件平台之间的接口,BSP 需要为操作系统提供操作和控制具体硬件的方法。 操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。实际上,BSP 是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的 BSP 需要完成两部分工作:嵌 入 式系 统 的硬件初始化以及 BSP 功能,设计硬件相关的设 备 驱 动 。1.3 特点1.3.1 可裁剪性支持开放性和可伸缩性的体系结构。 41.3.2 强实时性EOS 实时性一般较强,可用于各种设备控制中。1.3.3 统一的接口提供设备统一的驱动接口。 1.3.4 方便操作方便、简单、提供友好的图形 GUI 和图形界面,追求易学易用。提供强大的网络功能,支持 TCP/IP 协议及其他协议,提供 TCP/UDP/IP/PPP 协议支持及统一的MAC 访问层接口,为各种移动计算设备预留接口。 1.3.5 强稳定性,弱交互性嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的 EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。1.3.6 固化代码在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的 ROM中。 1.3.7 适应性更好的硬件适应性,也就是良好的移植性。52 开发环境及关键技术2.1 QtQt 是诺基亚开发的一个跨平台的 C++图形用户界面应用程序框架。它既可以开发GUI 程式,也可用于开发非 GUI 程式,比如控制台工具和服务器。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。Qt 是完全面向对象的,很容易扩展,并且允许真正地组件编程。它具有:(1)优良的跨平台特性(2)面向对象 (3)丰富的 API (4)大量的开发文档(5)XML 支持 (6)Webkit 引擎的集成,可以实现本地界面与 Web 内容的无缝集成 (7)用户自定义控件 (8)方便性 (9)国际化 (10)高性能的工具 (11)优越的绘画功能 (12)绘制 2D/3D 图形功能 2.2 信号和槽机制信号和槽作为 QT 的核心机制在 QT 编程中有着广泛的应用,要精通 QT 编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,他是 QT 的核心特性,也是 QT 差别于其他工具包的重要地方。信号和槽是 QT 自行定义的一种通信机制,他独立于标准的 C/C++语言,因此要正确的处理信号和槽,必须借助一个称为 moc(Meta Object Compiler 的 QT 工具,该工具是个 C++预处理程式,他为高层次的事件处理自动生成所需要的附加代码。在我们所熟知的非常多 GUI 工具包中,窗口小部件(widget 都有一个回调函数用于响应他们能触发的每个动作,这个回调函数通常是个指向某个函数的指针。不过,在 QT 中信号和槽取代了这些凌乱的函数指针,使得我们编写这些通信程式更为简洁明了。信号和槽能携带任意数量和任意类型的参数,他们是类型完全安全的,不会像回调函数那样产生 core dumps 所有从 QObject 或其子类(例如 QWidget)派生的类都能够包含信号和槽。当对象改动其状态时,信号就由该对象发射(emit)出去,这就是对象所要做的全部事情,他不知道另一端是谁在接收这个信号。这就是真正的消息封装,他确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但他们是普通
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于QT的贪吃蛇游戏设计与实现答辩.rar
    链接地址:http://www.gold-doc.com/p-158458.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开