毕设开题报Word文档格式.docx

上传人:b****4 文档编号:7507159 上传时间:2023-05-08 格式:DOCX 页数:10 大小:57.35KB
下载 相关 举报
毕设开题报Word文档格式.docx_第1页
第1页 / 共10页
毕设开题报Word文档格式.docx_第2页
第2页 / 共10页
毕设开题报Word文档格式.docx_第3页
第3页 / 共10页
毕设开题报Word文档格式.docx_第4页
第4页 / 共10页
毕设开题报Word文档格式.docx_第5页
第5页 / 共10页
毕设开题报Word文档格式.docx_第6页
第6页 / 共10页
毕设开题报Word文档格式.docx_第7页
第7页 / 共10页
毕设开题报Word文档格式.docx_第8页
第8页 / 共10页
毕设开题报Word文档格式.docx_第9页
第9页 / 共10页
毕设开题报Word文档格式.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

毕设开题报Word文档格式.docx

《毕设开题报Word文档格式.docx》由会员分享,可在线阅读,更多相关《毕设开题报Word文档格式.docx(10页珍藏版)》请在冰点文库上搜索。

毕设开题报Word文档格式.docx

4)制定出详细的游戏规则。

3.2具体设计思路

本系统为中国象棋网上对弈,以网络通信原理结合中国象棋的规则设

计完成,是一款能够实现局域网内双人联机对弈的电脑游戏程序。

本系统

主要由数据结构、图像绘制、规则设置、网络通信、棋子操作五本分构成。

3.2.1点对点通信

从OSI参考模型的应用层来看,可认为网络是由工作站和服务器组成的,但从传输层和网络层的角度看,工作站和服务器没有本质的区别,它们都是连接到网络上的一台机器,都可以用网络地址或名称来代替。

它们之间的通信就是所谓的点对点通信,也叫对等通信。

在局域网上,点点通信意味着两个工作站可以直接对话而不用经过文件服务器中转。

通信的基础是套接口(Socket),一个套接口是通讯的一端。

socket通常也称作"

套接字"

,用于描述IP地址和端口,是一个通信链的句柄。

应用程序通常通过"

向网络发出请求或者应答网络请求。

3.2.2屏幕作图和用户交互

屏幕作图与用户的交互为用户提供了一个交互工作环境,称交互界面。

通常在图形显示方式,把屏幕划分成图形区、菜单区和提示区。

菜单功能的好坏直接影响到交互界面的友好性。

交互绘图操作命令是通过某单表达,菜单的设计需考虑到交互方便和提高交互效率。

常见的菜单有文宇菜单和图标菜单两大类,图标菜单较为直观、形象,不受文种不同的限制等优点。

屏幕作图与用户的交互的基本功能一般可归结为绘图功能、图形编辑、尺寸标准、作图工具、显示功能、询问功能、信息转换和二次开发工具等八大功能。

3.2.3棋盘和棋子的设计

1)棋盘

012345678

楚河

汉界

 

图3.1

棋子活动的场所,叫作“棋盘”。

在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共有九十个交叉点,棋子就摆在交叉点上。

中间部分,也就是棋盘的第五,第六两横线之间末画竖线的空白地带称为“河界”。

两端的中间,也就是两端第四条到第六条竖线之间的正方形部位,以斜交叉线构成“米”字方格的地方,叫作“九宫”(它恰好有九个交叉点)。

整个棋盘以“河界”分为相等的两部分。

为了比赛记录和学习棋谱方便起见,现行规则规定:

按九条竖线从右至左用中文数字一至九来表示红方的每条竖线,用阿拉伯数字‘1’~‘9’来表示黑方的每条竖线。

对弈开始之前,红黑双方应该把棋子摆放在规定的位置。

任何棋子每走一步,进就写“进”,退就写“退”,如果像车一样横着走,就写“平”。

纵线方式,它是中国象棋常用的表示方法,即棋子从棋盘的哪条线走到哪条线。

中国象棋规定,对于红方来说的纵线从右到左依次用“一”到“九”表示,黑方则是“1”到“9”,这种表示方式体现了古代中国象棋研究者的智慧。

坐标方式,它是国际象棋常用的表示方法,把每个格子按坐标编号,只要知道起始格子和到达格子,就确定了着法,这种表示方式更方便也更合理,而且还可以移植到其他棋类游戏中。

中国象棋也可以用这种方法来表示,本程序将采用坐标方式。

本系统定义了一个int型的二维数组xArray[9][10]用来表示棋盘上每个格点在窗口的横坐标,和一个用来表示棋盘每个格点在窗口纵坐标的int型二维数组yArray[9][10]。

两个数组组合用来表示棋盘每个格点在整个窗口的具体位置。

2)棋子

中国象棋作为一种双方对阵的棋牌类竞技项目,棋子共有三十二个,分为红黑两组,各有十六个,由对弈的双方各执一组。

兵种是一样的,分为七种:

帅(将)、仕、相(象)、车、马、炮、兵(卒)。

红方持有棋子:

帅一个,仕、相、车、马、炮各两个,兵五个。

黑方持有棋子:

黑方有将一个,士、象、车、马、炮各两个,卒五个。

其中帅与将;

仕与士;

相与象;

兵与卒的作用完全相同,仅仅是为了区别红棋和黑棋而已。

为了更加方便的表示棋子的类型,除了用于保存坐标信息的二维数组xArray[9][10]、yArray[9][10]外,我们还需要引进一个二维数组用来保存该坐标点的棋子信息,比如:

在(xArray[0][2]、xArray[0][2])上的是哪颗棋子?

亦或着是空位?

本系统引入了新的一个int型二维的数组InfoArray[9][10],很显然它也是一个9×

10的数组,用来保存棋盘上所有90个格点的棋子信息。

现将InfoArray数组的取值范围极其定义列于下表:

InfoArray

1

2

3

4

5

6

7

DEF

DEF

空位

0

空位

红车

11

黑车

红马

12

黑马

红相

13

黑相

红士

14

黑士

红帅

15

黑将

红炮

16

黑炮

红兵

17

黑卒

表3.1

根据上表,位于坐标点(xArray[4][9],yArray[4][9])位置的红帅的棋子类型表示为InfoArray[4][9]=5。

当棋面改变,形成有效走棋时,只需更新对应坐标点的InfoArray的值即可,如红方走棋“炮二平五”对应的原信息{InfoArray[7][7]=6,InfoArray[4][7=0]}改变为{InfoArray[7][7]=0;

InfoArray[4][7]=6},以实现走棋的数据更新。

3.2.4规则设置

将士控“九宫”,马走日(对角跳),象走田(对角跳,且不可过河),

车走直线,炮空子轰,兵(卒)向前(后)直线走且每次走一格

在对局时,由执红棋的一方先走,双方轮流各走一步,直至分出胜负为止。

轮到走棋的一方,将某个棋子从一个交叉点到另一个交叉点,或者吃掉对方棋子而占领交叉点,都算走了一步。

双方各走一步,成为一回合。

任何棋子在走动时,如果一方棋子可以到达的位置有对方的棋子,就可以把对方棋子拿出棋盘(称为吃子)而换上自己的棋子。

只有炮的"

吃子"

方式与它的走法不同:

它和对方棋子之间必须隔一个子(无论是自己的还是对方的),具备此条件才能"

吃掉"

人家。

一定要注意,中隔一个棋子,这个棋子俗称“炮架子”。

一方的棋子攻击对方的将(帅),并且在下一步能把它吃掉,俗称“将军”。

被“将军”的一方必须立即“应将”,即用自卫的步法曲化解被“将军”的状态。

如果被“将军”而无法“应将”,就算被“将死”,输掉本局。

轮到走棋的一方将(帅)虽没被对方“将军”,却被禁在一个位置上无路可走,同时己方其他棋子也都不能动,就算被“困死”,同样输掉本局。

将(帅):

将和帅是棋中的首脑,是双方竭力争夺的目标。

它只能在“九宫”之内活动,可上可下,可左可右,每次走动只能按竖线和横线走动一格。

江河帅不能在同一竖线上直接面对,否则判走方输棋。

士(仕):

士(仕)是将(帅)的贴身保镖,它也只能在“九宫”内走动。

它的行棋路径只能是“九宫”内的斜线。

象(相):

象(相)的主要作用是防守,保护自己的将(帅)。

它的走法是每次循对角线走两格。

俗称“象走田”。

象(相)的活动范围限于“河界”以内的本方阵地,不能过河,且如果它走的“田”字中央有一个棋子的时候,就不能走,俗称“塞象眼”。

车:

车在象棋中威力最大,无论横线、竖线均可行走,只要无子阻拦,部署不受限制。

因此一车可以控制十七个点,故有“一车十子寒”之称。

炮:

炮在不吃子的时候,走动与车完全相同。

马:

马在走动的方法是一直一斜,即先横着或竖着走一格,然后再斜着走一个对角线,俗称“马走日”。

马一次可走的选择点可以达到四周的八个点。

故有“八面威风”之说。

如果在要去得方向有别的棋子挡住,马就无法走过去,俗称“蹩马腿”。

卒(兵):

兵(卒)在未过河前,只能向前一步步走,过河以后,除不能后退外,允许左右移动,但也只能一次一步,即使这样,兵(卒)的威力也大大增强,故有“过河的卒子顶半个车”之说。

3.2.5棋子操作

用户的操作是用鼠标左键点击棋子,当棋子开始闪烁的时候,表示系

统获得该子的坐标,棋子可以行走,然后再点击你要走的位置,系统经过计

算,获得落子位置的坐标。

本系统设计调用GetCursorPos()函数获得点击坐

标,并将屏幕坐标转换至窗口坐标,再根据棋盘范围决定是否响应此次点击。

对于有效的点击,我们先将其转换成xArray[i][j]和yArray[i][j]的形式。

图3.2

四.待解决的问题和技术难点

1)如何实现局域网内两台电脑中的通信与联机效果

2)棋子的动态显示和玩家悔棋回算等问题

3)棋盘信息和棋子信息的数据结构定义

4)棋局的及时更新信息

5)棋子走动规则的算法设计

6)是否可以进一步改成一款可以在手机终端运行的游戏软件

7)玩家信息的创建和保存

六.运行环境和设计方法

本系统运用VC++6.0编程语言,在WindonsXP环境下运行。

本程序是基于C/S模型,主要在于服务端的开发,利用Winsock面向连接协议的SOCKET编程模型可轻易实现。

暂时将其命名为Chess-Server,在网络中选择一台机器运行Chess-Server作为象棋游戏的服务器,网内机器运行Chess-Client(客户端)并与服务器连接,服务端根据客户选择或自动匹配为客户寻找对手,并单独创建一个新的进程负责双方信息的转发,对于客户资料(用户名,密码等)可用数据库来保存,如微软的SQLServer系列。

7.任务完成阶段安排

2011-2012下学期:

完成开题报告,提交理想模型,查找资料。

2012-2013上学期:

进行系统分析,编码完成整个系统的设计与开发,提交成品。

2012-2013下学期:

对整个系统进行测试与调试,最终完成并提交。

2012—2013下学期:

对游戏进去调试,并进行后期维护工作,上交论文。

8.参考文献

[1]周升锋.VisualC++Windows程序设计[M].西安:

西安交通大学出版社,1996.

[2]苏羽,王嫒嫒.VisualC++网络游戏建模与实现[M].北京:

北京科海电子出版社,2003.

[3]葛垚.VisualC++MFC棋牌类游戏编程实例[M].北京:

人民邮电出版社,2008.

[4]网冠科技.VisualC++.NET小游戏开发时尚编程百例[M].北京:

机械工业出版社,2004.

[5]陈建春.VisualC++高级编程技术开发实例剖析[M].北京:

电子工业出版社,1999.

[6]涂光平.VisualC++.NET基础教程与上机指导[M].北京:

清华大学出版社,2005.

[7]伍红兵.VisualC++编程深入引导[M].北京:

中国水利水电出版社,2002.

[8]刘海英.VisualC++网络通信编程[M].北京:

人民邮电出版社,2004.

[9]胡峪,刘静.VC++高级编程技巧与实例[M].西安:

西安电子科技大学出版社,2001.

[10]源江科技.VC编程技巧280例[M].上海:

上海科学普及出版社,2002.4

[11]张恒博.VB在网络中的一种应用—双人象棋[J].大连民族学院学报,2000.(4).2.2.

[12]谢志鹏.带大厅的网络象棋游戏设计和实现[J].华侨大学学报,2004.(9).

[13]王华.局域网常用技术[M].北京:

机械工业出版社,1996.3.

毕业设计(论文)指导教师审阅意见

题目:

中国象棋网上对弈系统

评语:

指导教师:

(签字)

年月日

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2