一、实验目的熟练掌握基本网络编程技术
掌握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图形用户界面编程
掌握多线程编程的基本原理,能使用多线程设计服务器端程序
培养独立查找资料,并解决问题的能力
最大的不足:界面不够美观!
本文档介绍了基于Java的网络五子棋游戏设计,包括实验目的、任务、开发工具和平台、设计思路以及测试和实验总结。实验目标是熟练掌握网络编程、Swing界面设计和多线程技术。游戏设计中,服务器端采用多线程处理用户连接,客户端负责界面显示和通信。此外,还提出了登录验证、游戏逻辑和信息传递的实现细节。
1981

被折叠的 条评论
为什么被折叠?



