毕设开题报.docx
- 文档编号:11103405
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:10
- 大小:57.35KB
毕设开题报.docx
《毕设开题报.docx》由会员分享,可在线阅读,更多相关《毕设开题报.docx(10页珍藏版)》请在冰豆网上搜索。
毕设开题报
1.选题的意义和背景
随着科学技术的发展,计算机普及到各家各户,人们的“世界”变得越来越小,不再局限于现实,逐渐向虚拟扩散,各种娱乐活动填充着大家的日常生活。
其中游戏(无论是网游还是单机小游戏)更是休闲不可或缺的一项娱乐。
随着移动设备越来越普及和移动设备硬件的提升,移动设备的功能越来越完善,游戏也从“简单”的电脑游戏升级到迷你版的手机游戏。
电脑游戏作为网络技术和数字技术的化身,把各种文化、教育和知识都融合到娱乐游戏中,更好的传播了一些文化知识,使神圣、庄严的文化更加平民化、大众化,更加让人易于接受。
同时电脑游戏还呈现不同爱好人士喜欢的场景,如战争场面、杀戮场面等,把玩家的思维身临其境,带给用户许多现实中不能拥有的体验,从而吸引了无数的用户投入到其中,也就给电脑游戏市场带来了巨大的潜在发展空间和爆发能量。
中国互联网发展时间短,许多地方还不够完善,电脑游戏的发展还只是崭露头角,无论是网络游戏还是单机游戏,都期待着互联网的“春天”。
盛大、网易、腾讯等网络公司投资巨资开发研究或代理电脑游戏,其中的利润是非常可观的。
中国的电脑游戏市场就好比一个等待开发的蛋糕,现在越来越多的眼睛在瞄准这个蛋糕,其前景不可估量。
中国象棋,蕴含着中国文化的精髓,可以锻炼和体现一个人的思维和胸襟,可以训练一个人的心理,借用于游戏推广,会受到许多人的追捧,得到可观的收益的。
2.国内外研究现状
国外互联网技术发展比较早,网络技术比国内先进,电脑游戏开发更是领先国内一大步,许多电脑游戏在全球风靡,如魔兽世界、魔兽争霸、地下城与勇士等,都是人们不会淡忘的游戏。
外国网络技术和数字技术好,游戏界面更加人性化,其网络游戏正逐步走向成熟和深化,人机交互技术更加成熟,使“娱乐随时随地”的梦想更加接近,技术融合带来游戏跨平台发展,通过网络、个人电脑、家庭电脑、交互电视、手机终端设备等都可以进行交流,不同设备可以进行相同的游戏。
由于国外技术领先国内,如今外国游戏已经中国市场占据了很重要的地位,使得中国文化环境逐渐改变,民族文化已经不太能吸引玩家。
国内技术不够成熟,许多网络游戏、单机游戏和网页游戏成为游戏垃圾。
国内电脑游戏市场缺少中国自己人的游戏,缺少蕴涵中国文化精髓的游戏,来引领国内电脑游戏市场的风向,归引青少年的思维与思想。
3.设计思路
3.1设计总体思路
1)设计程序良好的用户界面,尽可能的真实模拟象棋环境,双方对局过程中显示的界面一致。
2)基于TCP/IP协议,结合象棋对弈的特点,设计一套可行网络实时数据通信协议。
3)制定棋盘及状态数据结构,方便实时通信、屏幕作图和用户的交互。
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
0
1
2
3
4
5
6
7
DEF
InfoArray
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.
毕业设计(论文)指导教师审阅意见
题目:
中国象棋网上对弈系统
评语:
指导教师:
(签字)
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 开题