关键词不能为空

当前您在: 首页 > 育儿 >

基于Java的“网络五子棋”游戏的设计和实现(含源文件)

作者:陕西保健网
来源:http://www.xapfxb.com/yuer
更新日期:2021-01-27 06:19

我怀了你的孩子结局-

2021年1月27日发(作者:谢甫生)
四川师范大学成都学院本科毕业设计


基于
Java
的“网络五子棋”游戏的设计和实现——网络版客户端

学生:
xxx
指导教师:
xx
内容摘要:< br>目前,随着计算机网络的发展,以计算机技术和网络技术为核心的现代网
络技术已经在现实生活和 生产中得到了广泛的使用,
休闲类网络游戏集趣味性,
娱乐性,
互动性和益智性于一体 ,已经成为多数人群的休闲方式,也为多数人所喜好。


本设计收集了关于JAVA
基础的书籍,着重收录了关于
SOCKET
编程的内容,找到了五
子棋概述和规则的资料,查阅了网络通信技术的相关论文,同时也参考了很多关于五子
棋实现的程序资 料以及关于
JAVA
开发工具的介绍的文档。
在期间,
我学习了多线程技术、
双缓冲技术、数据传输技术、
SOCKET
编程技术,研究了网络通信原理、
JAVA
编写原理等
一系列的原理。开发了网络五子棋网络通信代码,实现了网络聊天、数据传 输、网络通
信、界面组织如:棋盘、建立服务器、连接到服务器、系统设置、我要参赛等功能。通
过对以上技术的学习和研究,利用
SOCKET
编程,能服务器与客户端之间的连接,利用多
线程技术完成了服务器端与客户端之间的数据传输、网络通信,使得两个客户端能够同
步的进行 处理。在加载图片以及绘制棋盘方面,采用双缓冲技术消除屏幕的闪烁现象。
达到了预期的效果。


关键词
:
多线程
SOCKET
客户端

网络通信







I
四川师范大学成都学院本科毕业设计


Design and realization of the web gobang game based on
java
——
client module

Abstract:
At present, with the development of computer network, computer
technology and network technology as the core of modern network technology has
in real life and production has been widely used. Recreational type of network
games
consists
of
interesting,
entertaining,
interactivity
and
beneficial
intelligence.
It
has
become
a
way
of
entertainment
to
many
people,
and
has
been
loved.

Much of the information collected in this design

such as many books based
on
the
JAVA,
focus
on
the
contents
of
SOCKET
programming,
Find
information
about
the
web
gobang
game,
Access
to
the
relevant
papers,
Reference
to
a
lot
of
program
information
on
achieving
The
web
gobang
game
and
introduction
to
JAVA
development
tools
on
the
document.
In
the
period,
I
learned
a
series
of
principles

For
example
Multi- threading
technology,
double-buffering
technology,
data
transmission
technology, SOCKET programming technique to study the principle of network
communication,
JAVA
writing
principles.
Internet
chat,
data
transmission,
network
communications,
interfaces
structure,
such
as:
the
board,
establishing
server,
connecting server, option
had
been realized. I
know these technologies
through studying and researching, I using of SOCKET programming, server and
client
can
be
connecting,
i
using
of
multi- threading
technology
to
complete
the
server side and client-side data transmission and the client can synchronize
the
two
processtion.
Pictures
and
drawing
board
loading,
I
using
of
double-buffering to eliminate screen flicker.

Keywords:

multi- threaded socket client network communication
II
四川师范大学成都学院本科毕业设计






前言
............................. ........................................
1

1
绪论
................................ ..................................
1

1.1
背景
............................... ................................
1

1.2
选题的前提和目的
................................. ..................
1

1.3
五子棋介绍
.................................................. .......
2

1.4
主要完成内容
......... ..............................................
2

2
开发环境及工具介绍
............... .....................................
3

2.1
开发环境及运行环境
.................................................
3

2.1.1
开发环境
................. ......................................
3

2.1.2
运行环境
........................... ............................
3

2.1.2
开发工具
..................................... ..................
3

2.2 Java
简介
....................................... ..................
3

2.2.1 Java
的起源和发展

..............................................
3

2.2.2 Java
特点

.......... ............................................
4

2.3
Java

Socket

网络编程简介

...........................................
5

2.3.1 Java Socket
网络编程基础
......................................
5

2.4
Java
图形编程
................... ..................................
7

3
需求分析和总体设计
................................ ....................
7

3.1
需求分析作用
................................... ...................
7

3.1.1
基本需求分析
..................................................
7

3.1.2
高级需求分析
..................................................
7

3.2
总体设计
.................. ........................................
8

3.2.1
系统设计思想
..................................................
8

3.2.2
系统总体设计
..................................................
9

I
四川师范大学成都学院本科毕业设计

3.3
功能模块及流程
.................................. .................
10

3.3.1
系统主要模块
.................................................
10

3.3.2
服务器端作用
.................................................
10

3.3.3
客户端作用
.............. .....................................
11

3.3.4
系统主流程
......................... ..........................
12

4
概要设计
..................................... ........................
13

4.1
网络编程的模式和选取
.............................................
13

4.2
主要类与其作用
.............. .....................................
13

4.2.1
服务器类
.......................... ...........................
13

4.2.2
客户端主类
.................................... ...............
15

4.2.3
客户端副类
.................................... ...............
15

4.2.4
棋盘类
.................................................. .....
16

5
详细设计
............. ................................................
18

5.1
开发环境的搭建
.............. .....................................
18

5.1.1
安装
JDK
...................... .................................
18

5.1.2
安装
JRE
..................... .................................
19

5.1.3
安装
Eclipse
................. .................................
20

5.1.4
配置环境变量
.................................................
20

5.2
客户端界面设计
.............. .....................................
23

5.3
客户端网络设计
......................... ..........................
24

5.4
棋盘类设计
.................................... ...................
25

5.5
系统各模块之间的关系
.............................................
26

6
软件测试和展示
................ .......................................
27

6.1
软件测试的方法
......................... ..........................
27

6.2
网络客户端测试用例
...............................................
28

6.3
游戏界面展示
............... ......................................
29

7
总结语
............................... ................................
33

参考文献
..................................... ...........................
34
II
四川师范大学成都学院本科毕业设计

基于
Java
的“网络五子棋”游戏的设计和实现——网络版客户端

前言


随着经济社会的迅速发展,人们生活水平有了很大的提高,人 们的生活观念也发生
了巨大的改变。高品质的生活、现代化得生活方式成为人们共同追求的目标;休闲、 娱
乐性活动作为时尚生活中的一部分,而被大多数的人所追捧。棋类项目作为一种智力型
项目, 可以益智健心、修身养性,也可以满足人们对于娱乐和休闲的新需求。一些项目
比如五子棋等等,
由于项目本身互动的特点,
一直被人们所喜爱,
因此得以生存和发展,
成为许多人喜 爱的休闲娱乐性棋类项目。


而今,
以网络技术为核心和计算机技术 的现代网络技术已经在现实生活得到了十分
的广泛的使用。休闲类网络游戏集合了益智性、趣味性、互动 性、娱乐性于一体,已经
成为多数人群的选择的休闲方式。

借此,
本论文在 分析了当前计算机网络的蓬勃发展和人们对于休闲娱乐性生活方式
的追求,以
java
为工具,以精美的界面,以常规安全的
socket
建立连接,设计更为益
智的网络五 子棋游戏,增强了趣味性和益智性。


1

绪论

1.1
背景


现在人们压力日益增大,人们需要劳逸结合也获得 更高的工作效率,工作之余的娱
乐对每一个人来说都是必不可少的放松方式。五子棋游戏简单易学同时具 有很大奥妙
性,也非常富有趣味性与消遣性。在经过不断发展后,五子棋已经成为棋盘娱乐的重要
的组成部分,它能够开发智力、增强思维能力,是人们休闲娱乐的不二的选择。而网络
互动娱乐是近几 年迅速发展起来的新的娱乐形式,成为
IT
产业中增长最快的娱乐形式
之一。


网络五子棋游戏很多是使用
Java
语言开发的一款游戏。它使用
SOCKET
建立连接,
多线程处理数据,这些特点使这款游戏无论是客户端还是服务器的实现 都相对容易。

1.2
选题的前提和目的

随着计算机网络技术的 不断发展
,
网络游戏已经成为最具潜力的热点领域。
各种各样
1
四川师范大学成都学院本科毕业设计

的游戏使人眼花缭乱,而特别是其中一些休闲益 智类的棋牌游戏,集娱乐性、趣味性、
益智性和互动性于一体,拥有很大的用户。棋类游戏能锻炼人的思 维,起到修身养性的
作用。
五子棋游戏可以分为两类:
一类是单机版五子棋游戏,另一类是网络五子棋游戏。
随着计算机网络和
JAVA
技术的不断发展,
使用
Java
开发网络五子棋游戏将是一个实用
性很强的毕业设计项目。
< br>网络五子棋游戏的总体功能是要设计出具有精美界面的,具备人工智能的,支持网
络对弈的五子棋 游戏。本系统最终的目的是建立一个有具体规则的网络五子棋平台,使
两台不同计算机的使用者通过网络 连接,达到网络对弈的目的。

1.3
五子棋介绍

五子棋起源于 中国古代的传统黑白棋种之一,
是一种两人对弈的纯策略型棋类游戏。
现代五子棋日本称之为“ 连珠”
,英译为
Renju
,英文为“
FIR


Five
in
a
Row
的缩写)
或“
Gobang

,中文有“串珠”


“五子连”

“连五子”等很多种名字。它发展于日本,
流行于欧美。容易上 手,老少皆宜,而且引人入胜;不仅能提高智力,而且富含哲理。


传统五子棋的棋 具与围棋类似,棋子分为黑白两色,棋盘有大有小,棋子放置于棋
盘线交叉点上。两人对局,各选一色, 轮流落子。五子棋游戏规则:游戏双方轮流在棋
盘下棋子,一方的棋子在横、竖、两个对角线上首先到达 五子者为胜方。因为五子棋在
落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。


随着五子棋的发展,逐步发现先行优势非常大,最后总结出“先行必胜”的结论。
五 子棋成为竞技运动,核心问题是怎样解决传统五子棋下法中“先行必胜”的问题。而
竞技五子棋便是参赛 双方打破“先行必胜”的问题,以棋盘和棋子为介体,进行智力性
对抗的竞技体育项目。

1.4
主要完成内容

本课题为了分析了五子棋规则及技巧,以及研究客户 端界面的布局,决定用
Java
开发五子棋游戏。主要完成客户端界面设计和网络对战
2
个功能模块。客户端负责收集
用户的信息和界面维护,以及错误处理;服务器的建立以及对战 用户的基本信息和两个
对战用户的棋盘信息,判断输赢。


2
四川师范大学成都学院本科毕业设计

2

开发环境及工具介绍

2.1
开发环境及运行环境

2.1.1
开发环境



AMD Athlon(tm) 2.10GHz

2G
内存,
80G
硬盘



Microsoft Windows 7


JDK 1.60


Eclipse
2.1.2
运行环境



Intel Pentium core
及以上处理器
,128M
以上内存,
20G
以上硬盘



Microsoft Windows 9X/NT
操作系统



1024*768
或以上的屏幕分辨率

2.1.2
开发工具

Java
的开发工具很多,比如
JBuilder

Eclipse

NetBeans IDE

JCreator
等等,
不同的工具可能对开发不同的程序有针对 的优势。我选择
Eclipse
进行编写,我们说一

Eclipse
的优势。



Eclipse
是一种具有可扩展的开放源代码
IDE

Eclipse
可以在同一
IDE
中集成
了来自不同供应商的工具,并实现了工具之间的相互操作,从而显著简化了项目工作流
程。



Eclipse
框架的灵活性来自于它的扩展点。

XML
中定义的已知接口,
并充当插
件的耦合点。扩展点的范围包括从简单字符串,到 一个
Java
类的描述。



Eclipse
的最大特点是它能接受由
Java
开发者自己编写的开放源代码插件。

2.2

Java
简介


Java
是一种简单的、分布式的、面向对象的、可移植、解释的、安全的的多线程语
言。它以其平台无关性、硬 件结构无关性、强安全性、面向对象、语言简洁的特点,在
网络编程语言中占据了无可比拟的优势,成为 实现电子商务系统的首选语言
[2]


2.2.1

Java
的起源和发展


Java

Sun公司在
1995
年推出的新兴的编程语言,它是一种跨平台的、应用于当
前高速发 展的网络的编程语言。
在编程语言中,
可认为
Basic
语言促使了
C
语言的出现,
C
语言促进了
C++
的出现,而
C++又促使了
Java
语言的出现。

3
四川师范大学成都学院本科毕业设计


自从
Java
正式 推出后,以它特有的优势迅速发展,经过几年的发展,
Java
已经在
软件开发等领域 占有很大的市场。
Java
分为三种:
J2SE

J2EE

J2ME

J2SE

Java
平台标准版
[3 ]
,主要应用于桌面程序和
Java
小应用程序开发;
J2EE
主要 用于企业级开
发和大型网站的开发;
J2ME
主要用于手机等移动设备程序的开发。< br>
2.2.2

Java
特点



平台无关性

Java
的平台无关性能让这种软件在每个平台上都能正常地运 行,就是

只要写一次
程序,在任何地方、任何时间该程序永远都能够运行

Java
解释器生成与体系无关的
字节码指令,这些指令对应于
Jav a
虚拟机里表示,
Java
解释器得到字节码后,对它进
行转换,只要安装< br>Java
运行系统,
Java
就可以在任何处理器上运行。





简单性

Java
语言是一种面向对象的 语言,它通过提供最基本的方法来完成指定的任务,开
发者只要知道一些概念就能够编写一些应用程序。



多线程


设计
Java
的多线程,是为了满足人们对创建交互式网上程序的需要。用
Java
编写
出来的应 用程序可以同时执行很多任务。多线程机制使应用程序可以并行执行,而且同
步机制保证了对共享数据的 正确操作。



健壮性


Java
语言被病毒感染和破坏得最少。
Java
丢弃了难学和危险的指针功能,
而大部分病毒程序常用的方法就是通过巧妙地运用地址变量如指针来获取计算机的资源,
从而使
程序 不安全。




面向对象语言


J ava
的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对
象中封装它 的状态变量和相应的方法,实现了模块化和信息的隐藏;而类则是提供对象
的原型,并且通过继承的机制 ,子类可以使用父类所提供的方法,以实现代码的复用。




自动内存管理

也可以说自动内存管理是
Java
健壮性的体现,< br>内存管理是很多种应用程序内的很关
键因素。在网络上的其他地方读取大量的数据,之后把该数据 写入硬盘上的数据库内,
4
四川师范大学成都学院本科毕业设计

一般的设 计就是把数据读入内存中的某些集合内,对这些数据执行某些操作,之后把数
据写入数据库。在数据写入 数据库后,在下一批处理之前,临时存储数据的集合必须清
空旧数据,或被删除后再建。这种操作可能执 行很多次,很多语言要手工清空或删除集
合数据结构。
Java
的自动内存管理
[4]
正好解决这一点,它使程序员不用再为内存管理写
大量的代码。

2.3

Java

Socket

网络编程简介

2.3.1

Java Socket

网络编程基础

网络编程,
简单的理解就是两台计算机相互通信。
其 基本模型就是客户机
/
服务器模
型,也就是通信双方中的一方必须提供一个固定的端口 ,而另一方则只需要知道这个端
口,并去建立两者之间的联系,然后完成数据交换。这里提供固定位置的 一方通常称为
服务器,而建立联系的一方通常称为客户端
[5]


基于客户机
/
服务器的
Socket
通信模型如下图所示:


服务器端

创建
Socket
对象

在制定服务器端公
认的地址和端口


Socket
上监听客户
端请求

阻塞,
等待建立连接

建立连接

接收用户请求信息

解释并处理请求信息

将处理结果反馈给客户端

反馈信息

接收服务结果



2.3.1-1
基于客户机
/
服务器的
Socket
通信模型图

客户端

创建
Socket

向服务器发送连接请求

请求信息

向服务器发出服务请求


5
四川师范大学成都学院本科毕业设计


Java
为这个模型的实现 提供了简化的
Socket
编程接口。
在程序中只要导入

包就可以方 便的使用
java

Socket
编程接口。

Java

Socket
通信模型如下图所示:

Server
ServerSocket ss(port #)
()//
等待连接


OutputStream
InputStream

()
Client
Socket s(host,port #)
//
请求连接服务器

OutputStream
InputStream

()


2.3.1-2 Java
中的
Socket
编程模型图


2.3.2 Socket
编程的实现

Socket
类表示了系统的
IP
地址和端口号的结合,可以理解为客户端或者服务器端
的一个特殊对象。它包含两个处理流的方法,一 个是
getInputStream()
,另一个是
getOutputStream ()
,分别用来获得网络的输入流和输出流。构造
Socket
对象的代码如
下:




Socket s = new Socket(IP, port);
IP

port
分别为服务器端的
IP
地址和服务器端的端口号。

ServerSocket
类是一 个专门建立
Socket
服务器的类,它可以用服务器需要使用的
端口号作为参数来创 建
ServerSocket
对象。示例代码如下:



ServerSocket ss = new ServerSocket(TCP_PORT);
当一个客户端程序建立一个
Socket
连接,所连接的端口号为对应
TCP _PORT
时,服
务器对象
ss
便响应这个连接,在用上述
ss对象调用
accept()
创建一个代表服务器的
Socket
对象。创 建后服务器便可以利用这个
Socket
对象与客户端进行数据交换。示例
代码如下:


Socket clientSocket = ();
6
四川师范大学成都学院本科毕业设计

在本系统的实现过程中,在支持网络对弈的服务 器类的定义中需要使用
ServerSocket
类来响应多个客户端的连接请求。能够同时建 立多个服务器
,
玩家可以选
择不同的服务器参与游戏。

2.4

Java
图形编程

Java
中的
Graph ics
类是一个工具类,用来绘图和显示格式化文本,
Graphics
类是


包中声明的。在
Java
程序中绘图必须在一个窗口或者是一个容器中进行 ,
绘图窗体经常被设计为一个组件容器。显示格式化文本和绘图是调用
Graphics
类的
drawXX()
方法完成的,例如
drawString(String)< br>等等。绘图采用的坐标系
[6]
是原点在左
上角,纵轴向下以像素为单位的坐标 系。


3

需求分析和总体设计

3.1

需求分析作用

软件需求分析是软件开发周期的第一个阶段,也是关系到软 件开发成败的最关键一
步。只有通过了软件需求分析,才能把软件的功能和性能由总体的概念性和理论性 描述
转化为具体的规格说明,从而建立软件开发的基础。实践证明,需求分析工作进行得准
确程 度,在很大程度上决定了软件开发的成败。

软件需求分析的任务就是让用户与开发者明确开发 的是一个什么软件。具体的说,
就是通过对问题及其环境的理解、分析与综合把握,建立逻辑模型,完成 软件的逻辑方
案设计。

3.1.1

基本需求分析
< br>软件的界面简洁明了而不失精美,操作简单容易,功能按钮名称简单易懂,棋盘的
大小,棋子的样 式。

3.1.2

高级需求分析

现有的网络编程模式 主要分成两类:一种是基于
C/S

Client/Server
)模式,另 一
种是
B/S

Browser/Server

模式。
网络五子棋系统应用于局域网,
对交互性要求很高,
本系统选用了
C/S
模式进行实现,
网络内部使用
TCP/IP
方式利用
Socket
提供的服务,
使用
Java
Gra phics
类进行用户图形界面的搭建。系统分成两个部分,分别为服务端程
序以及客户端程序
[7]
。结合实际情况,将服务器端的程序和客户端的程序放在一起,便
7
四川师范大学成都学院本科毕业设计

可以更为方便的建立游戏和参与游戏,有效解决 了在局域网中服务器未开启,则无法进
行游戏的缺陷。

五子棋网络游戏主要分为两个 部分,游戏服务端和游戏客户端。游戏服务端主要存
储所有连线客户的相关信息及各种状态,并负责游戏 客户之间数据的传递,具有创建服
务器、系统设置、连接服务器、我要参赛等等功能;游戏客户端提供客 户连接服务器,
并能与联网玩家进行游戏。由于将服务器端和客户端程序放在一起,所以可以减少界面< br>绘制的冗余代码,
使得客户端和服务器端使用相同的界面。
故客服端也具有创建服务器、
系统设置、连接服务器、我要参赛等功能。

3.2

总体设计

总体设计是软件开发过程中的另一个重要阶段,在这一阶段中将根据需求分 析中提
出的逻辑模型,合理地完成物理模型的设计。这个阶段的主要目标是将反映了用户信息
需 求的逻辑方案转换成物理方案,并为下一阶段提供必须的技术资料。

总体设计应遵循以下原则:



整体性:
软件是作为统一 整体而存在的。
因此,
在总体设计中要从整个软件的角
度去考虑。



灵活性:为保持软件长久的生命力,要求该软件具有很强的环境适应性。为此,< br>该软件必须具有较好的开放性与结构的可变性。



可靠性:可靠性是指软件抵御外界干扰的能力及受外界干扰时的恢复能力。



经济性:
经济性是指在满足游戏软件需求的前提下,
尽可能地减 少对游戏的开销。

3.2.1

系统设计思想

通过服 务器的连接,不同的玩家可以连接到各自想参加比赛的服务器地址,并开始
各自的游戏。通过安全的SOCKET
连接交换数据。通过多线程,使得每个对战的双方不
会受到第三方数据的干扰 。
本系统的功能能够实现一个在网络上供客户进行对战的五子
棋网络游戏,
因为是C/S
模式的网络游戏,
客户只要连接到服务器上,
就能选择任何其
它 用户已创建好的游戏进行对战游戏。

C/S
模式游戏中,
Server一般提供所有用户的
全部信息,并能提供客户之间的信息转发。客户之间的通讯必须通过
S erver
进行,因
为多个客户能够连接到同一台
Server
上,所以Server
必须用
Thread
负责每个用户的
通讯和消息处理。

8
四川师范大学成都学院本科毕业设计

客户连接成功,
Server
利用特定的客户
Thread
连接不断从客户读取数据,实现客
户和服务器或者客户与 客户之间的信息的交互。客户端同样采用的是线程控制的思想
,
在每一个客户端连接上服务器后
,
就为此客户端启动一个网络收发数据线程。

系统设计设计框架如下图所示:


WZQ_Client
服务

用户通过
TCP
与服务
器建立连接
,
通过
SOCKET
与服务器交互
WZQ_Client

WZQ_Server
客户

WZQ_Client
WZQ_Client


3.2.1-1
网络五子棋设计框架图


3.2.2

系统总体设计

系统使用
Socket
技术以及
java
多线程机制进行客户与服务端之间信息的交互,

一个真正实用程序必须针对具体应用 定制一套协议用于用户程序之间进行交互,
而该协
议的定制往往是编写程序的关键也是核心内容 ,
该协议的完善决定程序是否能够正常运
行。

所谓协议就
[8]
是程序之间交互的信息的格式规定,

服务端和客户端都遵循该协议才
能够进行对话,

通俗讲是人类之间的语言。

本网络游戏可以分为两个部分:服务器和客户端。服务器 主要存储所有连线客户的
相关信息及各种状态,并负责游戏客户之间数据的传递,具有创建服务器、系统 设置、
连接服务器、我要参赛等等功能;客户端提供客户连接服务器,并能与联网玩家进行游
戏 。

信息交换如图所示:

9
四川师范大学成都学院本科毕业设计



客户端发送连接状
态信息和聊天信息



客户端


服务器端转发其他
客户端信息



3.2.2-1
客户端与服务器端的信息交换图


服务器


3.3

功能模块及流程

3.3.1

系统主要模块

根据上面的系统的设计要求,可以将此网络五子棋游戏分为以下五个模块:

初始化模 块:
建立棋盘数组并清零;
初始化界面并在屏幕上画出棋盘,
加载音乐等。

主循环控制模块:负责控制下棋顺序,当轮到某方下子时,负责将程序流程转到相
应的模块中。

玩家落子模块:即用户在指定落子区域单击后,程序就会得到该棋子的坐标,并且
将 棋盘数组中坐标处记录棋子的颜色,
1
代表白色,
2
代表黑色,以说明是哪一 方下的
棋子。

胜负判断模块:根据预先设定的五子棋规则,判断游戏输赢。

网络模块
[9]
:网络功能的实现,使两台不同计算机的用户通过网络连接,实现网络
对弈的功能。

3.3.2

服务器端作用

服 务器端
[10]
主要通过建立流连接来连接客户端,
与客户端进行相互通信、
转发信息。
接收客户端的信息,接收信息后按照此客户端的要求将信息发送到相应的客户端,服务
器端起到了中转的作用。

10
四川师范大学成都学院本科毕业设计
< br>玩家进入游戏界面时,如果玩家不想进入别人已经建立好的游戏中,那也可以自己
从界面中建立一 个自己的游戏,等待其他玩家的进入。首先输入你要建立游戏的
IP

址,输入自己的 名字,这样一个自己的游戏就建立了,如果有玩家加入游戏,系统会提
示某某玩家进入,这时你可以选择 开始游戏或者继续等待。游戏各模块功能跟客服端的
模块相同。

3.3.3

客户端作用

玩家进入游戏界面时,首先提示用户连接服务器,当玩家连接 上服务器后,就会在
界面右上角给出用户的初始玩家名,在聊天内容框中会给出用户提示,玩家可以创建 游
戏或者加入建立好的游戏。

游戏各模块功能如下表
3.3.3-1:


3.3.3-1
客户端模块功能

模块名称

UserPad
家名称。

chatPad
chessPad
inputPad
功能

用于显示服务器发送 过来的当前连接上服务器的用户,
即活动玩家的玩
用于显示服务器发送过来的提示信息以及用户 公聊或私聊的内容。

用于绘制棋盘及棋子,以及当前的提示信息。

用于用 户选择要公聊或私聊的对象,即所有人或某一具体的玩家,输入
要发送的消息,发送给服务器,通过服务 器转发出去。

用于对当前的游戏界面进行实时的控制,
包括:
创建服务器、
系统设置、
controlPad
连接



以上功能模块在界面中的展示如下图所示:

服务器、我要参赛等。

11
四川师范大学成都学院本科毕业设计

controlpad
usrpad
Chatpad
chesspad
inputpad


3.3.3-1
用户操作界面


3.3.4

系统主流程

玩家进入游戏,选择是否为服务器,是 则等待其他玩家加入,否则等待其他玩家建
立服务器。进入服务器后点参赛,进入对弈阶段。对弈结束, 从新开始。

系统主流程如下图:


开始



是否建
立服务器



是否有
服务器



是否有玩家加入

等待





从新开始

一方胜利

判断胜负

一方退出

一方胜利

游戏结束



3.3.4-1
网络五子棋游戏流程图

12
四川师范大学成都学院本科毕业设计


4

概要设计





根据玩家的需求分析,本系统的实现主要用到如下几个类:



ChessServer
:主要用于玩家相关信息的传递。



ChessClient
:主要用于玩家信息的初始化。


< br>NetClient
:主要用于实现连接网络玩家,通过此类玩家发送自己的游戏状态以
及接收并进行处理从服务器传递过来的信息。




ChessPad
:主要用于绘制棋盘及棋子。

4.1

网络编程的模式和选取

网络编程模式主要分成两类
:
一种是基于
C/S(
客户机
/
服务器
)
模式
,
另一 种是
B/S(
浏览器
/
服务器
)
式;
C/S
程序具有好的交互性
,
功能强大
,
但是客户端必须安装客
户端软件
,
限制了其应用;
B/S
模式下要求客户端具有浏览器
,
但浏览器在安全方面
有一些限制
,
交互性与功能有一些限制网络五子棋系统应用
,
所以一般的网络五子棋游
戏都 选用了
C/S
模式进行实现
,
使用
TCP/IP
方式利用
Socket
通过传输层提供服务。


Soc ket
工作中
,

ClientSocket
类建立客户端连接,

ServerSocket
类建立服务
器端连接
,
这两个组件分别用来操纵客户端和服务器端的
Socket
对象进行连接和传输数
据。 在通信过程中
,
服务器端应用程序先启动
,
然后等待客户端的连接请求。在另 外一台
计算机上启动客户端应用程序
,
同时输入服务器端
Socket
地址和端口号进行选择服务
器,找到服务器后就向服务器端发请求连接服务器端,允许连接后即向客户 端
Socket
收到
Accept
信号。客户端和服务器端就正式建立起了后
,
就可以分别调用
Tserve
Rsocket

TC lientSocket

Socket
属性和客户端进行数据传输。客户端和服务器 端
Socket
组件必须设置相同的端口号。

4.2

主要类与其作用

4.2.1

服务器类

服务 器类用于接收客户端的连接,
并为每个客户端在服务器端启动唯一的守护线程,
线程主要功能是 接收客户端发送过来的消息并做出相应的处理。
客户端发送到服务器端
的主要消息有两部分:一 部分是客户端发送给服务器端需要服务器端进行处理的,如客
户端发送过的连接信息、客户端改名信息、 客户端断开连接信息等;另一部分是客户端
13
四川师范大学成都学院本科毕业设计

发送给服务器端需要服务端转发给其他客户端的消息,
如客户端给游戏另一方发送的棋
盘状态数据、聊天信息等。

服务器类的主要对象如表
4.2.1-1




4.2.1-1

服务器主要对象功能

对象名称

功能

服务器端用于建立套接字的端口号
,为了可靠的用户连接
,
因此在服务器端
TCP_PORT

< br>定义了此端口号为
TCP

,
主要用于建立服务器端与客户端的
TCP
连接。

服务器端用于向客户端转发数据需要绑定的用户数据报套接字的端口 号,玩
UDP_PORT


家发送给服务器需要转发的消息时,服务器端的
DatagramSocket
就是使用
此端口号建立的
UDP
连接。

用于保存客户端套接字和
IP
套接字地址的哈希表,服务器可以通过发送消
ClientDataHash


息的客户端
Socket
得到其
IP
套接字地址,将消息转发出去。

用于保存客户端套接字和客户端当前名 字的哈希表,同样是为了转发客户端
ClientNameHash


消息的。

用于保存每一对开局玩家信息的哈希表,表中键是服务方,值是客户方,每
ChessPeerHash


一对玩家需要交换的如棋盘状态数据,倒计时信息大都依赖于此哈希表来实
现。


服务器类使用状况如下图:

接受玩家

显示状态

处理消息

服务器端

转发消息




4.2.1-1
服务器类用况图

14
四川师范大学成都学院本科毕业设计


4.2.2

客户端主类

游戏客户端的主要功能是为 了初始化和组织用户界面,
并且定义了各个按钮的功能。
游戏客户端的主要对象如下如表
4.2.2-1




4.2.2-1

客户端对象功能

对象名称

isGameConnected
isChess
isServer
isClient
ShiCi
Sing






功能

用于判定玩家是否与服务器连接。

用于判定玩家是否已经在开局游戏中。

用于判定在此局开局游戏中,当前玩家是不是服务方,即主方。

用于判定在此局开局游戏中,当前玩家是不是客户方,即次方。

该类的对象,用于在玩家启动时动态地显示五子棋诗的信息。

类该的对象,用于为客户端启动音乐功能。


游戏客户端使用状况如下图:


界面组织

信息交换

游戏控制

游戏玩家

玩家输入




4.2.2-1
游戏客户端用况图


4.2.3

客户端副类

客户端副类的主要功能是当前玩家与其他玩家进行对弈时,网络客户端处理需要发
送和接收的消 息。

客户端副类的主要对象如表
4.2.3-1


15
四川师范大学成都学院本科毕业设计



4.2.3-1

网络端对象功能

对象名称

功能

随机函数类的对象,用于为每个客户端启动时,为每一个客户端随机分配一个端口
r
号,玩家使用此端口号来接收信息。

time
otherTime
当前玩家方的时间信息。初始化时间为
3
分钟。

当前开局游戏中对方的时间信息。初始时间为
3
分钟。


客户端副类类用况图如下:


网络对战玩家

发送消息

聊天消息

处理消息

玩家退出

加入消息

更名消息

棋盘状态

连接消息

玩家列表

建立游戏消息

退出消息

退出消息

倒计时



4.2.3-1
客户端副类用况图


4.2.4

棋盘类

棋盘类的主要功能是绘制玩家的棋盘状态与棋子信息。

棋盘类的主要对象如表
4.2.4-1


16
四川师范大学成都学院本科毕业设计



4.2.4-1

棋盘对象功能

对象名称


board[][]
表示
(x,y)
位置为白子。


withComputer
则为假。


isMouseEnable
功能

玩家所维护的棋盘二维数组。结果为< br>1
表示
(x,y)
位置为黑子,结果为
2
玩家与电脑对弈的标 志。
如果当前玩家是与电脑对弈,
此变量值为真;

以此变量来控制在网络对 弈的双方中,当前玩家是否处于可以落子状态。
因为网络对弈要求当一玩家下完后,
对方才能落 子,
因此当此变量为真时,

家可以落子;当此变

量为假时,玩家不可以落子。


判断当前的悔棋按钮是否可用。为真时,玩 家可以悔棋;为假时,玩家不
isRegretEnable
可以悔棋。

判断当前的棋盘是否已经下满,
当棋盘下满后,
分别给游戏双方一个提示,
isFul l
然后进行清盘操作。


棋盘类用况如下图:


先手判断

绘制棋盘

玩家





胜负判断




4.2.4-1
棋盘类用况图


17
四川师范大学成都学院本科毕业设计

5

详细设计

5.1

开发环境的搭建

5.1.1
安装
JDK


从官方网站上下载免费安装软件:网址:
www.//




运行下载的
exe
文件,如图:
5.1.1-1






5.1.1-1
接受协议图




点击接受,选择安装路径。如图
5.1.1-2
所示:





5.1.1-2
选择路径图


18
四川师范大学成都学院本科毕业设计



点击下一步完成安装。如图
5.1.1-3
所示:





5.1.1-3 jdk
的安装图


5.1.2

安装
JRE


从官方网站上 下载免费安装软件,点击
exe
开始安装。如图
5.1.2-1
所示:





5.1.2-1 JRE
选项图




点击安装,完成安装
JRE
。如图
5.1.2-2
所示:

19
四川师范大学成都学院本科毕业设计





5.1.2-2
安装过程图


5.1.3

安装
Eclipse
从官方网站上下载免费压缩包,在
jdk
安装目录下,解压此压缩包即可。

如图
5.1.3-1:


5.1.3-1 Eclipse
安装图


5.1.4

配置环境变量

在环境变量的配置中,
假设
JDK
的安装目录为
D:Program
FilesJavajdk1.6.0_10
环境变量
PATH
方法一: 在
c:
文件的底部或者最后以后一个
path
命令之后,输入:
SE T PATH=%PATH%;D:Program FilesJavajdk1.6.0_10bin
方法二:在“系统属性”对话框中

直接设置环境变量:
PATH=
??
;D:Program
FilesJavajdk1.6.0_10bin;
具体操作如下:



在我的电脑上点击右键,找到属性。如下
5.1.4-1
图:

20
四川师范大学成都学院本科毕业设计




5.1.4-1
电脑属性图






找到系统属型里的环境变量,并找到
path
变量。 如
5.1.4-2
图所示:





5.1.4-2 path
变量图





在找到的
path
变量中加入
JDK
的安装 路径。如图
5.1.4-3
所示:


21

我怀了你的孩子结局-


我怀了你的孩子结局-


我怀了你的孩子结局-


我怀了你的孩子结局-


我怀了你的孩子结局-


我怀了你的孩子结局-


我怀了你的孩子结局-


我怀了你的孩子结局-



本文更新与2021-01-27 06:19,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/429912.html

基于Java的“网络五子棋”游戏的设计和实现(含源文件)的相关文章

基于Java的“网络五子棋”游戏的设计和实现(含源文件)随机文章