基于Qt的嵌入式终端应用程序——五子棋游戏开发Word文件下载.doc
- 文档编号:3671001
- 上传时间:2023-05-02
- 格式:DOC
- 页数:30
- 大小:487KB
基于Qt的嵌入式终端应用程序——五子棋游戏开发Word文件下载.doc
《基于Qt的嵌入式终端应用程序——五子棋游戏开发Word文件下载.doc》由会员分享,可在线阅读,更多相关《基于Qt的嵌入式终端应用程序——五子棋游戏开发Word文件下载.doc(30页珍藏版)》请在冰点文库上搜索。
Ö
1.应用与非应用类:
〇工程〇科研〇教学建设〇理论分析〇模拟
2.软件与软硬结合类:
〇软件〇硬件〇软硬结合〇非软硬件
(1、2类中必须各选一项适合自己题目的类型在〇内打√)
主要研究内容及指标:
1.用Qt-creator进行五子棋应用程序的设计。
1)建立主机开发环境;
2)开发应用程序;
2.将应用程序移植到arm2440开发板上。
主要参考文献:
[1]金春霞,白秋产.基于Qt技术开发与实现.北京:
中国青年出版社,2002
[2]于建新,贾世祥.嵌入式应用程序开发综合实验9例.北京:
清华大学出版社,2004
[3]基于arm2440之Linux移植开发实战指南.
[4]侯捷,孟岩.智能五子棋算法的设计实现.
[5]彭建国,张书.五子棋开局指南
阶段规划:
1.Qt的基本内容的学习,包括软件安装和库函数,API函数,组件工具的应用,信号和曹函数的运用等基本技能的理解和学习。
2.熟练运用Qt尝试进行五子棋游戏的程序编写和界面处理,学习arm的系统移植和第三方资源库的配置,学习熟悉应用程序的烧写过程。
3.全部完成五子棋游戏的应用程序,并且烧写进开发板。
最后成功运行。
开题时间
2015.3.2
完成论文时间
2015.5.24
专家审定意见:
系主任签字:
年月日
注:
1.任务书由指导教师填写后交给学生,要求学生妥善保存。
2.此任务书夹于论文扉页与论文一并装订,作为论文评分依据之。
摘要
人工智能与生物工程、空间技术并称为二十一世纪的三大尖端技术,是近几年非常活跃的研究领域之一。
它主要是研究如何使计算机去做那些只能靠人力才能做的事情。
人机对战是人工智能研究的其中一个分支,它的研究为人工智能带来了许多的重要的方法和理论,并且产生了广泛的社会和学术影响。
研究其计算机算法,可以让我们看到人工智能的雏形,也有助于我们人脑的开发。
更有五子棋的游戏源于我国,研究它不仅让更多的外国人了解五子棋,更有助于我国优秀文化的推广和传播。
本论文以五子棋游戏作为研究课题,对五子棋的算法与规则做了研究,阐述了如何在Linux下用Qt来开发实现五子棋游戏并且给出了具体实现的方法。
关键词:
五子棋Qt人工智能arm2440
—IV—
ABSTRACT
Artificialintelligenceandbiotechnology,spacetechnology,andknownasthe21stcenturythethreecutting-edgetechnology,inrecentyears,averyactivefieldofresearchisoneofthe.Itmainlystudieshowtomakethecomputerdothatonlyrelyonmanpowertodo.Man-machinewaristheartificialintelligenceresearchwhereabranch,itsresearchforartificialintelligencehasresultedinanumberofimportantmethodandtheory,andproducedawiderangeofsocialandacademicimpact.Thestudyofcomputeralgorithms,wecanseetheprototypeofartificialintelligencedevelopment,butalsohelpustohumanbrain.MoreGobanggamesourceinourcountry,theitnotonlyletmoreforeignerstounderstandGobang,butalsohelpinthepromotionanddisseminationoftheexcellentcultureinourcountry.Thispapertakesthechessgameastheresearchsubject,theGobangalgorithmandruletodotheresearch,elaboratedhowinlinuxusingQTtodeveloptoachieveGobanggameandgivetheconcretemethodofrealizingthe.
Keywords:
GobangQtartificialintelligencearm2440
前言
目录
摘要 I
Abstract II
前言 IV
1绪论 1
1.1选题的目的和意义 1
1.2课题研究的主要内容 1
1.3五子棋的一些规则和术语 1
2系统需求分析 3
2.1系统需求 3
2.2功能需求 3
2.3系统的设计目标 3
3系统开发的技术背景 5
3.1Qt技术 5
3.2arm2440开发板简介 5
3.3Linux操作系统简介 6
3.4可行性分析 6
4系统总体设计 8
4.1五子棋游戏设计原则 8
4.2五子棋游戏的总体设计结构 8
5系统模块设计 9
5.1用Qt-creator进行五子棋应用程序的主要功能实现 9
5.2将应用程序移植到arm2440的开发板上 13
6系统调试 18
6.1五子棋游戏测试概述 18
6.2系统设计和移植过程中出现的问题及解决方法 18
结论 21
参考文献 22
致谢 23
前言
在嵌入式技术的不断发展和推广下,嵌入式的应用领域也变得广泛起来。
随着IC设计的不断发展衍生出的工业化ARM芯片,可以预见ARM微处理机在未来绝对是嵌入式开发的主宰。
在开发五子棋人机对战中的计算机算法的同时,让我们看到人工智能的稚形,它有助于我们人脑的开发。
五子棋最早是我国古代先人发明的,研究它不仅可以让五子棋更国际化,还助于我国优秀文化的推广。
所以我们以五子棋游戏作为毕业设计的研究课题,更对五子棋的算法与规则做出研究,阐述如何在Linux环境下用Qt来开发五子棋游戏。
所有用户界面都采用能跨多平台的Qt图形界面设计软件进行开发实现,这是因为Qt图形界面设计具有优良的跨平台、面向对象、丰富的API、大量的开发文档等诸多优点。
目前,五子棋这一棋类运动已迅速在国际上发展起来。
现如今已经有40多个国家和地区开展了五子棋相关活动和比赛。
但由于人们对于五子棋不同的用意及使用方法,从而对五子棋的爱称也不一样,如韩国人把五子棋称为“情侣棋”,言下之意也就是说情人之间下五子棋有利于增加情感和交流;
欧洲人则称之为“绅士棋”,喻棋手下五子棋的君子风度胜似绅士;
美洲人称之为“商业棋”,意思可能是边下五子棋边谈生意,是商业贸易之桥;
日本人则称之为“中老年棋”等等。
但不同语言、地区的人们都可以借助五子棋这一简单而又深奥的棋艺进行交流、比赛,以增进友谊。
我国是上世纪90年代引进了五子棋世界规则,此后的十多年里,五子棋在民间开始迅速的传播开来。
北京是五子棋发展最早也是普及最高的地区,1992年就成立了我国的第一个五子棋民间组织——“京都五子棋社”。
在北京的带动下,我国其他地区也先后成立了五子棋组织,从此积极的投身于这项益智的游戏中,2004年成立中国围棋协会五子棋分会,它属于中国五子棋界的领导机构,并且先后在部分地区组织俱乐部,组织比赛,让越来越多的人参与和喜爱这项活动,但是中国还是没有专业的棋手,在这方面的相关规则和体系还不完善,能够真正弄懂的人还是很少,所以中国在五子棋方面的发展空间是很大的,这就需要我们不断的努力探索和研究才能把五子棋发展的更加壮大。
那么在现在网络五子棋游戏的产生也让更多的人收益,人们不仅可以和电脑下棋,还可以和异地的陌生人下棋,更可以在下棋的时候和对方交流心得,这就是我此次设计的主题,在未来的五子棋的发展来说的话,也许比赛的规则会改变,棋局会变的更复杂且所需的技巧也会越来越多,这就需要我们所有人的努力才会实现了。
1绪论
1.1选题的目的及意义
五子棋对人的智力开发有一些益处,,并且在非智力因素上的帮助也是很明显的,比如毅力、耐心、细心、思考方式等等。
五子棋起源于我国古代,有着广泛的群众基础。
但与世界先进的五子棋技术相比,我们的棋艺水平还有待进一步提高,所以我们要积极地推广五子棋,宣传五子棋。
中国作为五子棋的发源国,不仅要回到国际大家庭中,更重要的是要靠我们的力量为五子棋在下个世纪的发展起到世界性的推动作用,并为国际连珠棋成为奥运项目做出自己的贡献!
1.2课题研究的主要内容
开发主机装有Linux。
我们选择QT-embedded-2.3.4和Qtopia作为开发环境,下载RPM包并安装。
QtEmbedded和Qtopia函数库:
包含了完整的开发嵌入式Linux应用程序的核心函数库。
主要完成的任务有NFS配置及使用,嵌入式Linux开发交叉编译器的安装,Bootloader的编译与烧写,Linux内核的编译与烧写,根文件系统的烧写与NFS挂载,编译第三方库,即在开发板上Qt所用到的库文件。
安装完这些,再加上g++(GNUC++编译器),就可以进行基于Qtopia应用程序的开发、编译和调试了。
1.3五子棋的一些规则和属术语
五子棋游戏是专业围棋的变体。
五子棋的规则尽管比起那些围棋要复杂一些,但它仍旧很简单(Sakata和Ikawa,1981),这个游戏是在一个15*15的棋盘的交叉点上进行的。
垂直线用字母A到O标注,水平线用数字1到15标注。
棋盘左下方的位置的A1.黑棋白棋两位玩家轮流执他们自己的颜色的棋子放在棋盘中空的十字交叉点上。
执黑子的玩家先开始下棋,并且必须把棋子放在棋盘的正中间(H8)。
最先完成五子连线(垂直、水平或斜线方向)的玩家获胜。
五子棋中黑子有一些限制,例如,对于黑子来说有些落子是被认为禁止的,如果黑子落子被禁止不是偶然的就是被迫的,那么白子就获胜了,禁止黑子落子的情况有:
‘长连’,‘双四’,‘双三’(具体定义见第三部分)。
白子没有禁止落子的情况,所以白子也可以制造一个‘长连’来赢得游戏,如果没有选手成功的完成五子连线,并且黑子没有禁止落子和棋盘已经满了,则认为这盘游戏平局。
下面我们提供一系列术语以及他们的定义。
长连:
六个或六个以上的同色棋子连成一线,垂直方向、水平方向或斜线方向(图2“A”处)。
五珠:
精确的只有五个同色的棋子连成一线,垂直方向、水平方向或斜线方向。
冲四:
四个同色棋子连成一线(垂直、水平或斜线方向)并且两边的位置是空的,是一定会赢得一种情况(图2“D”处)。
四珠:
四个一种颜色的棋子连成一排,再添加一个棋子就能连成五个。
三珠:
三个相同颜色的棋子连成一线,或是在三个棋子间有一个空位,只要再下一个相同的棋子在空位就能形成冲四。
双四:
只下一步棋,就能形成一个同时存在的不止一排形成四子连线(图2“B”处)。
双三:
只下一步棋,就能形成一个同时存在的不止一个三子连线(图2“C”处)。
四三:
只下一步棋,就能形成一个四子连线和一个三子连线同时存在的情况,对于黑子的胜利这是一种常用的办法去建立一个胜利的布局(图2“E”处)。
图2
2系统需求分析
随着现实生活中生活节奏的加速,生活压力的加大,休闲娱乐变得越来越重要。
五子棋子游戏,玩法简单,娱乐性也很高。
五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。
通过对五子棋的设计与开发,了解和掌握游戏开发的原理与方法。
让电脑像人脑一样思考,一直是人工智能发展的最终目标。
作为一门边缘学科,它有诸多的研究领域,博弈即为其中之一。
所以对于本次研究可谓是集休闲功能和科学研究两不误了。
2.1系统需求
五子棋作为一款休闲益智游戏,它最大的优点在于游戏规则家喻户晓,简单,上手快,趣味性强,所以受广大用户青睐,在各大提供棋牌类游戏的平台都可以看到玩五子棋游戏的人很多。
休闲益智游戏中等级并不是最重要的追求目标,通过对游戏规则的熟悉,能很快上手掌握其操作方式,也更适合男女老幼全家共同娱乐,花费时间简短,速战速决,在短时间内感受到游戏的乐趣,完全享受气氛轻松活跃的游戏过程。
此种娱乐方式既不耽误时间也能轻松调剂娱乐,充分适合现代人们的娱乐需求。
更主要的是开发了人的智力,成为年轻一代最流行的游戏,据统计,五子棋游戏的玩家中,学生占了接近三分之一的比例,对学生的智力健康成长起一定作用,正所谓休闲娱乐两不误。
2.2功能需求
本应用要求界面简洁,美观,交互性要比较强。
操作方便,得体,把五子棋游戏规则中最基本的规则体现出来,比如“悔棋”、“重来”等。
五子棋还有一大特点就是速战速决,电脑应在很短时间内就应做出判断,所以要合理的设计判断胜负的函数。
由于“禁手”这一规则很复杂,所以在本应用中,采用“无禁手”的规则,让规则简单化。
这样,让初学的人对五子棋有更加高的可控度,能够真正体会到下五子棋的快乐。
在黑方或者白方任意一方获得胜利,都能及时的显示胜负的一方。
2.3系统的设计目标
设计基于Qt的五子棋程序接收的各种消息可以分为两类:
一类是由硬件装置产生的消息(如鼠标被按下),另一类是由玩家发送的消息。
当指定事件发生时,游戏判断胜负的算法会根据下棋的相应的位置来进行。
需要实现的的游戏重要功能:
1.主窗口:
负责管理所有的部件,创建所有信号和槽的连接
2.棋盘类:
绘制棋盘,把棋盘看成一个二维数组,处理鼠标点击事件,在点击处一定范围内绘制棋子,然后最主要的就是算法,就是怎么走才算赢,这个要花时间研究
3.胜负显示,使游戏的人体会到胜利的快乐。
4.设计按钮达到控制开始、重来、悔棋、退出等功能。
结合实际玩家需要,运用Qt技术设计出五子棋游戏。
要用鼠标来获取坐标(mousePressEvent()),点击的时候应有一定的范围。
增加图形界面类(paintEvent()),把显示功能从棋盘类中脱离出来,棋盘只负责棋子坐标数据的存储和更新。
mRecord类对下棋方的相关信息进行了记录,mnextturn变量对轮到哪一方下棋进行了记录。
为使用界面更加的美观,打算给界面贴一张背景图(label->
setPixmap()),棋盘的网格没有用QPainter类的drawline()来实现,因为直接画出来的线条不美观。
棋子本身没有用采用QPainter类的drawEllipse()画圆并填充来实现,而是直接drawImage()贴图来实现。
设计的开始、重来、退出、悔棋按钮都用QPushButton类来实现,并实现信号和槽函数的链接。
游戏玩家可以根据游戏按键来控制游戏的开始,暂停和结束,在进入游戏后,玩家可以通过鼠标点击来下棋,让玩家体会到游戏的快乐以及战斗的快乐。
3系统开发的技术背景
本设计与建设过程中应用的主要技术有用Qt开发五子棋应用程序的开发,还有就是应用程序的移植,包括u-boot的烧写,内核的裁剪,根文件系统的烧写,编译第三方库文件。
3.1Qt技术介绍
Qt是一个多平台的C++图形用户界面应用程序框架,它是基于面向对象的思想进行相应开发的,支持真正意义上的组件编程,可以为不同用户提供华丽的用户界面。
信号和插槽机制是Qt的核心机制,也是Qt的核心特性。
Qt有着自身的特点,不同于其他界面开发软件,其中一个重要的地方,便是信号与插槽机制。
信号和插槽是Qt自行定义的一种通信机制,Qt编程语法是完全符合标准C/C++语言的,但是信号与插槽机制却是独立于标准的C/C++,因此要正确的处理信号和插槽,必须借助一个称为moc(MetaObjectCompiler)的Qt工具,该工具是一个C++预处理程序,它为高层次的事件处理自动生成所需要的附加代码。
信号/槽机制是在QObject类中实现的。
在QObject类或者其一个子类(比如:
QWidget类)继承的所有类中,都存在了信号和槽。
当对象改变其状态的时候,信号被发送,对象不关心有没有其他对象接收到这个信号。
槽是类的正常成员函数,可以将信号和槽通过connect()函数任意连接。
当一个信号被发射,它所连接的槽会被立即执行,如同一个普通函数调用一样。
Qt的安装和配置:
1.下载Qt安装包
2. 安装QtCreator,再安装QtLibraries
3. 打开QtCreator,选择‘工具|选项’对话框,在‘构建和运行’中点击添加按钮,选择qmake.exe文件。
4. 跟着新建项目的向导一步一步做就可以了,项目的工作目录不能有中文,否则make的时候会报错。
3.2arm2440开发板简介
Arm2440是由飞凌嵌入式技术有限公司设计生产的一款嵌入式开发平台,适用于设计移动手持设备类产品。
Arm2440开发板采用核心板+底板设计,性能稳定可靠,具有高性能、低功耗、接口丰富和体积小等优良特性。
目前已成功移植Linux,WINCE等操作系统到开发板。
Arm2440开发板采用核心板+底板结构,开发板的布局和走线经过精心设计,可稳定运行在400MHz。
接口丰富,功能强大,适用于各种手持设备,消费电子和工业控制设备的开发。
三星公司推出的这款16/32位RISC处理器S3C2440A,是面向高端手持设备或其它一般应用而设计的芯片。
整体设计融合了MMU、AMBABUS和Harvard结构。
具有独立的16KB指令Cache和16KB数据Cache。
3.3Linux操作系统简介
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
它能运行主要的UNIX工具软件、应用程序和网络协议。
它支持32位和64位硬件。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
在安装linux系统的时候我们必须交叉编译已下载的linux源码。
我们编译的是2.6的内核,采用的交叉编译器为3.4.1版本。
编译命令:
makemenuconfig(基于文本选单的配置界面)
交叉编译就是在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。
这个编译过程就叫交叉编译。
简单地说,就是在一个平台上生成另一个平台上的可执行代码。
如keil软件,在keil上编译,但在单片机上运行,典型的交叉编译。
我们在开发板上运行的程序,是在PC机上编译的,所以是交叉编译。
3.4可行性分析
进行可行性分析是非常必要的,也是很重要的,本系统的可行性研究主要是参考已存在并正处于运行的类似系统和经过最初的设计目标及进行的市场调查分析为评价尺度,考虑其技术可行性、经济可行性和操作可行性。
可行性研究是为了弄清楚系统开发的项目如何用最小的代价在尽可能短的时间内确定问题是否能够解决,是否值得进行研究的过程,实际上进行可行性分析大大简化了系统设计的过程。
LINUX系统属于开放源代码软件,由于LINUX系统具有稳定、安全、网络负载力强、占用硬件资源少等技术特点,自问世以来得到了迅速推广和应用,并已
发展为当今世界的主流的嵌入式操作系统之一。
LINUX在嵌入式的广泛应用不是偶然的,这就取决于LINUX操作系统特点。
LINUX是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。
这是其他的操作系统所做不到的。
正是由于这一点,来自全世界的无数程序员参与了LINUX的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变。
这让LINUX吸收了无数程序员的精华,不断壮大。
Arm2440开发板的价格也是可以接受的,且有用户指导手册,便宜开发,易于使用。
本应用使用Qt开发,Qt具有良好的可靠性、可用性、可编程性与易用性。
它有优良的跨平台特性,Qt支持MicrosoftWindows95/98、MicrosoftWindowsNT、Linux、Solaris、SunOS、HP-UX、DigitalUNIX、Irix、FreeBSD、BSD/OS、SCO、AIX、OS390、QNX等等众多的操作系统;
并且Qt的良好封装机制也使得Qt的模块化程度非常高,可重用性较好,对于用户开发来说是非常方便的;
Qt还支持主题,基于Qt的应用程序能够在Windows外观、Motif外观,以及其它一些用户化外观主题之间切换;
Qt也提供了大量的联机参考文档,有超文本HTML方式,也有UNIX帮助页Man手册页和补充说明。
对于初学者,其中的指南将一步步介绍如何进行Qt编程;
还有Qt的便利性,支持2D/3D图形渲染,支持OpenGL。
以及本身丰富的API。
Qt为专业应用提供了大量的函数,在Qt的API中含有大约250个C++类,大多数的类都是GUI专有的,甚至还包括正则表达式的处理功能。
本应用前台作为与用户直接交互的界面,在设计考虑功能的同时,也考虑了操作的简洁和方便性,设计了方便用户使用的按钮,如开始按钮,重来按钮,退出按钮,悔棋按钮,目的是让大多数不熟练电脑操作的客户,也能轻松的享受本系统给他们带来的便利。
因此该系统在操作上是可行的。
4系统总体设计
4.1五子棋游戏设计原则
一个好的游戏往往要遵循游戏的设计原则,主要是从实用性,先进性,兼容性和规范性上进行设计。
而各个原则的具体描述如下。
1.实用性原则:
确保具有良好的系统性能,友好的用户界面,较高的处理效率。
2.先进性原则:
采用先进而成熟的技术,使软件具有较高的技术水平和较长的生命周期。
3.兼容性原则:
对于所选硬件系统及平台,能很好地适应开发和使用。
4.规范性原则:
软件设计过程尽量按照规范进行,系统编码,操作系统平台以及所采用的开发方法也按照相应的标准。
4.2五子棋游戏的总体设计结构
本系统主要包括包括绘制出棋子和棋盘,设置出开始、重来、悔棋、退出等按钮功能。
用到了鼠标点击事件的处理,绘制棋子,和棋盘的函数drawpixmap()的使用。
还有胜负的判断显示。
需要实现的的游戏主要功能:
(1)主窗口:
(2)棋盘类:
(3)胜负显示,使游戏的人体会到胜利的快乐。
(4)设计按钮,控制开始、重来、悔棋、退出等功能。
5系统模块设计
5.1用Qt-creator进行五子棋应用程序的主要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Qt 嵌入式 终端 应用程序 五子棋 游戏 开发