Java实训项目象棋设计报告.docx
《Java实训项目象棋设计报告.docx》由会员分享,可在线阅读,更多相关《Java实训项目象棋设计报告.docx(6页珍藏版)》请在冰豆网上搜索。
Java实训项目象棋设计报告
标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]
Java实训项目象棋设计报告
广西科技大学鹿山学院
面向对象程序设计实训报告
题目:
网络中国象棋
系别:
电气与计算机工程系
专业班级:
计软141班
姓名:
邓康言
学号:
成绩评定:
指导教师签字:
2016年1月10日
1、需求分析
开发的背景
·中国象棋有着悠久的历史,象棋爱好者更是不计其数,但是由于人们的工作地点从、时间的限制,原始的那种面对面的下棋方式已经不再适应人们的生活,人们已经开始走向网络象棋博弈
·网络象棋有着很多的优点,通过网络象棋,对弈的双方是网络上任意的两个象棋爱好者,甚至是不认识。
网络让对弈的范围更加的广泛,让象棋爱好者可以与更多的象棋爱好者切磋棋艺。
算法
·指定服务器端口号
·支持多人同时在线·
·显示在线用户信息
·显示当前在线所有用户
·从在线用户列表中选择玩家进行挑战
·接受或拒绝挑战
要求
·用Java语言实现系统,源程序要有适当的注释,使程序容易阅读
·函数功能要划分好(结构化程序设计)
·可以增加新功能模块
2、总体分析与设计
总体设计方案
·系统功能模块图:
功能描述
服务器端
·可以指定服务器端口号。
·可以支持多人同时在线。
·可以显示在线用户信息。
·不允许玩家同名
客户端
·能够通过主机IP号及端口号登陆到服务器。
·可以显示当前在线所有用户。
·可以从在线用户列表中选择玩家进行挑战。
·可以接受或拒绝挑战。
·如果对方在和其他玩家对弈中,则应该给与相应的提示信息。
·象棋规则一定要严密。
·棋子样式采用最普通的橡胶式象棋。
棋子为黑色,字为红色和白色
算法设计----
本程序功能模块根据程序设计的需要。
综合程序的实用性、智能化的考虑。
将程序划分为8个模块来写。
(1)服务器端的框架设计类
(2)服务器线程类
(3)服务器代理线程类
(4)棋子类的开发类
(5)客户端的框架设计类
(6)客户端线程类
(7)棋子的规则类
(8)棋盘的设计类
系统流程图----
3、数据结构设计
功能模块的设计
服务器端框架类设计
import.*;
import.*;;;;etImage();
(image);
(jspz);;
import.*;
import.*;
import.*;
import.*;
publicclassServerThreadextendsThread
{
Serverfather;;
import.*;;;;rim();quals(name))
{
isChongMing=true;.");
}
}
}
}
catch(IOExceptione)
{
();
}
}
服务器代理线程类功能及实现:
服务器代理线程主要是用于接收客户端传来的信息,并将该信息转发给相对应的另一个客户端。
服务器为所有客户端都分配了一个该类线程,单独为特定客户端进行服务。
同时每一个服务器代理线程都有能位移标示其的名称
棋子的开发类设计
import.*;
import.*;
import.*;
publicclassQiZi;
import.*;
import.*;
import.*;
import.*;
publicclassXiangQiextendsJFrameimplementsActionListener;
import.*;
import.*;
import.*;
import.*;
publicclassClientAgentThreadextendsThread
{
XiangQifather;rim();rim().length()!
=0&&(!
na[i].trim().equals(na[i]);;import.*;import.*;
publicclassQiPanextendsJPanelimplementsMouseListener{
privateintwidth;etFocus()!
=false){etColor());etName(),110+i*60-15,80+j*60+10);
;etColor()==qiZi[startI][startJ].getColor())
{etFocus(false);
qiZi[i][j].setFocus(true);etName();etName().equals("帅")||
qiZi[endI][endJ].getName().equals("将"))
{etName();
Java2实用教程[M].清华大学出版社2011-10
[2]李兴华编着.Java开发实战经典.清华大学出版社2009-08