基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc

上传人:wj 文档编号:1459982 上传时间:2023-04-30 格式:DOC 页数:50 大小:2.61MB
下载 相关 举报
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第1页
第1页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第2页
第2页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第3页
第3页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第4页
第4页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第5页
第5页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第6页
第6页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第7页
第7页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第8页
第8页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第9页
第9页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第10页
第10页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第11页
第11页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第12页
第12页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第13页
第13页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第14页
第14页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第15页
第15页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第16页
第16页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第17页
第17页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第18页
第18页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第19页
第19页 / 共50页
基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc_第20页
第20页 / 共50页
亲,该文档总共50页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc

《基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc》由会员分享,可在线阅读,更多相关《基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc(50页珍藏版)》请在冰点文库上搜索。

基于Java的“网络五子棋”游戏的设计和实现含源文件Word格式.doc

1.1背景 1

1.2选题的前提和目的 2

1.3五子棋介绍 2

1.4主要完成内容 2

2开发环境及工具介绍 3

2.1开发环境及运行环境 3

2.1.1开发环境 3

2.1.2运行环境 3

2.1.2开发工具 3

2.2Java简介 3

2.2.1Java的起源和发展 3

2.2.2Java特点 4

2.3JavaSocket网络编程简介 5

2.3.1JavaSocket网络编程基础 5

2.4Java图形编程 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

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总结语 32

参考文献 34

34

前言

随着经济社会的迅速发展,人们生活水平有了很大的提高,人们的生活观念也发生了巨大的改变。

高品质的生活、现代化得生活方式成为人们共同追求的目标;

休闲、娱乐性活动作为时尚生活中的一部分,而被大多数的人所追捧。

棋类项目作为一种智力型项目,可以益智健心、修身养性,也可以满足人们对于娱乐和休闲的新需求。

一些项目比如五子棋等等,由于项目本身互动的特点,一直被人们所喜爱,因此得以生存和发展,成为许多人喜爱的休闲娱乐性棋类项目。

而今,以网络技术为核心和计算机技术的现代网络技术已经在现实生活得到了十分的广泛的使用。

休闲类网络游戏集合了益智性、趣味性、互动性、娱乐性于一体,已经成为多数人群的选择的休闲方式。

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

1绪论

1.1背景

现在人们压力日益增大,人们需要劳逸结合也获得更高的工作效率,工作之余的娱乐对每一个人来说都是必不可少的放松方式。

五子棋游戏简单易学同时具有很大奥妙性,也非常富有趣味性与消遣性。

在经过不断发展后,五子棋已经成为棋盘娱乐的重要的组成部分,它能够开发智力、增强思维能力,是人们休闲娱乐的不二的选择。

而网络互动娱乐是近几年迅速发展起来的新的娱乐形式,成为IT产业中增长最快的娱乐形式之一。

网络五子棋游戏很多是使用Java语言开发的一款游戏。

它使用SOCKET建立连接,多线程处理数据,这些特点使这款游戏无论是客户端还是服务器的实现都相对容易。

1.2选题的前提和目的

随着计算机网络技术的不断发展,网络游戏已经成为最具潜力的热点领域。

各种各样的游戏使人眼花缭乱,而特别是其中一些休闲益智类的棋牌游戏,集娱乐性、趣味性、益智性和互动性于一体,拥有很大的用户。

棋类游戏能锻炼人的思维,起到修身养性的作用。

五子棋游戏可以分为两类:

一类是单机版五子棋游戏,另一类是网络五子棋游戏。

随着计算机网络和JAVA技术的不断发展,使用Java开发网络五子棋游戏将是一个实用性很强的毕业设计项目。

网络五子棋游戏的总体功能是要设计出具有精美界面的,具备人工智能的,支持网络对弈的五子棋游戏。

本系统最终的目的是建立一个有具体规则的网络五子棋平台,使两台不同计算机的使用者通过网络连接,达到网络对弈的目的。

1.3五子棋介绍

五子棋起源于中国古代的传统黑白棋种之一,是一种两人对弈的纯策略型棋类游戏。

现代五子棋日本称之为“连珠”,英译为Renju,英文为“FIR”(FiveinaRow的缩写)或“Gobang”,中文有“串珠”、“五子连”、“连五子”等很多种名字。

它发展于日本,流行于欧美。

容易上手,老少皆宜,而且引人入胜;

不仅能提高智力,而且富含哲理。

传统五子棋的棋具与围棋类似,棋子分为黑白两色,棋盘有大有小,棋子放置于棋盘线交叉点上。

两人对局,各选一色,轮流落子。

五子棋游戏规则:

游戏双方轮流在棋盘下棋子,一方的棋子在横、竖、两个对角线上首先到达五子者为胜方。

因为五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。

随着五子棋的发展,逐步发现先行优势非常大,最后总结出“先行必胜”的结论。

五子棋成为竞技运动,核心问题是怎样解决传统五子棋下法中“先行必胜”的问题。

而竞技五子棋便是参赛双方打破“先行必胜”的问题,以棋盘和棋子为介体,进行智力性对抗的竞技体育项目。

1.4主要完成内容

本课题为了分析了五子棋规则及技巧,以及研究客户端界面的布局,决定用Java开发五子棋游戏。

主要完成客户端界面设计和网络对战2个功能模块。

客户端负责收集用户的信息和界面维护,以及错误处理;

服务器的建立以及对战用户的基本信息和两个对战用户的棋盘信息,判断输赢。

2开发环境及工具介绍

2.1开发环境及运行环境

2.1.1开发环境

★AMDAthlon(tm)2.10GHz,2G内存,80G硬盘

★MicrosoftWindows7

★JDK1.60

★Eclipse

2.1.2运行环境

★IntelPentiumcore及以上处理器,128M以上内存,20G以上硬盘

★MicrosoftWindows9X/NT操作系统

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

2.1.2开发工具

Java的开发工具很多,比如JBuilder、Eclipse、NetBeansIDE、JCreator等等,不同的工具可能对开发不同的程序有针对的优势。

我选择Eclipse进行编写,我们说一下Eclipse的优势。

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

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

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

在XML中定义的已知接口,并充当插件的耦合点。

扩展点的范围包括从简单字符串,到一个Java类的描述。

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

2.2Java简介

Java是一种简单的、分布式的、面向对象的、可移植、解释的、安全的的多线程语言。

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

2.2.1Java的起源和发展

Java是Sun公司在1995年推出的新兴的编程语言,它是一种跨平台的、应用于当前高速发展的网络的编程语言。

在编程语言中,可认为Basic语言促使了C语言的出现,C语言促进了C++的出现,而C++又促使了Java语言的出现。

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

Java分为三种:

J2SE、J2EE和J2ME。

J2SE是Java平台标准版[3],主要应用于桌面程序和Java小应用程序开发;

J2EE主要用于企业级开发和大型网站的开发;

J2ME主要用于手机等移动设备程序的开发。

2.2.2Java特点

★平台无关性

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

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

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

★简单性

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

★多线程

设计Java的多线程,是为了满足人们对创建交互式网上程序的需要。

用Java编写出来的应用程序可以同时执行很多任务。

多线程机制使应用程序可以并行执行,而且同步机制保证了对共享数据的正确操作。

★健壮性

Java语言被病毒感染和破坏得最少。

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

★面向对象语言

Java的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。

对象中封装它的状态变量和相应的方法,实现了模块化和信息的隐藏;

而类则是提供对象的原型,并且通过继承的机制,子类可以使用父类所提供的方法,以实现代码的复用。

★自动内存管理

也可以说自动内存管理是Java健壮性的体现,内存管理是很多种应用程序内的很关键因素。

在网络上的其他地方读取大量的数据,之后把该数据写入硬盘上的数据库内,一般的设计就是把数据读入内存中的某些集合内,对这些数据执行某些操作,之后把数据写入数据库。

在数据写入数据库后,在下一批处理之前,临时存储数据的集合必须清空旧数据,或被删除后再建。

这种操作可能执行很多次,很多语言要手工清空或删除集合数据结构。

Java的自动内存管理[4]正好解决这一点,它使程序员不用再为内存管理写大量的代码。

2.3JavaSocket网络编程简介

2.3.1JavaSocket网络编程基础

网络编程,简单的理解就是两台计算机相互通信。

其基本模型就是客户机/服务器模型,也就是通信双方中的一方必须提供一个固定的端口,而另一方则只需要知道这个端口,并去建立两者之间的联系,然后完成数据交换。

这里提供固定位置的一方通常称为服务器,而建立联系的一方通常称为客户端[5]。

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

接收服务结果

向服务器发出服务请求

向服务器发送连接请求

将处理结果反馈给客户端

解释并处理请求信息

接收用户请求信息

阻塞,等待建立连接

在Socket上监听客户端请求

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

服务器端

创建Socket对象

客户端

建立连接

请求信息

反馈信息

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

Java为这个模型的实现提供了简化的Socket编程接口。

在程序中只要导入java.io包就可以方便的使用java的Socket编程接口。

Java中Socket通信模型如下图所示:

ServerSocketss(port#)

ss.accept()//等待连接

Server

OutputStream

InputStream

ss.close()

s.close()

Sockets(host,port#)

//请求连接服务器

Client

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

2.3.2Socket编程的实现

Socket类表示了系统的IP地址和端口号的结合,可以理解为客户端或者服务器端的一个特殊对象。

它包含两个处理流的方法,一个是getInputStream(),另一个是getOutputStream(),分别用来获得网络的输入流和输出流。

构造Socket对象的代码如下:

Sockets=newSocket(IP,port);

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

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

示例代码如下:

ServerSocketss=newServerSocket(TCP_PORT);

当一个客户端程序建立一个Socket连接,所连接的端口号为对应TCP_PORT时,服务器对象ss便响应这个连接,在用上述ss对象调用accept()创建一个代表服务器的Socket对象。

创建后服务器便可以利用这个Socket对象与客户端进行数据交换。

SocketclientSocket=ss.accept();

在本系统的实现过程中,在支持网络对弈的服务器类的定义中需要使用ServerSocket类来响应多个客户端的连接请求。

能够同时建立多个服务器,玩家可以选择不同的服务器参与游戏。

2.4Java图形编程

Java中的Graphics类是一个工具类,用来绘图和显示格式化文本,Graphics类是在java.awt包中声明的。

在Java程序中绘图必须在一个窗口或者是一个容器中进行,绘图窗体经常被设计为一个组件容器。

显示格式化文本和绘图是调用Graphics类的drawXX()方法完成的,例如drawString(String)等等。

绘图采用的坐标系[6]是原点在左上角,纵轴向下以像素为单位的坐标系。

3需求分析和总体设计

3.1需求分析作用

软件需求分析是软件开发周期的第一个阶段,也是关系到软件开发成败的最关键一步。

只有通过了软件需求分析,才能把软件的功能和性能由总体的概念性和理论性描述转化为具体的规格说明,从而建立软件开发的基础。

实践证明,需求分析工作进行得准确程度,在很大程度上决定了软件开发的成败。

软件需求分析的任务就是让用户与开发者明确开发的是一个什么软件。

具体的说,就是通过对问题及其环境的理解、分析与综合把握,建立逻辑模型,完成软件的逻辑方案设计。

3.1.1基本需求分析

软件的界面简洁明了而不失精美,操作简单容易,功能按钮名称简单易懂,棋盘的大小,棋子的样式。

3.1.2高级需求分析

现有的网络编程模式主要分成两类:

一种是基于C/S(Client/Server)模式,另一种是B/S(Browser/Server)模式。

网络五子棋系统应用于局域网,对交互性要求很高,本系统选用了C/S模式进行实现,网络内部使用TCP/IP方式利用Socket提供的服务,使用JavaGraphics类进行用户图形界面的搭建。

系统分成两个部分,分别为服务端程序以及客户端程序[7]。

结合实际情况,将服务器端的程序和客户端的程序放在一起,便可以更为方便的建立游戏和参与游戏,有效解决了在局域网中服务器未开启,则无法进行游戏的缺陷。

五子棋网络游戏主要分为两个部分,游戏服务端和游戏客户端。

游戏服务端主要存储所有连线客户的相关信息及各种状态,并负责游戏客户之间数据的传递,具有创建服务器、系统设置、连接服务器、我要参赛等等功能;

游戏客户端提供客户连接服务器,并能与联网玩家进行游戏。

由于将服务器端和客户端程序放在一起,所以可以减少界面绘制的冗余代码,使得客户端和服务器端使用相同的界面。

故客服端也具有创建服务器、系统设置、连接服务器、我要参赛等功能。

3.2总体设计

总体设计是软件开发过程中的另一个重要阶段,在这一阶段中将根据需求分析中提出的逻辑模型,合理地完成物理模型的设计。

这个阶段的主要目标是将反映了用户信息需求的逻辑方案转换成物理方案,并为下一阶段提供必须的技术资料。

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

★整体性:

软件是作为统一整体而存在的。

因此,在总体设计中要从整个软件的角度去考虑。

★灵活性:

为保持软件长久的生命力,要求该软件具有很强的环境适应性。

为此,该软件必须具有较好的开放性与结构的可变性。

★可靠性:

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

★经济性:

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

3.2.1系统设计思想

通过服务器的连接,不同的玩家可以连接到各自想参加比赛的服务器地址,并开始各自的游戏。

通过安全的SOCKET连接交换数据。

通过多线程,使得每个对战的双方不会受到第三方数据的干扰。

本系统的功能能够实现一个在网络上供客户进行对战的五子棋网络游戏,因为是C/S模式的网络游戏,客户只要连接到服务器上,就能选择任何其它用户已创建好的游戏进行对战游戏。

在C/S模式游戏中,Server一般提供所有用户的全部信息,并能提供客户之间的信息转发。

客户之间的通讯必须通过Server进行,因为多个客户能够连接到同一台Server上,所以Server必须用Thread负责每个用户的通讯和消息处理。

客户连接成功,Server利用特定的客户Thread连接不断从客户读取数据,实现客户和服务器或者客户与客户之间的信息的交互。

客户端同样采用的是线程控制的思想,在每一个客户端连接上服务器后,就为此客户端启动一个网络收发数据线程。

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

WZQ_Client

WZQ_Server

服务

客户

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

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

3.2.2系统总体设计

系统使用Socket技术以及java多线程机制进行客户与服务端之间信息的交互,但一个真正实用程序必须针对具体应用定制一套协议用于用户程序之间进行交互,而该协议

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

当前位置:首页 > 成人教育 > 远程网络教育

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

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