本站所列毕业设计(论文)资料均属于原创者所有,初衷是为大家在毕业设计(论文)过程中参考和学习交流之用。

毕业设计我帮你

基于QT的中国象棋的设计与实现

基于QT的中国象棋的设计与实现

运用QT跨平台C++图形界面应用程序开发框架编写的多平台中国象棋游戏,实现多种功能,如:网络对战、网络聊天、自由对战、单机对战,以及基本的走棋子,吃棋子,悔棋等。设计友好程序界面UI,符合程序日常使用规范来设计,使游戏程序易于操作,也使程序更加简

如需购买请QQ扫描右边二维码或者加QQ 3449649974 咨询 毕业设计(论文)代做请加QQ 3139476774

无图片信息!

详细描述

基于QT的中国象棋的设计与实现
摘要
随着时代的进步,信息传递的飞速发展,人民生活水平不断提高的今天,网络已成为人们生活中不可或缺的一部分。网络游戏作为一种缓解压力的娱乐手段,正以其特有的魅力,吸引着越来越多的爱好者。为了满足广大象棋爱好者也能享受到网络带来的乐趣,本设计在当前局域网条件下实现了中国象棋的游戏对战。
本象棋程序的实现,可以分为单机和网络两大部分。鉴于局域网的特点和游戏对战的需求,本程序采用C/S的架构来实现网络间的通信。程序主要包涵下面几大模块:图形界面辅助,网络通信模块,图片绘制模块,规则设置模块等。
当前热门网络休闲游戏当属棋牌类游戏,具有广大的市场需求。通过网络联机和相关算法的分析,使用基于QT 5.4的跨平台软件设计,以实现多平台网络中国象棋对弈。
关键词:C/S架构,图片绘制,跨平台,网络间通信,堆栈
 
Design and implementation QT-based Chinese chess interface
Abstract
With the progress of the times, the rapid development of the information transmission, constantly improve people's standard of living today, the network has become an indispensable part of people's life. Network game as a way to ease the pressure of the entertainment media, with its unique charm, attracting more and more lovers. In order to meet chess lovers can enjoy the joy brought by the network, the design and implementation of Chinese chess game in the current local conditions.
The realization of the chess program, can be divided into stand-alone and network of two parts. In view of the features and game LAN demand for war, the program uses C/S architecture to realize the communication between the network. Several big modules mainly include the following procedures: a graphical interface auxiliary, network communication module, image rendering module, the rules set up module etc.
The current popular network casual game is the chess game, has a vast market demand. Through the analysis of network connections and related algorithms, the use of cross platform software design based on QT 5.4, in order to realize multi platform network China chess.
Key Words: C/S architecture,Image rendering,Cross platform,Network,,Stack

第1章前言
1.1 中国象棋游戏设计背景
软件行业经过二十年的高速发展,已经成为了与音乐,影视等全球娱乐产别并驾齐驱的最重要的娱乐产业之一,年销售额占据前茅。游戏,作为软件产业重要不可分割的一个部分,早已全面进入普通家庭的身边。早期的人类社会,犹豫落后的产能和不发达的科技手段,人们的娱乐方式基本都是单一的户外游戏,随着生产力的发展和科技的进步,人们开始有了一种新的游戏方式——依赖于电视等的电子游戏也随着发展的潮流应运而生。
当计算机被发明以后,电子游戏又多了一个全新的载体。随着计算机产业的发展,越来越多的软件和电子游戏在其带动下不断的创新、发展着。自从计算机发明以来,已经向各个行业领域发展,到现如今,计算机已经成为了我们每天工作和生活中不可或缺,必不可少的一部分,电子游戏也逐步渗入到我们的生活娱乐中。
1.2 中国象棋游戏设计意义
至计算机普及的今天,对于可以使用计算机进行软件进行发的编程人员来说,开发一款数自己的游戏,已不再是梦想。随着计算机技术的成熟,越来越多的人有了自己的个人计算机,而个人计算机软件市场的大约80%的销售份额来自于游戏软件,而且,不断有网名加入其中。棋牌游戏属于休闲类游戏,相对与角色扮演类、动作类、即时战略类等游戏,具有上手快、游戏时间短、历史悠久、受众广大等优点,更利于用户进行放松休闲,为广大人群所喜爱,特别是棋类游戏,方便、快捷、操作简单,在休闲娱乐中占据主要地位。作为中华民族悠久历史的代表之一,中国象棋不仅源远流长,而且基础广泛,同时也作为一项智力运动,开始走向世界。为了让其能够更好的被发展,特别制作了基于QT的多平台的网络象棋游戏。
1.3 中国象棋游戏的设计技术要求
主要要求如下:
1.尽量设计友好型游戏界面,对战双方界面显示应当完全一致,尽可能模拟棋盘真实环境。
2.采用C/S架构基于TCP/IP协议下的QT网络编程部分,结合象棋对弈规则的特点,设计一套切实可行的网络间实时通信。
3.制定棋盘及棋子状态数据结构,以达到实时通信、屏幕绘图和用户人机、人人的交互。
4.设计出详细的棋子操作规则限制,并能够提供悔棋等操作。
 
第2章程序需求分析与可行性分析
2.1 需求分析
2.1.1 程序需求分析
象棋,亦作“象碁”,汉族棋类益智游戏,中国象棋在中国有着三千多年的历史,属于二人对抗性游戏的一种。由于用具简单,趣味性强,成为流行极为广泛的棋艺活动。是我国正式开展的78个体育项目之一。中国象棋历史悠久,它难易适中,基本规则简明易懂,古今中外男女老少皆宜,变化丰富细腻,棋盘棋子文字都体现了中国文化[1]。
本程序为中国象棋网上对弈系统,其以网络通信原理结合中国象棋的规则设计完成,是一款能够实现局域网内双人联机对弈的电脑游戏程序,使用Linux平台下的QT5.4.1开发[2],运行于Linux/Windows平台。
2.2.2 程序构成需求分析
本中国象棋对弈程序主要应由:堆栈、图像绘制、规则设置、网络通信、棋子操作等五大部分构成[3]。软件本身即可以作为服务器端,又可以作为客户端,双方建立连接后即可以进行象棋对弈和聊天,也可以选择单机双人对战。
2.3 程序运行需求分析
硬件需求:具备数据处理、可运行的、剩余存储空间大于10M的个人设备,连通的局域网。
软件需求:Linux、IOS、Android、Windows XP等具备QT库的操作系统的终端。对于程序运行平台的要求:必须是Linux、IOS、Android、Windows XP以上具备可运行QT SDK的图形化操作系统平台[4]。
2.2 可行性分析
2.2.1 技术可行性分析
从网络应用层来看,可认为网络是由工作站和服务器组成的,但从传输层和网络层的角度看,工作站和服务器没有本质的区别,它们都是连接到网络上的一台机器,都可以用网络地址或名称来代替。它们之间的通信就是所谓的点对点通信,也叫对等通信。在局域网上,点点通信意味着两个工作站可以直接对话而不用经过文件服务器中转[5]。
通信的基础是套接口(Socket),一个套接口是通讯的一端。socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄[6]。应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
当前系统(Linux)下的QT IDE+SDK对于软件开发的支持已经非常成熟,并且,SDK包涵编程所需的所有Class,如:QSocket、QPainter、QStack、UI等可以使用面相对象的开发方式进行开发,所以在技术上完全可行。
2.2.2 运行可行性分析
当前软件运行不依赖于其他程序,经打包后可直接安装运行,且经测试,对Linux平台下其它软件无影响。在安装后的运行上完全可行。
2.2.3 时间可行性分析
从时间上来看,通过为期4个月的实训后,完全可以在3个月内开发完成。
2.3 程序开发步骤
本程序将严格按照软件开发流程进行开发:
(1)需求分析
(2)概要设计
(3)详细设计
(4)编码
(5)测试
(6)维护

结束语
从接到《基于Qt的中国象棋的设计与实现》题目开始,忙忙碌碌了几个月,我的毕业设计也终将告一段落。自己设计的程序,点击运行,也基本达到了之前的预期效果,心中不经升起一丝成就感,因为这完全是自己亲手打造的第一个、真正意义上的、完整的、能够正常运行的程序。但也受限于自己的能力和时间关系,程序也有一些缺陷、漏洞和不尽人意的地方,比如界面UI的设计粗糙,程序功能不完善,代码架构不合理等。但是,这也只是自己迈出的第一步,通过本次程序的设计实现,更加深刻的体会到了一些道理:做一件事,最重要的不是最终的结果,而是过程和收获,只有坚持不懈的努力,才能到达成功的彼岸。
本程序基本实现了基于互联网的、跨平台的中国象棋游戏,因为现如今大多数象棋游戏都是只能在Windows平台运行,Linux系统平台上的象棋少之又少,而能够支持网络的更少,所以,本次设计的程序,由于使用了Qt开发工具,能够实现一次编码,处处可移植的特点。所以,本程序也可以跨平台进行网络对弈。这应该算是一个创新点。
通过本次的程序设计,我也感受到了Qt工具的强大和专业技能的重要性,对于今后的生活和工作起到了很大的作用。
参考文献
[1] JasminBlanchette.MarkSummerfield.C++GUIQt4编程(第二版).电子工业出版社,2008
[2] 程秉辉,JohnHawke.Windows编程实战-基础练功篇.科学出版社,2005
[3] StanleyB.Lippman.EssentialC++.侯捷译,华中科技大学出版社,2001
[4] 云风.游戏之旅-我的编程感悟.电子工业出版社,2005
[5] 成洁,卢紫毅.Linux窗口程序设计-Qt4精彩实例分析.清华大学出版社,2005
[6] 任泰明.TCP/IP协议与网络编程[M]. 西安电子科技大学出版社,2004
[7] 陆文周.Qt5开发及实例.电子工业出版社,2014
[8] 陈爽.Linux与Qt程序设计.清华大学出版社,2011
[9] Stanley B. Lippman Barbara E.C++Priner.人民邮电出版社,2006
[10] Stephen Prata.C Primer Plus.人民邮电出版社,2005
[11] Kenneth A.Reek.C和指针.人民邮电出版社,2008
[12] 俞甲子,石凡,潘爱民.程序员的自我修养—链接、装载与库.电子工业出版社,2009

目      录
 
第1章  前言 1
1.1 中国象棋游戏设计背景 1
1.2 中国象棋游戏设计意义 1
1.3 中国象棋游戏的设计技术要求 2
第2章  程序需求分析与可行性分析 3
2.1 需求分析 3
2.1.1 程序需求分析 3
2.2.2 程序构成需求分析 3
2.3 程序运行需求分析 3
2.2 可行性分析 4
2.2.1 技术可行性分析 4
2.2.2 运行可行性分析 4
2.2.3 时间可行性分析 4
2.3 程序开发步骤 4
第3章  程序及相关技术简介 5
3.1 程序简介 5
3.2 程序组成 5
3.3 相关技术简介 5
3.3.1 Linux系统平台简介 5
3.3.2 QT简介 6
3.3.3 C/S架构简介 7
第4章  程序分析 8
4.1 程序模块划分 8
4.2 程序模块关系结构 8
4.3 程序部分主要模块具体实现 9
4.3.1 游戏顶层界面绘制及游戏属性设置top-widget模块 9
4.3.1 棋子属性及图片的初始化(顶层数据)chessmen模块 11
第5章  程序设计与实现 14
5.1 数据结构 14
5.1.1 棋盘属性 14
5.1.2 棋子属性 15
5.2 中国象棋走棋规则算法引擎 16
5.2.1 中国象棋走子规则简介 16
5.2.2 部分棋子走子流程算法 18
5.2.3 部分棋子走法引擎算法分析 19
第6章  部分程序模块测试及调试 23
6.1 欢迎模块界面模块测试 23
6.2 程序主界面模块测试 23
6.3 自由对弈模块测试 24
6.3.1 走马模块测试 24
6.3.2 走象模块测试 26
6.3.3 走棋胜利判定模块测试 26
6.3.4 悔棋模块测试 27
6.4 网络对弈模块测试 28
6.4.1 网络对弈模块测试 28
结束语 30
参考文献 31
致谢 32
附录 33


收缩