java网络五子棋_课内资源 - 基于JAVA实现的网络五子棋游戏

本文档介绍了基于Java的网络五子棋游戏设计,包括实验目的、任务、开发工具和平台、设计思路以及测试和实验总结。实验目标是熟练掌握网络编程、Swing界面设计和多线程技术。游戏设计中,服务器端采用多线程处理用户连接,客户端负责界面显示和通信。此外,还提出了登录验证、游戏逻辑和信息传递的实现细节。

一、实验目的熟练掌握基本网络编程技术

掌握Swing图形用户界面编程

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

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

二、实验任务

网络五子棋游戏

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

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

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

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

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

选作部分

由服务器端程序判定游戏胜利方,并终止游戏,向双方显示游戏胜利者信息

提供玩家注册功能,并保存该玩家胜负局数信息、等级、中途逃逸次数等信息

游戏开始时,向双方显示玩家等级、逃逸次数等基本信息,玩家可选择是否继续和对手的游戏

三、开发工具与平台Jdk

Eclipse

四、设计思路

4.1 界面设计

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

f4c657311b9e9c944200a71262a4c2bf.png

总体布局为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 程序测试

登陆验证的测试

88aefc2cadb4ad6517d55bceba78e87e.png

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

9485892344684f5fdcd3861e38e24e1d.png

消息的发送测试

3323c0a9ec035b91f2d912a058cd77be.png

五、实验总结

通过这次实验:

掌握了基本网络编程技术

掌握Swing图形用户界面编程

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值