Java作业

五子棋

要求是完成一个五子棋游戏, 要求如下:

必做部分:
(1)服务器端为多线程,当判断有偶数个用户连接时,方可开始游戏。
(2)先连接的客户执黑棋,先下。另一客户执白棋。
(3)双方交替下棋,由服务器端程序判断客户本次下棋步骤是否有效,仅将有效的下棋步骤传递给双方。
(4)客户端程序负责本地下棋界面的显示工作,与服务器通信,并处理相应的鼠标事件。
(5)下棋胜负由客户端自行判定。提供客户退出按钮,点击按钮,将退出游戏。
选作部分:
(1)由服务器端程序判定游戏胜利方,并终止游戏,向双方显示游戏胜利者信息。
(2)提供玩家注册功能,并保存该玩家胜负局数信息、等级、中途逃逸次数等信息。
(3)游戏初始化时,向双方显示玩家等级、逃逸次数等基本信息,玩家可选择是否开始和对手的游戏。

因为是两人合作所以必须完成2个选作, 就做了(1)和(2).
围观了下同学 抄的, 都只有3-4个文件…再看看我的是不是太复杂了= =
不过文件分的多也是为了好扩展.
protocol文件夹下的类服务端和客户端共用, 全都implements Serializable, 方便网络传输.
server/PlayerHandler 用于与客户端交互, 提供了类似状态机的功能(当前状态不符合的包会报错).
总之 JDK8 引入了 lambda 用起来还是挺爽的, 没以前啰嗦了, 但是还是很罗嗦233. 以后还会继续黑Java
以下是代码
imspace/MyHomework