JAVA中国象棋Word格式.docx

上传人:b****1 文档编号:3237653 上传时间:2023-05-01 格式:DOCX 页数:18 大小:1.16MB
下载 相关 举报
JAVA中国象棋Word格式.docx_第1页
第1页 / 共18页
JAVA中国象棋Word格式.docx_第2页
第2页 / 共18页
JAVA中国象棋Word格式.docx_第3页
第3页 / 共18页
JAVA中国象棋Word格式.docx_第4页
第4页 / 共18页
JAVA中国象棋Word格式.docx_第5页
第5页 / 共18页
JAVA中国象棋Word格式.docx_第6页
第6页 / 共18页
JAVA中国象棋Word格式.docx_第7页
第7页 / 共18页
JAVA中国象棋Word格式.docx_第8页
第8页 / 共18页
JAVA中国象棋Word格式.docx_第9页
第9页 / 共18页
JAVA中国象棋Word格式.docx_第10页
第10页 / 共18页
JAVA中国象棋Word格式.docx_第11页
第11页 / 共18页
JAVA中国象棋Word格式.docx_第12页
第12页 / 共18页
JAVA中国象棋Word格式.docx_第13页
第13页 / 共18页
JAVA中国象棋Word格式.docx_第14页
第14页 / 共18页
JAVA中国象棋Word格式.docx_第15页
第15页 / 共18页
JAVA中国象棋Word格式.docx_第16页
第16页 / 共18页
JAVA中国象棋Word格式.docx_第17页
第17页 / 共18页
JAVA中国象棋Word格式.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

JAVA中国象棋Word格式.docx

《JAVA中国象棋Word格式.docx》由会员分享,可在线阅读,更多相关《JAVA中国象棋Word格式.docx(18页珍藏版)》请在冰点文库上搜索。

JAVA中国象棋Word格式.docx

③开发工具:

Myeclipse

2.2总体设计

设计C/S网络版中国象棋,也就是客户端与服务器端都是java应用程序。

具体要求如下:

(1)中国象棋是双方在有着9调竖线和10条横线的棋盘上对弈,竖线和横线的交叉称为棋点或对弈点,每个棋子都是在棋点上行走,而不是在方格中行走。

(2)河界将棋盘分成两等份,每一边都有一块有9个点组成的九宫,棋子“将”,“帅”和“士”只能在九宫内移动,并且“将”和“帅”每一步只可以水平或垂直移动一个棋点;

“士”只能在九宫内移动,并且它每一步只可以沿着对角线移动一个棋点;

“象”必须一次沿着对角线方向走两个棋点,但它不能过河也不能跳过或穿越障碍,即“象”不能别眼,“马”没一步只可以水平或垂直移动两个棋点,但必须按对角线向左或向右移动。

中国象棋的“马”不能跳过障碍,即马不能别腿。

“车”可以水平或垂直方向移动人一个无障碍的点。

“炮”移动起来和车类似,但它必须跳过一个棋子来吃掉对方的一个棋子,被跳过的那个棋子称为桥或者屏风。

“兵”每步只能向前移动一个棋子过河以后,它便增加了向左右移动的能力,并不允许向后移动。

(3)用户开始运行程序后,进入用户登录界面,用户输入正确的用户名和密码才可以进入中国象棋主界面。

(4)用户进入主界面后,单击“建立主机”按钮,就把该计算机作为主机,等待其他用户登录到这台主机后,才可以进行对弈。

(5)当有用户登录到这台主机上士,用户单击“开始”按钮就可以开始想起对弈了,在对弈过程中,用户可以单击“悔棋”按钮,就可以实现悔棋,用户还可以单击“认输”按钮,向对方认输。

(6)如果用户赢了,用户的积分就会增加。

(7)用户在对弈过程中可以聊天。

2.3详细设计

2.3.1总体功能图

根据对需求所做的分析,中国象棋游戏需要实现的基本功能应包括以下几个方面:

(1)用户登录验证功能

(2)提供棋盘和棋子;

(3)设定棋子的走棋规则;

(4)可以悔棋;

(5)可以聊天;

(6)判断胜负;

(7)建立主机和与主机建立连接;

(8)显示所有在线用户;

游戏可以再任何装有java运行环境的电脑中运行,界面简洁,大方,操作简单,方便,容易上手,满足中国象棋游戏爱好者智力娱乐的需求。

根据系统功能需求,其总体功能图如图1所示:

图1总体功能图

2.3.2总体流程图和中国象棋功能模块

根据对中国象棋游戏的功能分析,设计得到中国象棋游戏的总流程图如图2所示:

图2总体流程图

中国象棋模块是《中国象棋》游戏额核心部分,它实现了游戏的最基本也是最重要的功能。

该模块中含有连接、退出系统和开始游戏功能三项功能。

功能模块结构图:

图3中国象棋功能模块结构图

2.3.3数据库设计

数据库及表结构的建立

中国象棋系统共创建了一个dengluzhuce数据库,在该数据库中创建了一个login表。

数据库是用Access创建的,创建方法是:

新建—>

空数据库。

login表是用来存储用户信息的,login数据表的创建如下表所示:

表1数据表

字段名称

数据类型

说明

用户名

文本

密码

积分

是否在线

数字

JDBC-ODBC的建立

为了同dengluzhuce数据库建立连接,首先要创建一个ODBC数据源,打开Windows中的控制面板,对于WindowsXP选择“性能和维护”—>

“管理工具”—>

“数据源(ODBC)”;

创建好user数据源。

现在有了数据源,这个数据源就是一个数据库。

为了要连接到这个数据库,首先要建立一个JDBC-ODBC桥接器;

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);

这里,Class是包java.lang中的一个类,该类通过调用静态方法forName加载sun.jdbc.odbc包中的JdbcOdbcDriver来建立桥接器。

JAVA数据库的连接

首先使用java.sql包中的Connection类声明一个对象,然后在使用DriverManager调用它的静态方法getConnection创建这个连接对象,建立连接时应捕捉SQLException异常:

Try{

Connectioncon=DriverManager.getConnection(“jdbc:

odbc:

user”,””,””)

}

Catch(SQLException){}

这样就建立到数据库dengluzhuce的连接。

2.3.4各部分功能流程图

(1)开始游戏

该功能为本游戏的最核心的部分,它实现了中国象棋游戏的最主要的操作,是其他功能的基础。

主要功能包括:

1.下棋

2.提示下棋方

3.悔棋

4.认输

5.求和

开始游戏流程图如图4所示:

图4开始游戏流程图

(2)连接功能

连接功能是开始游戏前必须进行的步骤,连接有建立主机、刷新主机、建立连接。

用户正确登陆系统后,进入中国象棋主界面,用户可以点击建立主机,把自己的电脑作为主机,然后等待其他用户连入就可以开始游戏了,用户还可以刷新主机,找到一个主机然后连入就可以开始游戏了。

连接功能流程图如图5所示:

图5连接功能流程图

(3)用户登陆注册模块

用户登陆注册模块提供用户登陆和注册功能,用户运行客户端程序后,首先进入的是用户登陆界面,用户只要输入用户名和密码就可以进入中国象棋界面,如果用户没有用户名,就点击“注册”按钮进行注册,注册完成后就可以输入刚才申请的用户名和密码进入中国象棋界面。

用户登陆功能流程图如图6所示:

图6用户登陆功能流程图

用户注册功能流程图如图7所示:

图7用户注册功能流程图

(4)聊天模块

聊天模块提供给用户聊天,用户进入中国象棋界面后,开始游戏就可以与对方聊天了,用户发送信息给服务器,然后服务器把信息发送给对方,在对方界面显示。

聊天模块流程图如图8所示:

图8聊天模块流程图

2.3.5算法设计

(1)棋盘、棋子绘制的算法设计

本中国象棋有限的棋盘和棋子采用的都是图片,采用图片比较简单,不用绘制那么多条线,用图片来代替棋盘和棋子,只要用Graphics对象g调用drawImage()方法就可以把突变加载进去。

棋盘的实现如下图9所示:

图9棋盘实现的相关代码

 

棋子的实现如下图10所示:

图10棋子实现的相关代码

(2)棋种走棋规则的算法设计

象棋的每种棋种都有它们自己的走棋规则的,例如,车走直线,中间不能有棋子;

马走“日”;

象走“田”等等。

下面我们就拿象棋棋子车,马,炮,象、士、卒、将的走棋规则算法分别来进行详细的说明:

1“车”的走棋规则的算法设计

“车”,它只能走直线,且中间不能有任何棋子,设计时分为两种情况来考虑,一种是纵向行走;

一种是横向行走。

用if语句来判断实现,例如车纵向行走,首先,用if(startI==endI)来判断棋子是否纵向行走,接着再用判断语句if(point[startI][j].isPiece())来判断中间有没别的棋子。

横向行走同理。

如果棋子车符合以上的走棋规则,则可以走动,否则棋子强制放回原处。

现在假设车的棋点坐标为(i,j),i为横坐标,j为纵坐标,再设x,y为棋盘内任意值。

算法设计流程图如图11所示:

图11“车”的走棋规则算法设计流程图

2“马”的走棋规则的算法设计

“马”,它只能走“日”字格,而且马腿不能被其它的棋子压到。

设计时可

两种情况来考虑,一种是横向走两个棋点,纵向走一个棋点;

一种是纵向走两个棋点,横向走一个棋点。

用if语句来判断,例如马横向走“日”,首先,用if(xAxle==2&

&

yAxle==1)来判断棋子是否横向走两个棋点,纵向走一个棋点,接着再用判断语句if(point[startI+1][startJ].isPiece())来判断马腿是否被其它棋子压着。

纵向走“日”同理。

如果棋子马符合以上的走棋规则,则可以走动,否则棋子强制放回原处。

现在假设马的棋点坐标为(a,b),a为横坐标,b为纵坐标,再设x,y为棋盘内任意值。

算法设计流程图如图12所示:

图12“马”的走棋规则算法设计流程图

3“卒”的走棋规则的算法设计

“卒”,它的行走规则分两种情况。

一种是棋子没过河界,另一种是棋子过了河界。

用if语句来判断,首先,用if(endJ<

=5)语句来设定棋子没过河界,接着设定棋子在没过河界的情况下只能向前行走一个棋点;

然后用if(endJ>

=6)语句来设定棋子过了河界,紧接着设定棋子在过了河界的情况下只能向前、向左、向右行走一个棋点。

如果棋子卒符合以上的走棋规则,则可以走动,否则棋子强制放回原处。

现在假设卒的棋点坐标为(i,j),i为横坐标,j为纵坐标,再设x,y为棋盘内任意值。

算法设计流程图如图13所示:

图13“卒”的走棋规则算法设计流程图

4“将”的走棋规则的算法设计

“将”,它只能在“九宫”中行走,而且每次只能横着或者纵着行走一棋点。

直接用if语句来判断,首先,用if(endI<

=6&

endI>

=4)来判断棋子是否是在“九宫”里行走,接着判断棋子是否是横向或纵向只走一个棋点。

如果棋子将符合以上的走棋规则,则可以走动,否则棋子强制放回原处。

现在假设将的棋点坐标为(i,j),i为横坐标,j为纵坐标,再设x,y为棋盘内任意值。

算法设计流程图如图14所示:

图14“将”的走棋规则算法设计流程图

5“炮”的走棋规则的算法设计

“炮”,它只能走直线,且中间有且只能有一个棋子。

算法设计流程图如图15所示:

图15“炮”的走棋规则算法设计流程图

6“象”的走棋规则的算法设计

“象”,它只能走“田”字格,而且不能过河,象腿不能被其它的棋子压到。

这样只有一种情况考虑,那就是纵向走两个棋点,横向也走两个棋点。

用if语句来判断,首先,用if(xAxle==2&

yAxle==2&

endJ<

=5)来判断棋子是否走"

田"

字格,而且不能过河,接着再用判断语句if(point[centerI][centerJ].isPiece())来判断象腿是否被其它棋子压着。

如果棋子象走动符合以上的走棋规则,则可以走动,否则棋子强制放回原处。

现在假设象的棋点坐标为(i,j),i为横坐标,j为纵坐标,再设x,y为棋盘内任意值。

算法设计流程图如图16所示:

图16“象”的走棋规则算法设计流程图

7“士”的走棋规则的算法设计

“士”,它只能在“九宫”中行走,而且每次只能斜着行走一格。

这样只有一种情况来考虑,即纵向走一个棋点,横向走一个棋点。

if语句来判断,if(endI<

=4&

=3&

xAxle==1&

yAxle==1)。

如果棋子士符合以上的走棋规则,则可以走动,否则棋子强制放回原处。

现在假设士的棋点坐标为(i,j),i为横坐标,j为纵坐标,再设x,y为棋盘内任意值。

算法设计流程图如图17所示:

图17“士”的走棋规则算法设计流程图

3运行结果与分析

用户登录界面:

图18用户登陆界面

用户注册界面:

图19用户注册界面

中国象棋主界面:

图20中国象棋主界面

中国象棋对弈一方界面:

图21中国象棋对弈一方界面

4设计体会

通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,特别是对于课外知识的积累也提高了不少,对于图形用户界面的设计从课本的ATW包扩展到SWING包,利用Swing编程设计漂亮的图形用户界面,在设计的过程中我遇到了很多的问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。

这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。

特别它还让我学会了在网上查阅那些无限的资料,让我明白知识是不能只限于课本,当然更不能只满足于课本。

我做的是中国象棋,遇到最难的是中国象棋中涉及的算法,比如“车”、“马”、“卒”、“将”、“炮”、“象”、“士”的走棋规则算法,它士用棋点数组来存储各个棋子的位置,当用户移动一个棋子后,就用棋点数组来判断棋是否符合棋子的走棋规则,这种算法设计很精妙,让我在以后涉及到这种的算法,我就可以用这种方法。

5参考文献

[1]王国辉,吕海涛.Java数据库系统开发案例精选[M].北京:

人民邮电出版社,2007.3:

106-177

[2]陈国君,陈锡祯.Java2程序设计基础[M].北京:

清华大学出版社,2006.1:

316-338

[3]袁海燕.Java实用程序设计100例[M].北京:

人民邮电出版社,2005.6:

210-224

[4]耿祥文.张跃平《JAVA2教程》[M].北京:

清华大学出版社2005.7:

210-235

[5]张仿彦.《JAVA项目开发全程实录》[M].北京:

清华大学出版社2004.6:

310-244

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

当前位置:首页 > 初中教育 > 语文

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

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