基于JAVA实现的网络五子棋游戏

Sametime

发布日期: 2019-05-03 11:28:59 浏览量: 1722
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com

一、实验目的

  • 熟练掌握基本网络编程技术

  • 掌握Swing图形用户界面编程

  • 掌握多线程编程的基本原理,能使用多线程设计服务器端程序

  • 培养独立查找资料,并解决问题的能力

二、实验任务

网络五子棋游戏

  • 服务器端为多线程,当判断有偶数个用户连接时,方可开始游戏

  • 先连接的客户执黑棋,先下。另一客户执白棋

  • 双方交替下棋,由服务器端程序判断客户本次下棋步骤是否有效,仅将有效的下棋步骤传递给双方

  • 客户端程序负责本地下棋界面的显示工作,与服务器通信,并处理相应的鼠标事件

  • 下棋胜负由客户端自行判定。提供客户退出按钮,点击按钮,将退出游戏

  • 选作部分

    • 由服务器端程序判定游戏胜利方,并终止游戏,向双方显示游戏胜利者信息
    • 提供玩家注册功能,并保存该玩家胜负局数信息、等级、中途逃逸次数等信息
    • 游戏开始时,向双方显示玩家等级、逃逸次数等基本信息,玩家可选择是否继续和对手的游戏

三、开发工具与平台

  • Jdk

  • Eclipse

四、设计思路

4.1 界面设计

登陆框输入用户名和密码,判断正确方可进入游戏。

总体布局为BorderLayout,其中西边为用户信息面板,由JLabel加载图片和JTextArea显示信息。中部的棋盘背景为图片,网格线由Graphics2D实现,棋盘的paintComponent( )方法先画图再画线。东边为主机信息和游戏信息,都是JTextArea实现。东边下方的按钮先添加在面板上,在加入东部的面板里。

4.2 逻辑设计

由ServerThread探测是否有客服连接,若有,则为客户创建一个ServerToClientThread,并将其加入Clients的ArrayList集合中,接着验证用户名和密码,验证的信息存在HashMap中,键值为用户名,映射的值为Values的类,类中包含了密码,输,赢,逃跑次数等信息。如果验证成功则将用户信息传给客户端,显示在Info的JTextArea中,客户可以创建游戏或加入游戏,如果创建主机,则别的客户可以加入游戏,由host的ArrayList维护,在登陆成功的同时也会将host和Clients的集合传给客户。

客户通过JList的选择获得要传送信息的客户,此表与服务器维护的信息相同,所以只需传送选择的Index就可以了。Index通过Clients可以查找到要发送的对象。

当创建游戏时,ServerThread会将客户对应的ServerToClientThread加入host集合中,并将更新信息传送给Clients中的所有客户。当客户加入游戏时,将对映的信息加入map中,即建立游戏中信息传送对象的信息。

游戏中的信息通过map查找对手的ServerToClientThread发送。

4.3 程序测试

登陆验证的测试

下棋及游戏双方的连接测试

消息的发送测试

五、实验总结

通过这次实验:

  • 掌握了基本网络编程技术

  • 掌握Swing图形用户界面编程

  • 掌握多线程编程的基本原理,能使用多线程设计服务器端程序

  • 培养独立查找资料,并解决问题的能力

最大的不足:界面不够美观!

上传的附件 cloud_download 基于JAVA实现的网络五子棋游戏.7z ( 1.38mb, 79次下载 )
error_outline 下载需要13点积分

发送私信

懒惰有懒惰的好处,勤奋有勤奋的乐趣。重要的是,你有享受过程的权利,就有承担后果的义务

6
文章数
7
评论数
最近文章
eject