网络五子棋游戏
题目:网络五子棋游戏
目的:
- 熟练掌握基本网络编程技术
- 掌握Swing图形用户界面编程
- 掌握多线程编程的基本原理,能使用多线程设计服务器端程序
- 培养独立查找资料,解决问题的能力
任务:
实现网络五子棋游戏
- 服务器端为多线程,当判断有偶数个用户连接时,方可开始游戏。
- 先连接的客户执黑棋,先下。另一客户执白棋。
- 双方交替下棋,由服务器端程序判断客户本次下棋步骤是否有效,仅将有效的下棋步骤传递给双方。
- 客户端程序负责本地下棋界面的显示工作和与服务器通信,并处理相应的鼠标事件。
- 下棋胜负由客户端自行判定。提供客户退出按钮,点击按钮,将退出游戏。
选作部分
- 由服务器端程序判定游戏胜利方,并终止游戏,向双方显示游戏胜利者信息。
- 提供玩家注册功能,并保存该玩家胜负局数信息、等级、中途逃逸次数等信息。
- 游戏开始时,向双方显示对方玩家等级、逃逸次数等基本信息,玩家可选择是否继续和对手的游戏。
思路:
开发工具
- JDK1.8 + IntelliJ IDEA
界面设计
-
界面设计采用了空布局,自由放置组件位置。
-
在游戏的初始界面创建“加入游戏、创建游戏、退出游戏”三个按钮,点击不同的按钮分别会触发不同的事件。
-
(点击“加入游戏”就会要求我们输入需要加入的IP地址,输入后即可加入他人在对应IP地址所创建的房间;点击“创建游戏”就会查找本地IP地址然后通过可用的端口创建一个棋盘界面,等待其他玩家加入;点击“退出游戏”则直接关闭窗口。)
-
棋盘界面的标题处会显示该玩家的主机IP,方便其他玩家通过该IP地址加入游戏。
-
界面左边放置棋盘,右边放置计时器和“认输、求和、悔棋”三个按钮。
-
棋盘通过采用paint方法绘制了一个横竖15条线的棋盘,线间距为35,棋子大小为30。
逻辑设计
-
程序创建好界面并通过TCP建立连接之后,玩家就可以在棋盘上进行对战了。
-
棋盘本质上就是一个矩阵,里面用数字表示各个棋子,通过读取这些坐标来把棋子表示到棋盘上。
-
判断胜负的逻辑则是通过遍历该矩阵,每读取到一个棋子就往右、右下、左下、下连续读取,能读取到连续的五个棋子则判断胜利。
-
还有悔棋、求和、认输的实现,悔棋与求和操作需要得到对方的同意,对方同意之后就可以进行悔棋或求和操作,如果对方不同意则不能进行对应操作。
运行:
- 首先运行两次Main类中的Main函数,连续打开两个棋盘(注意要在编辑配置中选择允许运行多个实例,这样才能连续打开两个客户端否则只能打开一个)。

- 首先由一名玩家点击创建游戏,就会出现棋盘界面,但此时无法进行任何操作;第二名玩家点击加入游戏,就会弹出一个提示框让玩家输入要连接的IP地址。刚才创建游戏的玩家的窗口标题上会显示该玩家对应的IP地址,第二名玩家点击加入游戏,输入第一名玩家的IP地址就可以连接到第一名玩家所创建的游戏中,对应的界面中都会有相应的提示。




- 判断输赢

- 悔棋


- 认输



浙公网安备 33010602011771号