网络对弈课程设计说明书Word格式.docx

上传人:b****5 文档编号:15806105 上传时间:2022-11-16 格式:DOCX 页数:53 大小:756.92KB
下载 相关 举报
网络对弈课程设计说明书Word格式.docx_第1页
第1页 / 共53页
网络对弈课程设计说明书Word格式.docx_第2页
第2页 / 共53页
网络对弈课程设计说明书Word格式.docx_第3页
第3页 / 共53页
网络对弈课程设计说明书Word格式.docx_第4页
第4页 / 共53页
网络对弈课程设计说明书Word格式.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

网络对弈课程设计说明书Word格式.docx

《网络对弈课程设计说明书Word格式.docx》由会员分享,可在线阅读,更多相关《网络对弈课程设计说明书Word格式.docx(53页珍藏版)》请在冰豆网上搜索。

网络对弈课程设计说明书Word格式.docx

五子棋有着悠久的历史,五子棋爱好者更是不计其数,但是由于人们工作地点,时间的限制,生活节奏的加快,人们之间的交流越来越少,面对面下五子棋的机会更是少了很多,那种面对面的下棋的方式已经不再适应人们的生活,但网络给了人们一个交流的平台,因此人们开始转向网络五子棋。

网络五子棋有很多优点,通过网络五子棋,对弈双方可以是网络上任意两个五子棋的爱好者,甚至从不认识。

网络五子棋让对弈的范围更加的广泛,让玩家可以与更多的五子棋爱好者切磋棋艺。

所以我此次网络课程设计综合运用《计算机网络》、《JAVA语言程序设计》、《网络编程》等课程知识;

从需求分析入手,系统地掌握计算机网络编程初级技术,独立、合理地完成网络五子棋对弈程序设计任务。

设计目标主要包括:

(1)实现需求分析阶段所要求的服务器端以及客户端的功能。

(2)游戏界面朴素美观。

(3)棋子样式采用传统样式,黑色和白色。

(4)客户端的信息交流完全通过服务器传递完成。

1.2设计任务

完成一个网络五子棋对弈程序设计工作。

根据自身多年来进行网络对弈的经验,以及了解,对网络五子棋对弈的设计进行需求分析。

根根设计目标以及需求分析对五子棋游戏界面总体规划和设计,游戏界面设计好以后进行服务器端和客户端的规划设计,最后进行棋盘以及棋子的设计。

设计阶段要进行服务器端框架设计与业务代码开发,客户端框架设计与业务代码的开发,棋子以及棋盘类的设计开发,规则类的设计开发等。

2需求分析

2.1系统需求

(1)满足客户端连接到服务器的基本要求。

(2)服务器满足记录客户端游戏动作的基本要求。

(3)满足服务器实时获得客户端游戏状态的基本要求。

2.2用户需求

2.2.1服务端需求

(1)可以有一个显示服务器状态的界面,用于记录各个客户端的连接状态。

服务器是用于连接各个客户端的通信,如果独立地创建一个直观的服务器,将有力地显示客户端的每个状态,直观地向用户反应各类信息。

(2)可以支持多人同时在线。

一个服务器能够你能够接受来自其他多个客户端的请求,提供相应的响应服务,是网络对弈的基本要求。

(3)可以显示在线用户的信息。

显示在线用户的信息,比如主机名,IP地址,以及连接断的状态,有利于用户随时监控客户端的通信状态。

(4)不允许玩家同名。

不允许客户端同名即是不允许客户端的端口号相同,如果相同,将会造成游戏登陆用户的管理混乱。

(5)服务器界面节约大方。

服务器是用于监控客户端的连接情况,没用必要做得繁杂,用户只需要直观的状态显示,所以我们的服务器不需要设计太多按钮,只需要有显示服务器状态,关闭服务器,清空列表的按钮,方便用户操作。

2.2.2客户端需求

(1)能够通过主机IP及端口号登陆到服务器。

(2)可以显示当前所有用户。

游戏客户端应设计一个可以显示当前所有在线用户的列表,有助于用户随意选择玩家挑战。

(3)可以从在线用户列表中选择玩家进行挑战。

(4)可以创建以及接受挑战。

(5)如果对方正在与其他玩家对弈,则应给出相应提示。

(6)五子棋规则一定要严密。

其中五子棋游戏的规则如下:

Ø

棋盘,棋子:

a)棋盘为十五路,正中一点为“天元”,周围四点为小星。

b)棋子分黑白两色,黑子113枚,白子112枚,共225枚。

比赛规则:

a)黑先白后,从天元开始落子。

然后执白棋的一方在黑棋周围的交叉点上落子,白第二着棋应布在自己河界的一侧。

此后,执黑方在以天元为中心的25个交叉点的范围内布盘面的第三着棋。

b)最先在横向,竖向,斜向形成连续的相同色五个棋子的一方为胜。

c)黑棋禁手判负,白棋无禁手。

黑棋禁手包括“三三”,“四四”,“长连”。

黑方只能“四三”胜。

所谓禁手,是指黑方一子落下同时形成两个或两个以上的活三,冲四及长连禁手。

长连禁手是指黑方形成六个或六个以上的连续棋子。

d)双方均不能形成五连为和棋。

e)对局中拔子,中途退场均判为负。

f)五连与禁手同时形成,先五为胜。

因黑方已形成五连,故禁手失效,黑方胜。

g)黑方禁手形成时,白方应立即指出禁手点,黑方即负。

若白方继续应子,则黑方禁手不成立。

h)高段位职业比赛的特殊规定:

“三手可交换”:

黑下完第2手,执白者可提出交换。

即执白方变为执黑方。

“五手两打法”:

执黑下第五手时,必须下两手棋,执白者从这两手棋中任选一步。

i)本文所论述的联机五子棋系统就是依照这种方式进行的。

2.2.3技术上可行性分析

对需求分析阶段的结果进行总结,对软件的可行性分析如下:

(1)网络对弈需要两个客户端进行通信,而利用服务器的线程开发,进行中间中介连接正好可以完成。

(2)五子棋的规则虽然严密,但是通过各种情况分析,然后将每个情况分析设计出来。

(3)本系统的设计运行环境只用到MyEclipse的编程软件,无需借用到其它的软件,比较容易实现。

2.3.系统运行环境

系统运行环境:

MyEclipse6.6

3总体设计

3.1系统结构设计

该游戏主要分为服务器端与客户端两部分。

服务器端的功能主要是建立与客户端的连接,监控客户端的连接及断开的状态,接收客户端发送的信息以及向客户端发送信息。

客户端的功能主要是连接服务器端,创建游戏用户,创建游戏,加入游戏,选择玩家挑战,向服务器发送信息,接收服务器端发送来的信息。

其具体的功能模块如图所示:

3.2服务器设计

服务器的设计主要分为服务器主界面,服务器线程,服务器主机面板三个部分。

服务器主界面的设计主要包括界面大小,界面背景,界面上的按钮,比如清空列表,服务器状态,关闭服务器的设计,以及启动对客户端的监听,启动服务器线程。

服务器线程的设计主要包括接受多个客户端的连接,接受客户端信息,向客户端发送信息。

服务器主机面板的设计主要包括客户端信息板的设计,包括板的大小,背景颜色。

3.3客户端设计

客户端的设计主要分为客户端界面,客户端线程两部分。

客户端界面的设计主要包括客户端界面大小,背景颜色,主要按钮:

创建游戏,加入游戏,连接到服务器,放弃游戏,退出游戏的设计以及它们对应事件的处理。

客户端线程的设计主要包括连接到服务器,向服务器发送信息,接受服务器信息的设计以及它们对应的事件处理,比如收到服务器发送来的游戏胜利,信息错误,信息有效等的处理。

其具体功能模块如图所示:

3.4棋类设计

五子棋类的设计主要分为棋盘,棋子,五子棋动作线程,规则四部分。

棋盘的设计主要包括画棋子,捕获下棋事件,画网络棋盘。

棋子的设计包括黑棋以及白旗的设计,其中有大小,颜色,所属棋盘的设计。

五子棋动作线程的设计包括处理捕获下棋信息,发送当前下棋信息,这一部分的设计是五子棋类设计的重点。

规则的设包括取得指定棋子的位置,判断当前棋子是否取得胜利,当前棋子各个方向的判断,当前所要下的棋子是否越界。

4详细设计

4.1服务器

4.1.1服务器主类的设计开发

服务器主类即服务器端的运行类,用户通过运行该类进入服务器的主界面。

其中包括创建服务器端用到的控件以及声明用到的对象引用,完成对控件的初始化:

设置窗体的标题,图标,大小以及可见性,将各个控件添加到各面板的相应位置

FIRServer.java类:

//服务器界面类

publicclassFIRServerextendsFrameimplementsActionListener

{

JButtonclearMsgButton=newJButton("

清空列表"

);

JButtonserverStatusButton=newJButton("

服务器状态"

JButtoncloseServerButton=newJButton("

关闭服务器"

PanelbuttonPanel=newPanel();

ServerMsgPanelserverMsgPanel=newServerMsgPanel();

ServerSocketserverSocket;

HashtableclientDataHash=newHashtable(50);

//将客户端套接口和输出流绑定

HashtableclientNameHash=newHashtable(50);

//将客户端套接口和客户名绑定

HashtablechessPeerHash=newHashtable(50);

//将游戏创建者和游戏加入者绑定

publicFIRServer()

{

super("

Java五子棋服务器"

setBackground(Color.LIGHT_GRAY);

buttonPanel.setLayout(newFlowLayout());

clearMsgButton.setSize(60,25);

buttonPanel.add(clearMsgButton);

clearMsgButton.addActionListener(this);

serverStatusButton.setSize(75,25);

buttonPanel.add(serverStatusButton);

serverStatusButton.addActionListener(this);

closeServerButton.setSize(75,25);

buttonPanel.add(closeServerButton);

closeServerButton.addActionListener(this);

add(serverMsgPanel,BorderLayout.CENTER);

add(buttonPanel,BorderLayout.SOUTH);

addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

});

pack();

setVisible(true);

setSize(400,400);

setResizable(false);

validate();

try

createServer(4331,serverMsgPanel);

}

catch(Exceptione)

e.printStackTrace();

}

//用指定端口和面板创建服务器

publicvoidcreateServer(intport,ServerMsgPanelserverMsgPanel)throwsIOException

SocketclientSocket;

//客户端套接口

longclientAccessNumber=1;

//连接到主机的客户数量

this.serverMsgPanel=serverMsgPanel;

//设定当前主机

serverSocket=newServ

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

当前位置:首页 > 表格模板 > 书信模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1