基于Java的“多功能五子棋”游戏的设计和实现

源码地址:http://download.csdn.net/detail/clx55555/9718406

下载或转载使用请声明原著:但求心安。

基于Java的“多功能五子棋”游戏的设计和实现

引言

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

     而今,以网络技术为核心和计算机技术的现代网络技术已经在现实生活得到了十分的广泛的使用。休闲类网络游戏集合了益智性、趣味性、互动性、娱乐性于一体,已经成为多数人群的选择的休闲方式。  借此,本论文在分析了当前计算机网络的蓬勃发展和人们对于休闲娱乐性生活方式的追求,以java为工具,以精美的界面,以常规安全的socket建立连接,设计更为益智的网络五子棋游戏,增强了趣味性和益智性。

 

1  需求分析  需求分析作用  软件需求分析是软件开发周期的第一个阶段,也是关系到软件开发成败的最关键一步。只有通过了软件需求分析,才能把软件的功能和性能由总体的概念性和理论性描述转化为具体的规格说明,从而建立软件开发的基础。实践证明,需求分析工作进行得准确程度,在很大程度上决定了软件开发的成败。  软件需求分析的任务就是让用户与开发者明确开发的是一个什么软件。具体的说,就是通过对问题及其环境的理解、分析与综合把握,建立逻辑模型,完成软件的逻辑方案设计。

1.1 基本需求分析  

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

 

1.2  高级需求分析

     网络内部使用TCP/IP 方式利用Socket提供的服务,使用Java Graphics类进行用户图形界面的搭建。系统分成两个部分,分别为服务端程序以及客户端程序。结合实际情况,将服务器端的程序和客户端的程序放在一起,便可以更为方便的建立游戏和参与游戏,有效解决了在局域网中服务器未开启,则无法进行游戏的缺陷。由于将服务器端和客户端程序放在一起,所以可以减少界面绘制的冗余代码,使得客户端和服务器端使用相同的界面。五子棋网络游戏主要分为两个部分,游戏服务端和游戏客户端。服务端负责创建服务器,客户端负责连接服务器.

 

人机对战:为了是游戏更加益智,增加游戏的趣味性,使用了博弈的思想,用到博弈树,alpha-beta,启发式搜索的思想,让电脑模拟下棋,增加游戏的难度。

聊天窗口,用腾讯云作为服务器,让联机的玩家之间可以进行聊天,就算不在局域网也可以聊天。可以更好地交流,什么时候开战,免得一个人一直在等待。

 

2  开发环境及运行环境

 

开发环境:jdk 1.8;eclipse; mysql

 

运行环境:配置Java路径的计算机, mysql-connector-java-5.0.8.jar的配置环境

 

3.总体设计

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

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

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

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

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

3.1  整体设计

  

玩家可以选择人机,人人联机对战,可以聊天,服务器在我的腾讯云上一直开启状态,让人人间可以聊天。

3.2 用例图设计

玩家的用例图设计,玩家开始后可以选择人机,联机,本机人人,可以在线聊天,聊天和

联机都用的多线程,不影响主线程的使用。

 

服务器的设计:服务器没有界面只是一个简单的接收发送信息的代码,放在腾讯云服务器上,可以进行聊天。

 

登陆设计:为了配合聊天的使用,加入了登陆和个人信息,可以清楚地了解个人的信息和游戏分数。

  

3.3类的设计

 

 

CheckFrame继承窗口类,作为整个界面的窗口,一切标签,按钮,棋子棋盘都依赖这个类;

 

CheckBorder是用来画棋子棋盘的封装完毕,可以调用的方法是paint()可以重画棋盘;

 

GetC类是CheckBorder的内部类继承Thread类,联机对战中,负责接收对方的下子信息,使用多线程,不会因为对方不下棋,而影响主线程的使用。

 

Internet和server类是用来联机下棋的,局域网中的联机下棋,一个人为客户端,一个人为服务端,不联网也可以下棋。解决了没网不能下棋的烦恼,封装完毕,对外的方法是setChess(),getChess()用来下子和接受对方的棋子。

 

Computer是算法类,电脑的人工智能下棋,就是这个类,封装完毕,对外的方法是

Copychess()复制当前棋盘,alphaBeta()用来电脑下子,getSame()是用来判断输赢。

 

Clock类用来显示当前时间,封装完毕,直接添加在窗口上;

 

setMenu类是客户用来聊天的界面,封装完毕可以直接添加到窗口上,他的内部类有TCPClient类是用来连接服务器的,recvMSg类是用来发送接收消息的;

Databases类是与数据库连接有关的类。其中既有客户端连接数据库,又储存着注册用户信息资料,检查登录异常等功能的实现。

 

Login类为登录界面类。该类依赖于数据库类,来检查是否能够成功登录。

 

resign类为用户注册类,用户在此注册,并将注册信息写入数据库。

 

Editt类为资料编辑类,用户可以进行自身的资料编辑,并保存至数据库。

 

类图

 

 

 

 

 

 

 

3.4时序图的设计

评论 62
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值