QT俄罗斯方块游戏的设计与实现毕业论文

上传人:1777****777 文档编号:39406132 上传时间:2021-11-10 格式:DOC 页数:23 大小:198.02KB
返回 下载 相关 举报
QT俄罗斯方块游戏的设计与实现毕业论文_第1页
第1页 / 共23页
QT俄罗斯方块游戏的设计与实现毕业论文_第2页
第2页 / 共23页
QT俄罗斯方块游戏的设计与实现毕业论文_第3页
第3页 / 共23页
点击查看更多>>
资源描述
QT 俄罗斯方块游戏的设计与实现 作者姓名作者姓名 指导教师指导教师 所学专业所学专业班级班级 所属院系所属院系 学习年限学习年限年年月至月至年年月月二年月学号:学号:本 科 毕 业 论 文(设 计)目目 录录内容提要 .I引言 .11. 绪论 .11.1 游戏的历史 .11.1.1 从头谈起.11.1.2 图形硬件的革命.21.2 游戏的意义与内涵 .21.3 游戏的组成要素.22. 可行性研究 .32.1 设计目的.32.2 可行性研究前提.42.3 可行性分析.42.4 结论意见.43. 需求分析 .53.1 引言.53.2 游戏需求.54. 设计基本的游戏功能 .54.1 方块类定义函数.64.2 程序核心函数.75. 程序主要功能设计及按键事件的控制 .75.1 建立工程.75.2 添加定时器和开始按钮.85.3 添加暂停和重新开始按钮,完成基本的控制功能.95.4 改变颜色和给方块添加图片.105.5 是否显示背景网格和下一个要出现的方块.105.6 添加方块移动的声音.115.7 添加向下按钮步数设置.125.8 添加方块.125.9 设置旋转游戏区.1236程序设计思想与流程图 .136.1 游戏实现的核心方法.136.2 游戏是怎么实现显示现在和已有的图形的。.136.3 游戏是怎么判断方块已经重合的.136.4 游戏是怎么进行消行的.146.5 对于改变图形后越界或和别的图形重合的处理方法.146.6 按键事件 .15致谢 .1参考文献 .1ABSTRACT .19QT 俄罗斯方块游戏的设计与实现 内容提要 俄罗斯方块是个老幼皆宜的小游戏,它实现由四块正方形的色块组成,然后存储在一个数组的四个元素中,计算机随机产生不同七种类型的方块,根据计算机定时器控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作, (用信号和槽函数的关联来实现对按键事件的控制) 。然后程序根据这七种方块堆叠成各种不同的模型。Qt 是诺基亚开发的一个跨平台的 C+图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。论文描述了游戏的历史,开发此游戏的环境,游戏开发的意义。遵循软件工程的知识,从软件问题定义开始,接着进行可行性研究、需求分析、概要设计、详细设计,整个开发过程贯穿软件工程的知识体系。此次设计在 Linux 系统下,以 QT+Creator 为开发语言,使用 C+和 QT 库来进行游戏的设计与实现。关键词 数组 定时器 信号 槽函数 QT引言在现今电子信息高速发展的时代,电子游戏已经深入人们的日常生活,成为老少皆宜的娱乐方式。俄罗斯方块是一款风靡全球的电视游戏机和掌上游戏机游戏,它曾经造成的轰动与造成的经济价值可以说是游戏史上的一件大事。这款游戏最初是由苏联的游戏制作人 Alex Pajitnov 制作的,它看似简单但却变化无穷,令人上瘾。相信大多数用户都还记得为它痴迷得茶不思饭不想的那个俄罗斯方块时代。究其历史,俄罗斯方块最早还是出现在 PC 机上,而我国的用户都是通过红白机了解、喜欢上它的。现在 QQ 等游戏平台又将重新掀起这股让人沉迷的俄罗斯方块风潮。对一般用户来说,它的规则简单,容易上手,且游戏过程变化无穷,而在游戏平台上的对战模式更增加了它的娱乐性和挑战性,使用户既能感受到游戏中的乐趣,也给用户提供了一个展现自己高超技艺的场所。俄罗斯方块游戏可以说是随计算机的发展而发展,并不断推陈出新演变出各种类似游戏, 深受广大玩家喜爱。这个游戏有的简单, 有的复杂, 但其根本原理是一样的都是对运动的方块进行组合, 来训练玩家的反应能力。谈到游戏软件, 大多数人都认为其神妙莫测, 高不可及。而一般游戏软件也确实具有很高的技术难度, 随着开发工具及软件开发方法学的不断发展, 动手开发游戏也不是十分困难的。俄罗斯方块游戏是一种古老而又有趣的游戏, 游戏软件不计其数, 网上就有好多关于实现的复杂算法和设计, 其难度让一般初学者望而却步。本文利用数组作为方块的数据结构,提出一种用 C 语言和 C+来实现的方法, 对初学者可仿此开发类似游戏, 并了解游戏软件的设计与开发过程。 1. 绪论1.1 游戏的历史游戏开发至今已经有 30 多年,在这个短暂的时期里,随着硬件水平的提高,游戏开发新技术层出不穷,经典游戏比比皆是。1.1.1 从头谈起真正的电子游戏机产生于 20 世纪 70 年代。1971 年,麻省理工学院的学生 Nolan Bushnell 设计了世界上的第一个业务用游戏机(俗名街机) ,叫做电脑空间 。这台游戏机用一台黑白电视机作为显示屏,用一个控制柄作为操纵器,不过由于市场因素这款游戏以失败告终。但是最后他在电子游戏的发展上取得了非凡的成就。上面介绍的是专用机游戏的历史,而最早的电脑游戏可以追溯到 1972 年,一个叫 Crowther 的工程师用当时最流行的主机DEC 公司的 PDP10 编写一段简单的 FORTRAN 程序。在这个程序里,Crowther 设计了一张地图,地图上不规则的分布着陷阱,游戏者必须寻找路径避开陷阱。这个程序被9公认为是最早的电脑游戏程序。1989 年,BroderBund 公司的设计师乔丹.麦克纳根据阿拉伯民族的古老传说一千零一夜在Apple 平台上制作了一部动作冒险相结合的电脑游戏波斯王子。这个游戏获得了第一作,它代表了当时电脑技术的最高水平。1986 年,任天堂公司发售了一款真正的游戏巨作超级马里奥。20 世纪 80 年代 IBM PC 兼容机的出现打破了 Apple 公司的垄断地位。到了 20 世纪 90 年代,游戏业才真正成熟起来,成为了一种产业。由于 PC 机价格非常低而且硬件速度越来越快,游戏逐渐成为人们生活中不可缺少的一部分。游戏产业也逐渐发展成熟。1.1.2 图形硬件的革命图形硬件的飞速发展是近些年来的事情,部分原因是来自工业方面的压力,例如在军事和医疗方面对于实时图形的需求很强烈,而交互娱乐产业也极大的推动了图形硬件的发展。技术上的因素同样也推动着图形硬件的发展,许多图形算法可以很容易地表达为并行方式,这样硬件执行的效率变得很高。摩乐定律也起了作用,越来越多的晶体管可以集成到一块单独的芯片上。在所谓的 GPU(图形处理器)概念出现以前,特殊的图形硬件只出现在诸如 SGI 和 E&S 系统里面,这些硬件价格太昂贵,不过这些公司提供了第一代基于硬件的顶点变换和纹理映射的解决方案。1.2 游戏的意义与内涵游戏这个名称一直就存在于每个人的日常生活中,如猜拳游戏、猜谜游戏、大地游戏、球类游戏等,林林总总,不胜枚举,甚至于有些流行歌曲把人生也比喻为游戏,好比“一场游戏一场梦” 。因此,游戏对于现代人的成长历程,绝对是一个不可或缺的重要角色。1.3 游戏的组成要素“游戏”,最简单的定义,就是一种供人们娱乐休闲的快乐元素。从更专业的角度形容, “游戏”是具有特定行为模式、规则条件、身心娱乐及输赢的一种行为表现。这种行为表现具备以下 4 个要素。行为模式: “游戏”最简单的要素就是游戏有特定的流程模式,这种流程模式贯穿于整个游戏的行为,用户必须依照它的模式流程来执行。倘若一种游戏没有了特定的行为模式,那么就没有执行的行为;在没有执行的行为之后,这个游戏也玩不下去了。举个例子来说,如果猜拳游戏没有了剪刀、石头、布等行为模式,那么这还能叫做“猜拳游戏” 吗?所以不管游戏的流程有多么复杂还是多么简单,一定要有特定的行为模式。条件规则:当游戏有了一定的行为模式后,接着就必须制定出一系列的条件规则。简单来说,这些游戏的条件规则就是大家必须去遵守的游戏行为守则,只要是大家一致以为的游戏行为,在游戏中,玩家就必须遵守它,如果不遵守这种游戏行为,那么就失去了公平性。如同一种简单的球赛,打球的英文解释可以用 PLAY GAME 来加以说明,按照英文字面上的解释,它就是执行游戏的行为,而球赛必须有一定的条件规则,并且参与者都要必须去遵守它,不能遵守它就叫作“犯规” 。所以不管是什么游戏,它都会具备一组规则条件,在游戏进行的时候才会有足够的公平性。娱乐身心:一种游戏所带来的娱乐性,关键就在于为玩家所带来的刺激感,这也是游戏的精华所在。简单来说,不管是很多人玩的游戏,还是一个人玩的单机游戏,游戏本身就会存在它的娱乐和刺激性,使得玩家们想要去玩它。输赢:其实针对游戏而言,输赢是所有游戏的最终目的。一个没有输赢的游戏,也就没有了它存在的意义,如同我们常常接触到的猜拳游戏,说穿了最终目的就是为了分出胜负而己。一般而言,游戏又可以分为动态和静态两种形态。动态的游戏必须配合肢体动作,如猜拳游戏;而静态游戏则是较偏向思考的行为,如同纸上游戏。然而不管是动态或是静态游戏,只要具备上述 4项组成要素,都可以将它称为“游戏” 。2. 可行性研究2.1 设计目的综合运用在校期间所学理论知识和技能,设计开发俄罗斯方块,使自己熟悉应用系统的开发过程,培养独立思考能力,检验学习效果和动手能力,提高工程实践能力,为将来实际工作打下坚实的基础。2.2 可行性研究前提基本需求:系统开发的总体任务是实现游戏的可操作性、美观性、及时性。开发过程遵循软件工程规范,可采用结构化或面向对象分析设计方法。主要实现 windows 的 GUI程序开发,对游戏中的图形图像进行键盘控制。游戏者可以通过上下左右键来对游戏进行操作。主要开发目标:采用结构化设计方法,开发出一个可操作性、美观性、及时性的游戏,实现9windows 的 GUI 程序开发,并通过此次软件开发过程全面提高自身的综合素质。条件假定和限制:由于本软件目前是我的初次版本,可能还存在一些问题。如果该软件提高版本,本软件需要根据游戏者的要求进行进一步的修改。可行性研究所采用的方法和步骤:通过研究分析俄罗斯方块所具备的能力及实现的方法、确定主体结构。利用现阶段我所能达到的能力,以最简洁、最容易的办法,边开发边测试边修改,实现一个初级游戏软件。评价尺度:由于本软件是一个初级产品,对其要求不是太苛刻,所以能够达到俄罗斯游戏的一般功能即可。2.3 可行性分析管理可行性: 该游戏软件为首次开发,目的只为提高工作自身素质和检查自学 Java 的效果,用 Java3.0 软件编写后在 Applet 管理器中运行简单明了,所有功能均根据基本需求所做。便于管理,所以在这方面是可以实现的。经济可行性:由于本游戏的主要背景是毕业课程设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行 JAVA3.0 软件的电脑便可,所以不用考虑到经济问题。技术可行性:可用与本游戏的编程语言有 VB,Java,Delphi 等,考虑到用于编写程序的困难度,和对语言的了解程度,选择 JAVA 作为编程语言。需要对变量定义、变量初始化、界面初始化、游戏初始化、然后进入游戏、处理游戏过程中的各种操作。社会可行性:本游戏的开发作为毕业课程设计以巩固先前所学的知识,以个人为单位,仅供个人平常娱乐所用,无须考虑有可能造成的社会影响,不用考虑到法律、版权等的社会因素,所以在这方面是完全可行的。2.4 结论意见综上所述,本游戏软件的技术成熟、完备。各方面均无重大问题,因此本游戏软件可开始着手编写。3. 需求分析3.1 引言对软件需求完全理解对于软件开发工作的成功是至关重要的,需求说明的任务是发现、规范的过程,有益于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,便于采用工程方法开发软件,提高软件的质量,便于开发人员、维护人员、管理人员之间的交流、协作,并作为工作成果的原始依据,并且在向潜在用户传递软件功能、性能需求,使其能够判断该软件是否与自己的需求相关。3.2 游戏需求随机给出不同的形状(长条形、Z 字形、反 Z 形、田字形、7 字形、反 7 形、T 字型)下落填充给定的区域,若填满一条便消掉,记分,当达到一定的分数时,过关,设置三关,每关方块下落的速度不同,若在游戏中各形状填满了给定区域,为输者。游戏功能要求如下:游戏界面需求:良好的用户界面,有关数显示和分数显示。让方块在一定的区域内运动和变形,该区域用一种颜色表明,既用一种颜色作为背景,最好设为黑色。还需用另一种颜色把黑色围起来,宽度适中,要实现美感。游戏形状(方块)需求:良好的方块形状设计,绘制七种常见的基本图形(长条形、Z 字形、反 Z形、田字形、7 字形、反 7 形、T 字型) ,各个方块要能实现它的变形,可设为顺时针或逆时针变形,一般为逆时针。键盘处理事件:方块下落时,可通过键盘方向键(上、下、左、右键)对该方块进行向上(变形),向下(加速) 、向左、向右移动。显示需求:当不同的方块填满一行时可以消行,剩余方块向下移动并统计分数。当达到一定的分数时过关。设置三关,每关方块下落的速度不同。4. 设计基本的游戏功能参考 QT 库中基本的 Tetrix 实例,设计自己的方块类程序。在 QT 中新建一个工程,向工程中添加新的普通文本文件。将设计好的 4 个文件添加复制到工程文件夹下并加入到工程中。在主函数中新建一个类的对象,用参数设置好方块的下移速度,就可以成功运行出一个基本的游戏程序。4.1 方块类定义函数方块和地图数据信息是游戏中最基本的功能模块。这个类提供方块图形 ,图形在 4*4 区域的位置信息 ,对图形进行旋转变化功能Myitem.h Myitem.cpp 这两个文件是方块类的定义文件,用来提供随机产生的方块。9定义 7 个四维数组 unsigned char item4*4,数组的第一维表示七种不同形态的方块,第二维代表方块的四种不同翻转状态。数组的第三维和第四维代表某一种形态的方块的某一状态。然后用代码实现下列功能:(1)每次执行首先为随机数产生不同的初值。(2)随机选取一个图形随机产生一个数随机数一字形Z 字形反 Z 形7 字形反 7 形倒 T形田字型 图 4.1 随机产生方块图(3)当前图形在其 4*4 网格中的位置信息(4)改变图形形状定义一个 4x4 方阵,共 16 个小格。用“0”和“1”来表示每个方格是绘制还是空白,由此可以组合出多种图形,如图所示: 图 4.2 方块图4.2 程序核心函数Gamearea.h Gamearea.cpp 是游戏区域类的定义文件,实现了游戏的所有功能。其中包括了核心功能控制函数,设置颜色参数,设置声音参数,设置游戏区域旋转函数和其他功能函数等。 具体功能的实现在下一章节中阐述。5. 程序主要功能设计及按键事件的控制5.1 建立工程1首先建立工程 Qt4 Gui Application,这里命名为 Tetris,选用 QWidget 作为 Base class 。2然后将 myitem.cpp, myitem.h ,gamearea.cpp, gamearea.h 四个文件复制到工程文件夹下并添加到工程中。3在 widget.h 中添加#include gamearea.h的头文件包含。并在下面的 private 中声明一个游戏类对象 GameArea *gameArea;4在 widget.cpp 的构造函数里添加语句。Widget:Widget(QWidget *parent) :QWidget(parent),ui(new Ui:Widget)ui-setupUi(this);this-resize(800,500);this-gameArea = new GameArea(this);这里重新设定了主窗口大小,并在主窗口上新建了一个游戏区域对象。5.2 添加定时器和开始按钮1在 widget.h 里的 private 中添加定时器对象和分数变量的声明。QTimer *timer;int score;在 public 中添加显示分数函数的声明。void doScore(int);添加槽函数的声明。private slots:void timer_upDate();2在 widget.cpp 文件中的构造函数里添加下面的语句:9this-timer = new QTimer(this);connect(this-timer,SIGNAL(timeout(),this,SLOT(timer_upDate();score =0;定义了定时器并进行了信号和槽函数的关联,初始化分数为 0;3然后在下面定义两个函数。void Widget:timer_upDate() /定时器溢出处理this-gameArea-moveOneStep(); /先移动一步,这时并没有显示出来if(this-gameArea-isMoveEnd() /如果无法移动,到底了或结束了if(this-gameArea-isGame_Over() /如果是结束了this-timer-stop(); /停止计时QMessageBox:warning(this,tr(warning),tr(GameOver!),QMessageBox:Yes);/弹出对话框this-score =0; /清空分数this-gameArea-init_Game(); /重新开始游戏this-gameArea-gameStart();this-timer-start(500);else /如果是移动到底了this-gameArea-nextItem(); /出现下一个图形int num = this-gameArea-getFullRowNum(); /获得已满的行数this-doScore(num); /显示分数this-gameArea-gameStart(); /继续游戏else /如果没有到底this-gameArea-do_MoveNext(); /显示方块下移一步后的界面void Widget:doScore(int num) /显示分数score += num*100;this-ui-label_2-setText(tr(%1).arg(score);4在设计器中向主窗口上添加两个标签 label 和 label_2,其中 label 写上“你的分数是:” ,label_2 写上“0” ;然后再添加一个开始按钮。5然后右击“开始游戏”按钮,选择其单击事件的槽函数。更改如下。void Widget:on_pushButton_clicked() /开始按钮this-gameArea-init_Game(); /第一次进入游戏时进行的初始化this-gameArea-gameStart(); /开始游戏this-timer-start(500); /开启定时器this-gameArea-setFocus(); /让游戏区域获得焦点,这样才能响应键盘5.3 添加暂停和重新开始按钮,完成基本的控制功能1在主窗口上添加“暂停游戏”和“重新开始”两个按钮。在“暂停游戏”按钮的属中将 checkable 选中。2分别进入两个按钮的单击事件槽函数。void Widget:on_pushButton_2_clicked() /暂停按钮if(this-ui-pushButton_2-isChecked()this-timer-stop();this-ui-pushButton_2-setText(tr(取消暂停);elsethis-timer-start(500);this-ui-pushButton_2-setText(tr(暂停游戏);this-gameArea-setFocus();void Widget:on_pushButton_3_clicked() /重新开始this-timer-stop();this-on_pushButton_clicked();3在 main.cpp 中添加语句,让程序中可以使用中文。添加#include 的头文件包含。在 main()函数里添加 QTextCodec:setCodecForTr(QTextCodec:codecForLocale();语句。5.4 改变颜色和给方块添加图片1添加“更改颜色”按钮和“方块贴图”按钮。2更改其单击事件槽函数。如下。void Widget:on_pushButton_4_clicked() /改变颜色this-gameArea-setGameAreaColor(QColor(255,255,0,qrand()%255);/更改游戏区域背景颜色this-gameArea-setBoxBrushColor(QColor(0,255,0,qrand()%255);/更改小方块背景颜色9this-gameArea-setBoxPenColor(QColor(0,0,0,qrand()%255);/更改小方块边框颜色this-gameArea-draw_gameArea();/更新游戏区域this-gameArea-setFocus();void Widget:on_pushButton_5_clicked() /方块贴图this-gameArea-set_draw_box_picture(true);/确认使用方块背景图片this-gameArea-setBoxPicture(box.gif);/添加方块背景图片this-gameArea-draw_gameArea();/更新显示区域this-gameArea-setFocus();3运行效果如下。点击“改变背景”按钮后,游戏区域背景,方块的填充颜色和边框颜色都改变了。5.5 是否显示背景网格和下一个要出现的方块1添加“网格显示”按钮和“方块提示”按钮。并将它们属性中的 checkable 选中2修改它们的单击事件槽函数。void Widget:on_pushButton_6_clicked() /网格显示if(this-ui-pushButton_6-isChecked()this-gameArea-setDrawGrid(false);elsethis-gameArea-setDrawGrid(true);this-gameArea-draw_gameArea();this-gameArea-setFocus();void Widget:on_pushButton_7_clicked() /方块提示if(this-ui-pushButton_7-isChecked()this-gameArea-setDrawNextItem(false);elsethis-gameArea-setDrawNextItem(true);this-gameArea-draw_gameArea();this-gameArea-setFocus();5.6 添加方块移动的声音1添加“打开声音”按钮,并将其属性中的 checkable 选中。2修改其单击事件槽函数。void Widget:on_pushButton_8_clicked() /声音开关if(this-ui-pushButton_8-isChecked()this-gameArea-setPlaySound_itemChange(changeItem.wav,true);this-gameArea-setPlaySound_moveDown(moveDown.wav,true);this-gameArea-setPlaySound_moveLeft(moveLeft.wav,true);this-gameArea-setPlaySound_moveRight(moveLeft.wav,true);this-ui-pushButton_8-setText(tr(关闭声音);elsethis-gameArea-setPlaySound(false); /关闭音乐this-ui-pushButton_8-setText(tr(打开声音);this-gameArea-setFocus();3我们把需要的声音文件放到工程文件夹下的 debug 文件夹下。只能是 wav 格式的。5.7 添加向下按钮步数设置1添加“是否坠落”按钮,并将其属性中的 checkable 选中。2更改其单击事件槽函数。void Widget:on_pushButton_9_clicked() /是否坠落if(this-ui-pushButton_9-isChecked()this-gameArea-setKey_Down_Move_oneStep(true);/按一下向下方向键,下移一步elsethis-gameArea-setKey_Down_Move_oneStep(false);/按一下向下方向键,移动到底this-gameArea-setFocus();95.8 添加方块1添加“添加方块”按钮。2修改其单击事件槽函数。void Widget:on_pushButton_10_clicked() /添加方块this-gameArea-init_Game();/清空游戏区域this-gameArea-setbox(10,4);this-gameArea-setbox(10,5);this-gameArea-setbox(10,6);/在第 10 行第 4,5,6 列添加三个方块this-gameArea-gameStart();/重新开始游戏this-gameArea-draw_gameArea();this-gameArea-setFocus();5.9 设置旋转游戏区1添加“旋转游戏”按钮。2修改其单击事件槽函数。void Widget:on_pushButton_11_clicked() /旋转游戏this-gameArea-setRotate(true);/开启旋转this-gameArea-setGameAreaPixOrigin(100,200);/设置游戏区域新的坐标原点this-gameArea-setGameAreaPix(-100,-200);/设置游戏区域的位置this-gameArea-setRotateAngle(qrand()%360);/旋转度数this-gameArea-draw_gameArea();this-gameArea-setFocus();6程序设计思想与流程图 图 6.1 设计实现流程6.1 游戏实现的核心方法利用了数组对整个游戏区域进行存储。6.2 游戏是怎么实现显示现在和已有的图形的。利用了两个数组,方块每移动一步,都对整个数组进行一次备份。6.3 游戏是怎么判断方块已经重合的先尝试让方块移动一步,判断其是否与其他图形重合,如果不重合就移动。如果重合了,则执行其他操作。代码如下:for(int i=item_endRow;i=0;i-) /是否跟已有的图形重合 for(int j=3;j=0;j-) if(*(copyMap+(itemRow+i)*map_col+itemCol+j) & *(currentItem+i*4+j)=1) if(startX=init_startX&startY0;i-) /从下向上扫描整张网格 for(int j=0;j0;row-) /让已满的行及其上面的各行均等于其上一行 for(int col = 0;colitemChange(currentItem); /进行图形变化 if(startX gameArea_width) startX = gameArea_width - 4*step; /右超界,则让其右边靠右 if(isMoveEnd() /如果和别的图形重合,则不让其改变 currentItem = tempItem; 6.6 按键事件判断按键判断可否变形,图形变化调用函数判断可否移动。可以则移动判断可否移动。可以则移动判断可否移动。可以则默认下移一步,否则下到底如不是这 4 个按键,则接收其他按键。图 4.2 键盘事件功能图 参考文献1 谭浩强,张基温,C 语言程序设计教程(第 3 版)M高等教育出版社,1991 年 08 月2 陈超,C 语言常用函数速查手册M,化学工业出版社,2010 年 06 月3 韦东山,嵌入式应用开发完全手册M,人民邮电出版社 4 黄丽琴,丁林松,Qt4 图形设计与嵌入式开发M,人民邮电出版社,2009 年 04 月5 成洁,卢紫毅,Linux 窗口设计Qt4 精彩实例设计分析M,清华大学出版社,2008.116(加)布兰切特(Blanchette,J) , (英)萨默菲尔德(Summerfield,M)著,闫锋欣 译,C+GUI Qt4 编程(第二版)M,2008 年 08 月97 蔡志明,精通 Qt4 编程(第 2 版)M,电子工业出版社,2011 年 2 月8 (美)伊斯特(EEzust,A.) , (美)伊斯特(Ezust,P.)著,李仁见,战晓明 译,C+设计模式基于 Qt4 开源跨平台开发框架M,清华大学,2007 年 8 月9 肖林甫,肖季东,任桥伟,LinuxLinux 那些事儿之我是 USBM,电子工业出版社,2010 年 07 月10 郑莉,董江周,C+语言程序设计(第 4 版)M,清华大学出版社,2010 年 07 月 http:/ Tetris Game Design and ImplementationAbstract: Safe Tetris is a little young and old games, which implements the four square blocks of color composition, and then stored in an array of four elements, the computer randomly generate different types of box seven, according to the computer timer control It is time to stop at a certain generation, the user based on the four keyboard arrow keys to control the flip, left, right and down operation, (with signals and slots to achieve the function of key events associated with the control). Then the program under which seven boxes stacked into a variety of different models. Nokia, Qt is a cross-platform development of C + + graphical user interface application framework. It provides application developers to build-the-art graphical user interface used for the required functions. Paper describes the history of the game, develop the game environment, the significance of game development. Follow the software engineering knowledge, software problem definition from the start, followed by feasibility studies, needs analysis, outline design, detailed design, the entire development process throughout the software engineering body of knowledge.Keywords: Array Timer Signals Solt functions QT
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸设计 > 任务书类


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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