当前位置:文档之家› 中国象棋(设计)

中国象棋(设计)

中国象棋(web版设计)一、概述1.1系统开发背景只要能打开IE,10秒钟即可进入游戏,不用下载庞大客户端,更不存在机器配置不够的问题。

最重要的是关闭或者切换极其方便。

上世纪90年代昙花一现的网页游戏,最近在坊间再度复苏,有所不同的是,与任何怀旧复古风无关,曾因浏览器技术硬伤而遭雪藏的网页游戏,这一次,是以完全不同的面貌充任网游经营者的救世之师……。

当然,技术硬伤被抚平之后,网页游戏最大的优势-方便性更加被发挥得肆无忌惮!不需要下载数据包、不需安装客户端、不需要安装光盘,玩家只需打开网页就可以玩的游戏,从第一步-游戏参与方式上就实现了革命性改变的网页游戏,几乎可以向中国1.72亿网民张开怀抱。

由于方便性所带来的游戏黏性力量是吓人的:据统计,中国2006年网络游戏人群达到率为70%,其中,QQ游戏到达率37%,联众20%,盛大20%。

QQ游戏达到率遥遥领先的原因正是由于QQ的存在简化了游戏的达到途径。

以此类推,将达到途径简化到极致的网页游戏(只要能上网就能玩游戏)在方便性上比QQ游戏有过之而无不及。

web 正在统治互联网,网游行业也不能例外,网页游戏很可能成为传统网游的掘墓人。

传统网游已经发展到了一个临界点,目前他们正在享受自己最后的晚餐。

1.2 WEB游戏的优势与特性首先,从游戏市场和用户视角来看,网页游戏绝非主流游戏,而且也不可能成为主流。

但是它满足了一部分人的需求,适应了一个细分市场。

网页游戏最基本的特征,显然不是绚丽的画面、高超的3D技术,而是它刺中了上班族那根潜藏已久、没时间又怕辛苦的游戏娱乐神经。

网页游戏提供的轻量级娱乐,占时间少,操作简单,给忙碌紧张的上班族一丝难得的轻松快意。

这是它存在的理由。

即便是很多玩魔兽网游的玩家,也并不排斥玩网页游戏。

不少上班族晚上回家大战魔兽,但白天上班时会偶尔打开浏览器,在校内网里管理他的农场。

一个是主流,一个是支流,一个是重量级大作,一个是轻量级娱乐,各有各的风格,各有各的玩法,道并行而不悖。

大餐并不妨碍精制小菜的存在。

如果说存在的就是合理的,那么网页游戏这种新形式的游戏,存在不仅合理,其发展也是合理的:因为有市场需求。

其次,比传统网络游戏更具获益空间。

比传统网络游戏更具获益空间。

网页游戏尽管具备只要会上网就能玩的特点,但网页游戏并不能取《传奇》《魔兽》而代之,也正是由于参与的便捷性,决定了它最有可能获的是那些终日困在高档写字楼只尺方寸之间的白领们。

再次,从游戏制作者的视角来看,网页游戏最大的贡献是它提供了一个低门槛的、通向财富和名声之路。

网页游戏的出现,大大降低了网游制作的门槛,使没有充裕资金的小公司或小团队,可以选择在网页游戏方面试试他们的运气,这时取胜的法宝是创新、创意和对玩家需求的深度挖掘。

网页游戏,也就变成了“穷人也能做得起的网游”。

结合前面的论述,可以总结出Web游戏与传统网游的主要区别:(1)从构架上看,web游戏是web网页功能的扩展,属于B/S 构架。

而传统网游既有服务器端程序,也有客户端应用程序,是C/S 的构架。

(2)从配置要求上看,web游戏只需要台安装了浏览器,能够上网的计算机即可,几乎目前所以的计算机都能到达要求;而传统网游根据游戏的不同对于配置的要求也有高有低,当前传统的网络游戏已经步入了3D化,就市面上大多数商业运营的3D网游基本上要求比较高的电脑配置。

(3)操作系统的兼容性上看,由于web游戏是运行在浏览器上的,因此,只要是安装了浏览器能够上网的操作系统都能玩,因此理论上几乎所有的操作系统都兼容。

而传统网游是大部分都是针对windows操作系统开发的。

(4)方便性:通过之前的论述可以看出,web游戏的方便性绝对是毋庸置疑的。

而传统网游就不一样了,在开始游戏之前,必须先要下载和安装客户端程序。

(5)游戏内容:由于现阶段网络技术的现实,web游戏不可能在短时间传输非常大的数据量,所以现阶段的web游戏基本上都是娱乐消遣性质的轻型的小游戏。

而传统游戏内容则包罗万象,有小型的消遣的小游戏,也有画面气势磅礴,壮丽宏伟并且有着史诗般背景设定的大作。

传统游戏的内容是现阶段web游戏绝对无法比拟的。

1.3 中国象棋游戏简介中国象棋是中华民族的珍贵的传统文化,有着悠久的历史并且拥有数以亿计的爱好者。

它不仅能丰富文化生活,陶冶情操,更有助于开发智力,启迪思维,锻炼辨证分析能力和培养顽强的意志。

不仅在国内深受群众喜爱,而且流传国外。

目前已有大量的中国象棋游戏平台存在,但大部分都需要安装相关软件或插件才能使用。

1.4 系统设计的目标系统设计的目标是要开发出一个可以在网上实行网络中国象棋对战的游戏平台。

让人们在上网的时候可以不那么费力的就能玩到网页版的中国象棋。

让人们在网络上也能自由的放松自己,培养自己的兴趣爱好。

体验象棋对决中的乐趣。

1.5可行性分析目前大多数的游戏还是采用CS模式。

CS模式的游戏带给了用户们很多的不方便。

另一方面现在网络已经成熟,条件已经具备。

在WEB的支持下,采用平台,结合IIS,开发出两个人网上玩的象棋游戏是具有可行性的。

二、系统设计和系统实现2.1棋盘棋子的设计2.2信息在网络上的传输图2如图所示,用户通过网络与服务器交互信息。

服务器与数据库交互信息,间接的使用户与数据库能够进行数据交互。

2.3 数据库设计本系统采用SQL SERVER 2005数据库。

在数据库中建立了四张表。

分别用来存储棋盘信息,棋子信息,客户端点击点的坐标信息及用户状态信息。

用数据库管理数据清晰、不紊乱。

具有很好的效果。

数据库中建表如下:(1)表名qipan图3position中存储棋盘的编号,棋盘编号可以由坐标转化过来。

转化的关系式为:position=(x-1)*y。

data_qipan列中存储棋盘上的信息。

即棋子在棋盘上的信息。

表1 棋子在棋盘上的信息(2)表名qizi图4no_qizi存储棋子的编号作息。

add_image存储相应编号棋子的图片地址。

add_image_down存储相应编号棋子被点击后的图片地址。

(3)表名yonghu图5id分别用“red”“black”存储用户方位。

state用数字表示用户状态。

0表示无人,20表示允许行棋,40表示不允许行棋。

winner用数字表示用户输赢,20表示赢,40表示输。

(4)表名zuobiao图6x表示当前点击点在棋盘上的纵坐标y表示当前点击点在棋盘上的横坐标lastx表示上一次点击点在棋盘上的纵坐标lasty表示上一次点击点在棋盘上的横坐标2.4 中国象棋游戏设计框架如下图所示图72.5中国象棋游戏数据流示意图图82.6 详细模块设计中国象棋程序模块划分(1)数据存储模块本程序中的数据全部存储在数据库中。

对棋盘的数据表示如下图。

对于红方而言,从左上角到右下角对棋盘上的每一点进行编号,分加从1到90。

坐标X1与Y1都是从1开始计数。

棋盘编号与坐标间转换关系为棋盘编号=(X1-1)*Y1。

而对于黑方来说,则是将红方的数据进行转换着使用,就不重新设定了。

对于棋盘黑方编号等于九十减红方棋盘编号。

坐标也要相应的转换一下。

X2=11-X1;Y2=10-Y1。

对棋子也进行了编号。

1~16号为黑色棋子。

21~36号为红色棋子。

0号为空即该点没有棋子。

图9(2)数据处理模块这一个模块可以说是程序的中心。

前面所做的程序都是为这一块的程序而服务。

在这一个模块中,要根据客户端返回的坐标信息判断能否走棋。

如果能走棋,则对数据库中的数据进行操纵。

将上一点坐标内存储的信息转到现在这一点的坐标内。

并将上一点坐标内的数据清零。

(3)图像显示模块这一个模块的功能较简单。

就是将棋盘上对应编号内存储的信息转化为图片信息显示在客户端上。

它是一个循环的函数。

每一次运行都将棋盘上保存的信息转换成图片反映在棋盘上。

所以在网页上看到的吃棋子,其实是在第二个模块,数据处理阶段就完成了的。

本模块只是显示数据,并将其转换为图像信息。

2.7棋子行棋规则设计帅(将)帅(将)是棋中的首脑,是双方竭力争夺的目标。

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

帅与将不能在同一直线上直接对面,否则走方判负。

程序://将|帅if (lastqipandata == 1 || lastqipandata == 21){if ((x - lastx) * (y - lasty) != 0) return false;if (Math.Abs(x - lastx) > 1 || Math.Abs(y - lasty) > 1) return false;if (y < 4 || y > 6 || (x > 3 && x < 8)) return false;return true;}仕(士)仕(士)是将(帅)的贴身保镖,它也只能在九宫内走动。

它的行棋路径只有九宫内的斜线。

程序://士|仕if (lastqipandata == 2 || lastqipandata == 3 || lastqipandata == 22 || lastqipandata == 23){if ((x - lastx) * (y - lasty) == 0) return false;if (Math.Abs(x - lastx) > 1 || Math.Abs(y - lasty) > 1) return false;if (y < 4 || y > 6 || (x > 3 && x < 8)) return false;return true;}仕(士)是将(帅)的贴身保镖,它也只能在九宫内走动。

它的行棋路径只有九宫内的斜线。

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

它的走法是每次循对角线走两格,俗称“象飞田”。

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

程序://象|相if (lastqipandata == 4 || lastqipandata == 5 || lastqipandata == 24 || lastqipandata == 25){if ((x - lastx) * (y - lasty) == 0) return false;if (Math.Abs(x - lastx) != 2 || Math.Abs(y - lasty) != 2) return false;if (Session["user"].ToString() == "red" && x < 6) return false;if (Session["user"].ToString() == "black" && x > 5) return false;i = 0; j = 0;//i,j必须有初始值if (x - lastx == 2){i = x - 1;}if (x - lastx == -2){i = x + 1;}if (y - lasty == 2){j = y - 1;}if (y - lasty == -2){j = y + 1;}if (_GetDataQipan(i, j) != 0) return false;return true;}马马走动的方法是一直一斜,即先横着或直着走一格,然后再斜着走一个对角线,俗称“马走日”。

相关主题