嵌入式拼图游戏的设计与实现学位论文.docx

上传人:b****6 文档编号:6034973 上传时间:2023-01-03 格式:DOCX 页数:48 大小:1.31MB
下载 相关 举报
嵌入式拼图游戏的设计与实现学位论文.docx_第1页
第1页 / 共48页
嵌入式拼图游戏的设计与实现学位论文.docx_第2页
第2页 / 共48页
嵌入式拼图游戏的设计与实现学位论文.docx_第3页
第3页 / 共48页
嵌入式拼图游戏的设计与实现学位论文.docx_第4页
第4页 / 共48页
嵌入式拼图游戏的设计与实现学位论文.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

嵌入式拼图游戏的设计与实现学位论文.docx

《嵌入式拼图游戏的设计与实现学位论文.docx》由会员分享,可在线阅读,更多相关《嵌入式拼图游戏的设计与实现学位论文.docx(48页珍藏版)》请在冰豆网上搜索。

嵌入式拼图游戏的设计与实现学位论文.docx

嵌入式拼图游戏的设计与实现学位论文

嵌入式拼图游戏

摘 要

拼图游戏是一种可变性很高且耐玩的游戏,在平时空闲的时候可以自己制定图片然后享受智力拼图,空闲之余不妨放松一下。

拼图是一种大人与小孩都能玩的游戏,它可以开发智力且帮助大家提高动脑解决问题的能力。

玩拼图还有助于手眼协调,玩家能训练和了解“部分”与“全部”的关系,可以知道许多的“部分”能拼凑出一个“全部”,以及一个“全部”是由许多“部分”所组成的。

本课题主要是在Linux环境下用嵌入式C语言及QT对一小型游戏进行开发。

选择一个游戏的拼图图片,单击方框可使图片移动,从而能够拼出一幅完整的图片,这类游戏主要考察玩家的反应能力,在游戏之余提高观察和应变能力。

本游戏中通过分析C游戏的开发流程,对功能进行设计。

该游戏主要实现了开始游戏,更改图片,游戏难度选择(9宫初级,16宫中级和25宫高级),战况成绩统计,成绩排名,背景音乐等功能。

游戏界面美观,操作简单,功能齐全,是广大游戏爱好者都喜欢的一款游戏,具有一定的复杂性和可玩性。

关键词:

拼图游戏;嵌入式;Linux;QT

 

Embeddedpuzzlegame

Abstract

Puzzlegameisakindofhighvariabilityandplayablegame,intheusualidletimecandeveloptheirownpicturesandenjoyintellectualpuzzles,morethantheidlewishtorelax.Jigsawisanadultsandchildrencanplaythegame,itcandevelopintelligenceandabilitytohelppeopleimprovetheirbrainstosolveproblems.Puzzlesalsohelphand-eyecoordination,playerscantrainandlearn"some"relationshipwiththe"All",youcanknowthatmany"parts"canpiecetogetheran"All",aswellasan"All"iscomposedofmany"partial"composed.

ThemainsubjectisembeddedintheLinuxenvironmentusingClanguageandQTforasmallgamedevelopment.Selectapicturepuzzlegame,clicktheboxtomakethepicturemove,whichcanspellacompletepicture,mainlyonthetypeofgametheplayersabilitytorespondtoobserveandimprovetheresilienceoftheremaininggames.

ByanalyzingthisgameCgamedevelopmentprocess,functionaldesign.Themainachievementofthegametostartthegame,changetheimage,selectgamedifficulty(9Palacebeginner,16intermediateand25PalacePalacesenior),fightingperformancestatistics,standings,backgroundmusicandotherfunctions.Gamebeautifulinterface,easyoperation,completefunctions,isthemajorityofgamerslikeagame,withacertaincomplexityandplayability.

Keywords:

puzzlegame;Embedded;Linux;QT

目  录

1前言

1.1项目的目的与意义

现代科学技术的发展,改变了人类的生活,作为新世纪的大学生,应该站在时代发展的前沿,掌握最先进的现代科学技术知识,以适应社会的发展,应能够独立地完成各种应要面临的任务,成为一名有创新意识的新型人才。

目前,很多技术领域依旧都涉及到了C语言。

C语言是面向过程编程,并涉及到网络、多线程等重要的基础知识。

该课题的主要目的是使C游戏开发者深入理解所学的C语言,并实践于该游戏设计中,深刻体会以前所学的有关C程序设计方面的语言基础、事件处理、应用程序以及图形用户界面设计等方面的知识,加深对结构化设计思想的理解,能对系统功能进行分析,并设计合理的结构等。

学会使用C系统,其中包括对程序的调试、运行、保存等知识的运用,还包括提高程序开发功能,能运用合理的方法简化C程序的操作,开发过程中应培养分析问题、解决问题的能力。

基于QT组件技术的拼图游戏软件是一款具有娱乐性、益智性、便捷性的游戏软件。

此软件可以使用户放松心情,享受于拼图游戏的乐趣之中。

该游戏软件可以让用户选择适合自己的主题与难度,根据用户的不同水平,锻炼其图片记忆能力以及拼凑还原能力。

游戏结束后亦可让用户清晰了解到自己的游戏状态水平,便于调整自己对这款游戏的新的难度要求。

另外要求软件设计精致,画面亲和,人机交互高效快捷,能够给用户带来人性化的服务。

软件面向的主流群体集中在儿童,但也适宜青年人或者老人使用,提供了适宜各类用户群体的图片风格与难度设置。

不论是旨在轻松娱乐,还是益智教育的目的,该软件都是一款家庭生活中以及学习生活的必备软件。

设计并实现基于QT组件技术的拼图游戏软件作为自己的毕业课题设计是对学校基础课程、专业课程以及实践课程的一次综合性考查,旨在通过此次实践环节的训练,使我们能够更加全面地掌握游戏设计的整体策划以及系统地掌握游戏设计的体系结构。

通过对我们所做游戏进行的类型确定、前期分析、整体策划以及设计制作过程中所涉及的相关技术的学习和掌握,提高了我们的实践能力,为我们在计算机技术的应用上拓宽了道路,对进入游戏设计这一领域的深入研究做了准备。

此外,QT组件在界面开发上的应用一直处于热门,这次的系统全面的实践可以说是一次很好的锻炼,会对以后工作生活带来积极的影响。

1.2系统开发方法介绍

目前比较成熟的系统开发方法有:

生命周期法、原型法、面向对象法等。

生命周期法:

把一个信息系统从其提出、分析、设计和使用,直到停止使用的整个生存期视为一个生命周期。

整个生命周期划分为五个主要工作阶段:

可行性分析阶段、系统分析阶段、系统设计阶段、系统实施阶段和系统运行、维护与评价阶段。

通常采用结构化系统分析和系统设计方法,自上而下分析、设计,强调开发过程的整体性和全局性;开发过程在时间上基本按阶段进行,任务明确;结合用户需求进行开发;开发周期长,维护不方便。

适用于开发需求较明确固定的信息系统。

“结构化分析方法(StructuredMethod,结构化方法)是面向过程的程序设计的方法,是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。

结构是指系统内各个组成要素之间的相互联系、相互作用的框架。

结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。

针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。

结构化分析方法给出一组帮助系统分析人员产生功能规约的原理与技术。

它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。

原型法:

是系统开发者在初步了解用户需求的基础上,开发出能实现系统最基本功能的一个原型,再根据用户对原型使用与评价的意见,提出修改方案,修改完善原型,如此反复多次,直到得到用户满意的最终系统为止。

开发过程以用户为中心,开发周期短。

适用于开发需求不够明确或不断变化的软件。

面向对象方法(Object-OrientedMethod)是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,简称OO(Object-Oriented)方法,是建立在“对象”概念基础上的方法学。

对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。

而每继承性是对具有层次关系的类的属性和操作进行共享的一种方式。

所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。

面向过程方法的开发过程:

分析当前的情况,做出反映当前物理模型的DFD;

推导出等价的逻辑模型的DFD;

设计新的逻辑系统,生成数据字典和基元描述;

建立人机接口,提出可供选择的目标系统物理模型的DFD;

确定各种方案的成本和风险等级,据此对各种方案进行分析;

选择一种方案;

建立完整的需求规约。

面向对象方法的开发过程:

分析确定在问题空间和解空间出现的全部对象及其属性;

  确定应施加于每个对象的操作,即对象固有的处理能力;

  分析对象间的联系,确定对象彼此间传递的消息;

  设计对象的消息模式,消息模式和处理能力共同构成对象的外部特性;

  分析各个对象的外部特性,将具有相同外部特性的对象归为一类,从而确定所需要的类;

  确定类间的继承关系,将各对象的公共性质放在较上层的类中描述,通过继承来共享对公共性质的描述;

  设计每个类关于对象外部特性的描述;

  设计每个类的内部实现(数据结构和方法);

  创建所需的对象(类的实例),实现对象间应有的联系(发消息)。

1.3本文结构

本文第一部分主要以前言为主,说明了文章的研究背景、主要工作,概要说明了所做的工作。

第二部分主要是C语言以及相应开发工具的相关知识介绍,介绍了C语言,开发环境,QTCreator。

第三部分叙述了设计可行性。

第四部分为总体设计,包括了功能需求,总体设计方案,系统流程设计,功能模块的设计。

第五部分为详细设计,包括设计当中涉及到的相关算法,模块命名,系统快照。

第六部分为测试部分,包括了所涉及的测试用例,测试方法。

 

2项目开发语言及开发环境

2.1C语言

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。

它由美国贝尔实验室的DennisM.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。

它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件、三维、二维图形和动画,具体应用例如单片机以及嵌入式系统开发。

2.1.1设计特性

C是一种融合了控制特性的现代语言,而在计算机科学的理论与实践中,控制特性是很重要的。

其设计使得用户可以自然地采用自顶而下的规划、结构化的编程,以及模块化的设计。

这种做法使得编写出的程序更可靠、更易懂。

C语言是种通用的、面向过程的程序语言。

它具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。

下面只介绍了c语言最容易理解的一般特点,由于C语言的这些优点,使c语言应用面很广。

2.1.2高效性

C是一种高效的语言。

在设计上它充分利用了当前计算机在能力上的优点。

C程序往往很紧凑且运行速度快。

事实上,C可以表现出通常只有汇编语言才具有的精细的控制能力。

如果愿意,可以细调程序以获得最大的速度或最大的内存使用率。

C语言的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。

这些数据类型能用来实现各种复杂的数据结构(如链表、树、栈等)的运算,尤其是指针类型数据,使用起来比趴sc从更为灵活、多样;c语言的运算符包含的范围很广,共有34种运算符。

c把括号、赋值、强制类型转换等都作为运算符处理,从而使c的运算类型极其丰富,表达式类型多样化。

灵活使用各种运算符可以实现在其他高级语言中难以实现的运算。

C语言的一个语句可完成多项操作,一个表达式也可以完成多项操作。

书写简练,源程序短,因而输入程序工作量小。

2.1.3可移植性

C是一种可移植语言。

这意味着,在一个系统上编写的C程序经过很少改动或不经修改就可以在其他系统上运行。

如果修改是必须的,则通常只须改变伴随主程序的一个头文件中的几项内容即可。

C在可移植性方面处于领先地位。

C编译器在大约40中系统上可用,包括从使用8位微处理器的计算机到Cary超级计算机。

不过,程序中为访问特定硬件设备或操作系统的特殊功能而专门编写的部分,通常是不能移植的。

由于C与UNIX的紧密联系,UNIX系统通常都带有一个C编译器作为程序包的一部分。

Linxu中同样也包括一个C编译器。

个人计算机,包括运行不同版本的Windows和Macintosh的PC,可使用若干种C编译器。

所以不论使用的是家用计算机、专业工作站还是大型机,都很容易得到对您的特定系统的C编译器。

2.1.4强大的功能和灵活性

C强大而又灵活。

例如强大而灵活的UNIX操作系统的大部分便是C编写的。

其他语言(如FORTANT、Perl、Python、Pascal、LISP、Logo和BASIC)的许多编译器和解释器也都是C编写的。

 C程序一般只比汇编程序生成的目标代码的执行效率低10%一20%.却比其他高级语言的执行效率高。

 c语言的移植性好。

主要表现在只要对这种语言稍加修改,使可以适应个向型号的机器或各类操作系统。

2.1.5面向编程人员

C面向编程人员的需要。

它允许您访问硬件,并可以操纵内存中的特定位。

它具有丰富的运算符供选择,能够简洁地表达自己的意图。

在限制所能做的事情方面,C不如Pascal这样的语言严格。

这种灵活性是优点,同时也是一种危险。

优点在于:

许多任务在C中都简单的多。

危险在于:

使用C时,可能会犯在使用其他语言时不会犯的错误。

C给予更多的自由,但同时也会承担更大的风险。

另外,多数C实现都有一个大型的库,其中包含有用的C函数。

这些函数能够处理编程人员通常面对的许多需求。

2.1.6缺点

C也有一些缺点,如C在表达自由方便的自由会增加风险。

尤其是C对指针的使用,意味着可能会犯难以追踪的编程错误。

C的简洁性与丰富的运算符相结合,使其可能会编写出极难理解的代码。

2.2开发环境

操作系统:

Ubuntu12.0.1

处理器:

Pentium(R)Dual-CoreCPUE6300@2.8GHz2.8GH

安装内存(RAM):

2.00GB

编译器:

minGW移植到windows下的gcc编译器

调试器:

minGW移植到windows下的gdb调试器

Make:

minGW中的mingw32-make

QtC++GUI

2.3QTCreator

QtCreator是跨平台的QtIDE,QtCreator是Qt被Nokia收购后推出的一款新的轻量级集成开发环境(IDE)。

此IDE能够跨平台运行,支持的系统包括Linux(32位及64位)、MacOSX以及Windows。

根据官方描述,QtCreator的设计目标是使开发人员能够利用Qt这个应用程序框架更加快速及轻易的完成开发任务。

QtCreator包括项目生成向导、高级的C++代码编辑器、浏览文件及类的工具、集成了QtDesigner、QtAssistant、QtLinguist、图形化的GDB调试前端,集成qmake构建工具等。

QtCreator主要是为了帮助新Qt用户更快速入门并运行项目,还可提高有经验的Qt开发人员的工作效率。

语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮助代码折叠括号匹配和括号选择模式高级编辑功能。

集成了领先的版本控制软件,包括Git、Perforce和Subversion开放式文件,无须知晓确切的名称或位置搜索类和文件跨不同位置或文件沿用符号在头文件和源文件,或在声明和定义之间切换集成了特定于Qt的功能,如信号与槽(Signals&Slots)图示调试器,对Qt类结构可一目了然集成了QtDesigner可视化布局和格式构建器只需单击一下就可生成和运行Qt项目。

2.4嵌入式开发

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。

嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。

特别是随着消费家电的智能化,嵌入式更显重要。

像我们平常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(SetTopBox)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

嵌入式系统是用来控制或者监视机器、装置、工厂等大规模设备的系统。

嵌入式系统以应用为中心、以计算机技术为基础、软硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分。

通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板。

事实上,所有带有数字接口的设备,如手表、微波炉、录像机、汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是由单个程序实现整个控制逻辑。

嵌入式开发一般具有以下特点:

可裁剪性。

支持开放性和可伸缩性的体系结构。

强实时性。

EOS实时性一般较强,可用于各种设备控制中。

统一的接口。

提供设备统一的驱动接口。

操作方便、简单、提供友好的图形GUI和图形界面,追求易学易用。

提供强大的网络功能,支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口。

强稳定性,弱交互性。

嵌入式系统一旦开始运行就不需要用户过多的干预、这就要负责系统管理的EOS具有较强的稳定性。

嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令向用户程序提供服务。

固化代码。

在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。

更好的硬件适应性,也就是良好的移植性。

嵌入式系统和具体应用有机地结合在一起,它的升级换代也是和具体产品同步进行,因此嵌入式系统产品一旦进入市场,具有较长的生命周期。

 

3可行性分析

3.1可行性分析所采用的方法和步骤

可行性分析是通过对项目的主要内容和配套条件,如市场需求、资源供应、建设规模、工艺路线、设备选型、环境影响、资金筹措、盈利能力等,从技术、经济、工程等方面进行调查研究和分析比较,并对项目建成以后可能取得的财务、经济效益及社会环境影响进行预测,从而提出该项目是否值得投资和如何进行建设的咨询意见,为项目决策提供依据的一种综合性的系统分析方法。

可行性分析应具有预见性、公正性、可靠性、科学性的特点。

我国可行性研究存在的主要问题,一是工程技术方案的研究论证深度不够。

按照国外的通常做法,可行性研究阶段的研究深度应能达到定方案的程度,因此要求在工程技术方案论证,应达到BasicDesign或ConceptDesign的程度,基本相当于我国的初步设计应达到的水平,应提出明确的设备清单;二是财务评价就项目论项目,这与国外利用企业理财的理论和方法进行资本预算管理,对投资项目进行投资决策和融资决策的通行做法存在重大差异,并且在经济评价方面不恰当地使用了"国民经济评价"的概念,由此引起一系列的认识误区;三是在市场分析、组织机构分析等方面与国外差别较大,研究深度严重不足;四是不重视多方案的比选及项目风险分析,或者分析的内容、深度严重不足,缺乏项目周期各阶段风险管理的统一筹划及策略论证。

通过研究分析拼图游戏所具备的能力及实现的方法来确定主体结构。

利用现阶段我所能达到的能力,以最简洁、最容易的办法,边开发边测试边修改,实现一个初级游戏软件。

3.2可行性分析

由于本游戏是毕业设计,不过分强调直接的经济效益和其日后的发展方向,只在注重自身水平和能力的提高,同时对自身的经济要求也不高,只要有一台能运行Java软件的电脑便可,所以基本上不用考虑到经济问题。

可用与本游戏的编程语言有VB,Java,C等,考虑到用于编写程序的困难度,和对语言的了解程度,选择C作为编程语言。

需要对变量定义、变量初始化、界面初始化、游戏初始化、然后进入游戏、处理游戏过程中的各种操作。

本游戏的开发作为毕业设计,目的在于巩固先前所学的知识,以个人为单位,仅供个人平常娱乐所用,无须考虑社会影响,不用考虑法律、版权等社会因素,且此软件的开发不触犯法律,所以在这方面是完全可行的。

 

3.3稳定性

现在做出来的只是一个拼图游戏的核心部分,这些代码经过许多测试和修改稳定性也比较强了。

开始时鼠标单击会选中拼图区之外的图块,经过修改后鼠标不会选中拼图区之外的任何部分,map映射数组和selected结构在使用前都需要经过测试保证其正确,然后才使用的。

保证map数组不会出现越界错误,map数组和selected结构不会存入不正确的数据。

这些都是经过测试通过了的。

鼠标单击图块边缘时选中的图块也是经过精确的计算的到,不会出现单击图块边缘时明明是单击的这个图块,却由于计算偏差选中了另一个图块。

这些精确的计算也都是通过了软件的精确性测试通过了的。

 

 

4总体设计

即对有关系统全局问题的设计,也就是设计系统总的处理方案,又称系统概要设计。

它包括:

计算机配置设计、系统模块结构设计、数据库和文件设计、代码设计以及系统可靠性与内部控制设计等内容。

软件功能分解属于下列软件开发中的总体设计阶段。

它包括:

计算机配置设计、系统模块结构设计、数据库和文件设计、代码设计以及系统可靠性与内部控制设计等内容。

软件功能分解属于下列软件开发中的总体设计阶段。

4.1功能需求

用户对于该拼图游戏软件的需求主要体现在以下几个功能:

1.实现程序GUI图形界面;

2.实现游戏开始、退出等功能;

3.实现鼠标或键盘事件响应模块的功能;

4.实现可选难度等级功能;

5.实现输赢自动判别功能;

6.实现游戏图片更换功能;

7.实现进行游戏同时可以查看原图功能;

8.实现游戏内图片更换、重玩、返回界面、退出功能;

4.2总体设计方案

在开始游戏界面后,设计本程序能够载入默认图片(用户也可以选择想要的其它图片),程序默认难度为9宫格(用户也可以选择想要的其他难度),还设计实现背景音乐的播放功能等。

在本程序中,对于图片的分割、拼凑、判断图片是否可以移动等都是设计的关键。

总体设计方案中主要说明前期工作中对于分割图片以及判断拼图是否成功这两点的设计。

对于分割图片是用像素点来实现的,同时对图片进行了自动缩放,这样一来就可以使得图片分割后看起来更连贯。

拆分图片后,把分好的图片存储到一个image数组中,对于可移动的块其实是按钮,每个按钮上都有一个icon,通过随机把image数组中的图片通过imageIcon的转化

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1