基于Qt的中国象棋-毕业论文.docx
《基于Qt的中国象棋-毕业论文.docx》由会员分享,可在线阅读,更多相关《基于Qt的中国象棋-毕业论文.docx(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、毕业设计(论文)中国象棋系 别 :计算机工程学院专业(班级):作者(学号):指导教师:完成日期: 2017年5月11日蚌埠学院教务处制目 录中国象棋1摘 要2Abstract:31 引 言41.1开发背景41.2社会现状42 模型层(M)52.1 棋子模型52.2 生成棋子63视图层(V)73.1 初始化73.2 棋盘73.3 棋子84 控制层(C)94.1 走棋104.2 击杀104.3 走位设计114.3.1车114.3.2马124.3.3象144.3.4仕164.3.5将164.3.6炮184.3.7兵195 人人对战205.1 服务端205.1.1设置信息205.1.2建立通信205.
2、2 客户端215.2.1设置信息215.2.2建立通信216 建立用户216.1 登陆226.2 注册236.3 修改密码237 结 论258 致 谢26参 考 文 献28中国象棋摘 要:在当今这个光怪陆离的时代,互联网的步伐已经深入人心;你随处可见的都是与网络相关的,诸如:网上支付、网上shopping、网络游戏等;本文将介绍中国象棋这个益智游戏,这款游戏老少皆宜,是中国传统游戏,虽然目前市面上中国象棋的app已经很多,但是对于学习和研究,任然具有很高的价值,本次我将实现象棋的象棋的人人对战模式,使用奇趣公司的Qt GUI图形,并使用他们的Qt creator IDE来实现中国象棋,其中使用
3、的是安全可靠通用的TCP协议。 关键词:Qt creator IDE Qt GUITCP lambda CHINESE CHESSAbstract: In todays era of quirky, the pace of the internet has been deeply rooted in the hearts of the people; Everywhere you are related to the network, such as : online payment,online shopping, online games, etc; This art will intro
4、duce the Chinese chess puzzle game, the game for young and old , is a traditional Chinese game, although the Chinese chess of app on the market has a lot of ,but for learning and research, still has the very hight value, all of this I will implement the chess chess mode, using Qt GUI graphical fabul
5、ous company, and use their Qt creator IDE to realize the Chinese chess, the use of which is safe and reliable general TCP protocol. Key words:Qt creator IDE Qt GUITCP基于Qt的中国象棋1 引 言1.1 中国象棋开发背景此次毕业设计定题为中国象棋,源于小时候很喜欢下棋,由此对象棋产生了浓厚的兴趣,中国象棋产生于秦汉之际,历史悠久,其中的各个棋子在全局中都是举足轻重,模仿就是两军对垒,操作感极强;你无论是从什么角度去考虑,象棋的实现都
6、会让你获益,当你使用类、继承、重载、虚函数的时候,你会爱上C+这种语言,爱上Qt GUI。 如今随着计算机科学技术的不断成熟,利用网络传输技术设计出来的中国象棋,其方便快捷的功能已为越来越多人们所了解,并且也越来越发挥着举足轻重的位置。使用计算机用户使用越来越便捷,这些是盘面无法比拟的,而且它还具有直观,低成本,迅速,方便等优点,利用TCP实现实时是可行而必要的。它可以更好的实现操作,具有方便快捷,可以移植性好等优点。1.2社会现状近年随着互联网技术的迅速发展,各种应用软件应运而生,然而中国象棋虽然很普及,但是能跨平台却是寥寥无几。基于这一社会现状,开发了这个中国象棋。中国象棋这个益智游戏,这
7、款游戏老少皆宜,是中国传统游戏,对于学习和研究,任然具有很高的价值,本次我将实现象棋的象棋的人人对战模式,使用奇趣公司的Qt GUI图形,并使用他们的Qt creator IDE来实现中国象棋,其中使用的是安全可靠通用的TCP协议。如此便可以一次开发,多处运行的目的;从而达到跨平台的目的。 2 模型层(M)2.1 棋子类型这里给棋子赋予6个属性;ID:判别棋子;所在行和列:棋子所在的位子;类型:规定棋子移动和击杀方式;颜色:判定对方还是友方;状态:判断棋子是否被击杀或者还活着。以上的属性个人认为都是必要的。#includetypedef enumche,ma,xiang,shi,pao,bin
8、g,jiangtype;typedef enumred,blackcolor;typedef enumlive,diedstatus;class pieprivate: int _pieid; int _row; int _col; type _type; color _color; status _status;public: pie(); pie(int _pieid,int _row,int _col,type _type,color _color,status _status ); /get int getpieid(); int getrow(); int getcol(); typ
9、e gettype(); color getcolor(); status getstatus(); /set void setrow(int row); void setcol(int col); void setstatus(status status);以上是棋子的属性和一些接口,将棋子的属性设置成为私有成员,是基于安全性考虑,防止误操作,导致改变属性值,因此我统一给出了set和get接口。2.2 生成棋子棋子的生成和初始化工作,放在视图层,这样做主要是为了后期我们操作棋子会变得方便。void Widget:init() pienode0=0,1,1,che,red,live; pien
10、ode1=1,1,2,ma,red,live; pienode2=2,1,3,xiang,red,live; pienode3=3,1,4,shi,red,live; pienode4=4,1,5,jiang,red,live; pienode5=5,1,6,shi,red,live; pienode6=6,1,7,xiang,red,live; pienode7=7,1,8,ma,red,live; pienode8=8,1,9,che,red,live; pienode9=9,3,2,pao,red,live; pienode10=10,3,8,pao,red,live; pienode1
11、1=11,4,1,bing,red,live; pienode12=12,4,3,bing,red,live; pienode13=13,4,5,bing,red,live; pienode14=14,4,7,bing,red,live; pienode15=15,4,9,bing,red,live; pienode16=16,10,1,che,black,live; pienode17=17,10,2,ma,black,live; pienode18=18,10,3,xiang,black,live; pienode19=19,10,4,shi,black,live; pienode20=2
12、0,10,5,jiang,black,live; pienode21=21,10,6,shi,black,live; pienode22=22,10,7,xiang,black,live; pienode23=23,10,8,ma,black,live; pienode24=24,10,9,che,black,live; pienode25=25,8,2,pao,black,live; pienode26=26,8,8,pao,black,live; pienode27=27,7,1,bing,black,live; pienode28=28,7,3,bing,black,live; pien
13、ode29=29,7,5,bing,black,live; pienode30=30,7,7,bing,black,live; pienode31=31,7,9,bing,black,live;这里将棋子初始化做成单独的函数,主要是基于对再来一局用户的考虑。3视图层3.1 初始化int selectedpieid;该参数为保存要操作的棋子id;color selectedcolor;该参数为保存要操作的棋子color;bool selected;该参数为标志位,true则进入选择棋子状态,false则进入走棋或者击杀状态;int killedpieid;该参数为保存要击杀的棋子id;color
14、 killedcolor;该参数为保存要击杀的棋子color;QPoint selectpoint;该参数为保存要操作的棋子位子;QPoint movepoint;该参数为保存要操作的棋子移动到的位子;int _r;该参数是显示棋盘间隔大小,同时也是棋子大小参数; 这样可以设置棋局的可视化效果;pie pienode32;3.2棋盘 棋盘的画法主要是调用drawLine函数,根据给定的_r画出特定的棋盘,这里我也给出了相关参数设置的地方,可以对棋盘进行进一步美化操作。 QPainter painter(this); /画棋面 for(int i=1;i11;i+) if(i=1|i=10) /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Qt 中国象棋 毕业论文
限制150内