欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    基于QT的俄罗斯方块游戏的设计与实现论文.docx

    • 资源ID:26632721       资源大小:20.97KB        全文页数:17页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于QT的俄罗斯方块游戏的设计与实现论文.docx

    基于QT的俄罗斯方块游戏的设计与实现论文 基于QT的俄罗斯方块游戏 设计与实现 摘要 为了能够更进一步掌握Qt编程,我决定用Qt开发一个单机版的的俄罗斯方块游戏。俄罗斯方块的实现由四块正方形的色块组成,计算机随机产生不同七种类型的方块,根据计算机时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,(控制键的实现是由键盘的方向键的事件处理实现)。然后程序根据这七种方块堆叠成各种不同的模型。 本次设计用到的工具是基于UBUNTU或windows下的QT软件实现,图行界面的处理都是代码实现. 论文描述了游戏的历史,开发此游戏的环境,游戏开发的意义。遵循软件工程的知识,从软件问题定义开始,接着进行可行性研究、需求分析、概要设计、详细设计,最后对软件进行了测试,整个开发过程贯穿软件工程的知识体系。本游戏操作简单,界面清晰,让玩家容易上手操作。 关键词:游戏设计;算法;数组;事件;QT Design and implementation of Tetris, based on the QT ABSTRACT In order to further grasp the Qt programming, I decided to use Qt to develop a stand-alone version of the game tetris.Tetris implementation is composed of four square of color piece, the computer randomly generate different seven types of square, according to the control it in a certain amount of time on the computer clock, users according to the four keyboard direction key control flip, left, right and down operation, (the realization of the control key is by the keyboard direction key event handling implementation).Then the program according to the seven squares stack into a variety of different models. The design tool used is based on the QT under UBUNTU or windows software, the graph line interface processing is code to achieve. The thesis has described the game history , has developed this game environment, development significance of game. Knowledge abiding by a software engineering, definition begins from software problem , proceed to carry out feasibility study , need analysis , essentials design , detailed design, the at last has carried out a testing on the software , entire exploitation process has run through the software engineering knowledge hierarchy.This game is simple, clear interface, easy operation for players. Key words:game design;calculate way;several;event;QT 目录 摘要 (i) ABSTRACT (ii) 目录 (3) 1绪论 (1) 1.1 开发目的 (1) 1.2 俄罗斯方块游戏的现状 (1) 1.3 研究的主要内容 (2) 1.4 研究的意义 (2) 2 可行性研究 (4) 2.1 设计目的 (4) 2.2 软件问题定义 (4) 2.3 可行性分析 (4) 2.3.1技术可行性 (4) 2.3.2经济可行性 (4) 2.3.3操作可行性 (5) 2.3.4法律可行性 (5) 2.4 结论意见 (5) 3需求分析 (6) 3.1 引言 (6) 3.2游戏功能分析 (6) 3.2.1 系统概述 (6) 3.2.2 系统运行环境 (7) 3.3 游戏的UML基本模型 (7) 3.3.1 游戏的用例图 (7) 3.3.2 游戏的状态图 (8) 3.3.3 游戏的活动图 (9) 4游戏详细设计 (11) 4.1 图形实体类TetrixPiece实现 (11) 4.1.1 图形的产生 (11) 4.1.2 图形的旋转 (12) 4.2 游戏内容的实现 (13) 4.2.1 游戏实现控制方式 (13) 4.2.2 方块下移 (13) 4.2.3 满行及消行判断 (14) 4.2.4 绘制游戏区域及方块 (14) 4.2.5 键盘事件响应 (14) 4.3 游戏主窗体的实现 (14) 5代码分析 (16) 5.1 Tetrix工程 (16) 5.2 main.cpp主程序代码: (16) 5.3 tetrixboard.h头文件代码: (17) 5.4 tetrixboard.cpp程序代码: (18) 5.4.1游戏初始化,复位的实现 (18) 5.4.2 游戏开始与暂停 (19) 5.4.3 按键控制游戏 (20) 5.4.4计时模块 (21) 5.4.5 方块的活动 (21) 5.4.6 过关与奖励 (22) 5.4.7 方块颜色控制 (23) 5.5 tetrixpiece.h头文件代码: (24) 5.6 tetrixpiece.cpp程序代码: (24) 5.7 tetrixwindow.h头文件代码: (26) 5.8 tetrixwindow.cpp程序代码 (27) 5.8.1显示框 (27) 5.8.2功能按钮 (27) 5.8.3信号与槽 (27) 5.8.4游戏面板布局 (28) 6整体测试 (29) 6.1游戏运行测试 (29) 6.2游戏界面测试 (29) 6.3界面功能测试 (30) 6.4 测试总结 (33) 结论 (34) 致谢 (36) 参考文献 (37) 外文原文 (39) 中文翻译 (47) 1绪论 1.1 开发目的 在现金电子信息高速发展的时代,电子游戏已深入人们的日常生活,由于经典有趣,因而得到了广泛的流行,成为老少皆宜的娱乐方式。俄罗斯方块是一款风靡全球的游戏,最初是由苏联人制作的,规则简单,容易上手且游戏全过程变化无穷,可以让玩家充分感受游戏中的乐趣。 俄罗斯方块游戏可以说是随计算机的发展而发展,并不断推陈出新演变出各种类似游戏, 深受广大玩家喜爱。这个游戏有的简单, 有的复杂, 但其根本原理是一样的都是对运动的方块进行组合, 来训练玩家的反应能力。谈到游戏软件, 大多数人都认为其神妙莫测, 高不可及。而一般游戏软件也确实具有很高的技术难度, 随着开发工具及软件开发方法学的不断发展, 动手开发游戏也不是十分困难的。俄罗斯方块游游戏软件不计其数, 网上就有好多关于实现的复杂算法和设计, 其难度让一般初学者望而却步。而俄罗斯方块是编程的入门项目,它可以检验编辑人员的知识熟练程度。在游戏设计方面,俄罗斯方块游戏的设计工作既复杂又富有挑战性,它包含的内容多,涉及的知识广泛,与图形界面联系比较大。 游戏是一种新兴的媒体,是一种新的设计领域,也是一种新的艺术形式。同时开发电脑游戏可以提高学生研究和学习的兴趣,培养他们通过互联网收集和获得信息、分析整理信息、撰写报告论文等能力。俄罗斯方块的开发无疑是给电脑游戏的增加了色彩,拓宽了电脑游戏的平台,给人们带来乐趣。 1.2 俄罗斯方块游戏的现状 小方块的魅力经久不衰。截至2022年,俄罗斯方块发售了125亿份,受到50多个国家和地区的玩家喜爱,有超过50种语言的版本,运行在几十种游戏平台上,从掌机、街机、个人电脑,到手机和PDA。美国蓝色行星软件公司总裁亨克·罗杰斯说,移动设备已经成为俄罗斯方块新的主要平台,该领域的发售量已超过7500万份,并且还在快速增长。在俄罗斯方块网络版的北美和欧洲官方网站上,每天超过100万人次玩这个游戏。 俄罗斯方块成功的奥妙在哪里?它的创造者帕基特诺夫认为,可能在于这个游戏非常简单,而且拼图的过程有“从混乱中寻找秩序”的成就感。罗杰斯则说,俄罗斯方块是一个建设性的游戏,这一点与中国的围棋相似,“国际象棋就是杀杀杀,围棋则重视构建领地,是建设性的,俄罗斯方块也是”。 25年过去了,电脑业和电子游戏业都发生了巨大变化,拥有华丽画面、震撼音效和丰富剧情的大型游戏包括网络游戏纷纷出现,开辟并占据了新的市场。俄罗斯方块这样的游戏还有前途吗?帕基特诺夫认为还很有前途。他说,俄罗斯方块是一个休闲游戏,它面对的是那些没有精力或兴趣玩大型游戏的玩家,这些人需要一类简单好玩的游戏,拿起来就能进入状态,在忙碌的生活中寻求片刻放松。帕基特诺夫表示,将对俄罗斯方 块进行改进,使人们能够更容易从中获得休闲乐趣。罗杰斯说,今后的努力方向包括发展俄罗斯方块的竞技性,开发能够适应玩家特点的“智能”俄罗斯方块,并使来自世界各地、说不同语言的人们能够一起娱乐,通过这个游戏寻求共同点。 对于中国市场,现在俄罗斯方块已集成到即时通讯软件中国腾讯QQ中,即为火拼俄罗斯。另外,联众世界也有单机版的俄罗斯方块和网络版的俄罗斯方块。由此看来,俄罗斯方块经典还将继续。 1.3 研究的主要内容 俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人Alex Pajitnov制作的,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。 从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我在设计中在一个图片框中构造了一些的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我总共设计了7种造型,每种造型又可以通过旋转而变化出24种形状,利用随机函数在一个预览窗体中提前展示形状供用户参考,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,最后就可以得出用户的分数。 1.4 研究的意义 那么研究基于Qt的俄罗斯方块游戏有什么意义呢? 虽然目前俄罗斯方块游戏已经有各种语言的不同版本,并且已经将其搬上了网络的平台,单人、双人单机对战和双人网络对战等各种模式均已被大众熟知。由于开发平台不统一,造成软件的管理和使用极不方便,并且容易受到软硬件环境更新的影响,限制了这些新技术在科研生产中发挥更好的作用.如果舍弃原有软件而重新开发,将会耗费大量的人力和资金,而且浪费了许多成熟的软件成果。 而Qt在源代码级上实现了跨平台特性,极大的支持了跨平台通用软件的开发。Qt 可以用同一个源程序在不同平台上编译链接,生成目标代码,并取得相同的运行效果,称为“一次编写,随处编译”,利用这种方法充分实现了程序的跨平台运行。这种基于源代码的跨平台特性不仅解决了性能的问题,而且可以发挥各个平台的优势,充分利用每个平台自身的特点;并且即可以在新环境下实现原有软件的功能和特点,减少开发费用,还可以改进原有软件的不足,增加新的需求,从而提高软件的质量,延长软件生命期。 因此,利用Linux下基于Qt的应用程序开发是一个非常有意义的课题,具有重要的研究和商业价值。另外,通过本游戏的设计,检验了学习效果和动手能力,进一步深入Qt的学习,提高自己的编程水平,从而达到理论与实践相结合的目的。 在成为一个真正的游戏开发者的路上,俄罗斯方块是一个完美开始。为什么?因为它包括任何一个游戏中所有的元素。并且,不需要艺术家般的才能就能做出非常好看的俄罗斯方块游戏。任何一个能画出方块的人,每个作图形程序的人,就能做出商业品质的俄罗斯方块游戏。 以俄罗斯方块开始还有另外一个好处,不仅能做出一个完整的既好玩又容易上瘾游戏,而且它看上来和那些商业版本没什么区别。方块就是方块,不管是谁画出它们的,而且tetraminos(俄罗斯方块中使用的形状)也不过是一些方块的组合。 俄罗斯方块拥有所有游戏共通的独立成份。它有一个游戏循环(这个过程被反复执行直到游戏退出)。这个游戏循环读取玩家的输入,处理这个输入,然后更新游戏的元素(下落的tetraminos),并且检查是输还是赢。 以后要做的所有的简单的游戏都要用到这些东西,所以学习这个过程并且实现它是非常重要的。当第一次完成它之后,以后再做游戏时就能看出那个游戏有多难以及要花多长时间。如果没有完整的完成过这些,哪怕一次,就永远不能完整地正确领会其中的每个元素。当做大的项目时,就更不能确定其复杂性及所要的时间。如果甚至不能正确地领会这整个过程(因为你没能完成它),可能是没能建立一个合适的时间表或估计合适的时间,更有可能的是不够努力。 还有,玩俄罗斯方块可以练习人的反映能力,开始时快速的下降会让人手无足措,但适应了之后就会发现自己的反应力变的很快了。 另外长时间的手指活动可以让人血液流通加快有利健康。 还有俄罗斯方块高手都知道要想赢,就要有远大的布局,决不能只局限于一点一点的减,这在无形中就提高了人的智慧。 2 可行性研究 2.1 设计目的 通过俄罗斯方块的设计,综合自己在校以及在杰普公司实习期间所学的理论知识,使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,初步掌握软件工程的系统理论,进一步巩固和加强自身对C与C+基础知识的理解,提高自己的编程水平,从而达到理论与实践相结合的目的。 2.2 软件问题定义 基本要求:本游戏开发的总体任务是实现游戏的可操作性,以及界面的美观性。整个开发过程遵循软件工程规范,采用MFC编程来实现界面以及事件的控制,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,通过菜单栏中的相应菜单选项实现游戏的开始、结束、变换方块、积分以及等级的功能。 目标:通过本游戏的开发,主要实现游戏的可操作性以及美观性,同时使自己对C+语言的了解更进一层,为将来的实际工作打下坚实的基础。 条件、假定和限制:由于知识以及能力的限制,本游戏所实现的功能不够强大,可对本游戏进行改善,从而增强游戏的功能。 可行性研究的方法:通过研究分析俄罗斯方块所具备的能力及实现的方法、确定主体结构。利用现阶段我所能达到的能力,以最简洁、最容易的办法,边开发边测试边修改,实现一个初级游戏软件。 评价尺度:由于本软件是一个初级产品,对其要求不是太苛刻,所以能够达到俄罗斯游戏的一般功能即可。 2.3 可行性分析 2.3.1技术可行性 开发本游戏的编程语言有多种,考虑到自身对语言的掌握程度,选择C+语言 进行游戏的开发,采用GUI编程来实现界面以及事件的控制。 2.3.2经济可行性 本游戏是为丰富人们业余生活开发的,规模适中,工作复杂性低,实用性强。从开 发人力、物力、时间上考虑,开发成本少。而且利用C与C+程序,加快了开发进度,大大的缩短了开发周期,节省了人力、物力、时间,提高了项目开发的效率,降低了开发成本。由于需求分析完整,减少了很多后期维护的复杂性。另外,本系统具有很实用的现实意义。 因此,从经济角度考虑在线考试系统的开发在经济上是完全可行的。 2.3.3操作可行性 本游戏是采用QT下的GUI ( 图形用户界面) 组件创建的简单有好的操作界面,运行也效果简单明了,所有功能均根据基本需求进行开发。强调人机环境三者作为一个系统进行总体设计。使操作更人性化,减轻了用户的认知负担,使其更适合用户的操作需求。对所有数据的输入进行完整性和合法性检查,尽量减少误操作。因此在操作上是可行的。 2.3.4法律可行性 本游戏的开发主要为了完成毕业设计,开发的主体是个人,不存在法律上的侵 权行为,也不会为社会造成影响,这方面是完全可行的。 2.4 结论意见 综上所述,本游戏软件的技术成熟、完备。各方面均无重大问题,因此本游戏软件可开始着手编写。 3需求分析 3.1 引言 需求分析是软件定义时期的最后一个阶段,也是关系到软件开发成败的关键步骤。确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。在这个阶段中,开发者要做大量的调查和研究,收集信息,明确系统功能。需求分析的结果是系统开发的基础,它的成功与否直接关系到项目的成败和软件的质量。对软件需求的理解程度是决定软件开发工作成功与否的至关重要的环节,需求分析的任务是发现、规范的过程,有益于提高软件开发过程中的能见度;便于对软件开发过程进行控制与管理;便于采用工程方法开发软件,提高软件的质量;便于开发人员、维护人员、管理人员之间的交流、协作。 3.2游戏功能分析 3.2.1 系统概述 28种状态的方块随机产生,自由下落,落下时可由玩家用上、下、左、右控制键控制翻转和移动,以便以玩家所需要的形态和位置落下。如果落下时,方块的方格能填满某一行,则这一行可消去。消去一行后,游戏可给玩家加分,若由存在空格的方块填满整个窗口,则游戏失败。游戏功能需求如下: 游戏界面需求:设计良好的游戏界面可以让玩家充分感受到游戏带来的娱乐性,游戏的背景色是黑色,方块用蓝色颜色,在一定的区域内运动和变形,落下后的障碍物用黄色显示,这样看起来会有一定的美感。 游戏形状需求:用数组作为存储方块28种状态的数据结构,即长条形、Z字形、反Z形、田字形、7字形、反7形、T字型,各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。 键盘处理事件需求:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速)、向左、向右移动。 鼠标处理事件需求:通过点击菜单栏中相应的菜单项,可以实现游戏的开始、结束,方块形状的变换,分数、等级的显示,以及游戏帮助等功能。 显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定分数的时候,会增加相应的等级。 3.2.2 系统运行环境 操作系统:ubuntu12.04 或windows 硬件环境:内存:4.00G 硬盘:500M CPU:P7450 2.13GHz 开发工具:QT5.2.0 3.3 游戏的UML基本模型 3.3.1 游戏的用例图 用例图是由软件需求分析到最终实现的第一步,它描述人们希望如何使用一个系统。用例图在需求分析阶段有很重要的作用,它是作为参与者的外部用户所能观察到的系统功能的模型图,它显示多个外部参与者以及他们与系统提供的用例之间的连接4。整个开发过程都是围绕需求阶段的用例进行的。通过分析确定本系统的抽象参与者有:计算机和玩家两类。 1)计算机(computer)。计算机可以实现方块定时下移、随机产生方块、自动消除满行、更新分数、报告游戏结果等。计算机控制游戏的用例图如图3-1所示。 图3-1 计算机控制游戏的用例图 2)玩家(player)。玩家是本游戏的重要参与者。玩家可以选择控制方块。控制方块用例包括旋转方块、左移方块、右移方块、下移方块、丢下方块等用例。其中:玩家可以控制游戏和设置游戏,控制游戏用例又包括控制游戏状态和控制背景音

    注意事项

    本文(基于QT的俄罗斯方块游戏的设计与实现论文.docx)为本站会员(h****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开