基于 QT 开发的联机五子棋

🌸 前言

个人博客:小北北北北的秘密小窝
本文链接:https://www.seny.xyz/archives/gobang
Github:https://github.com/senyucci/Gobang

最近闲来无事优化了一下上学期的 C++ 课程设计,在原来的本地五子棋对战的基础上结合之前的网络编程扩展出联机对战,联机五子棋主要的难点在于对战双方的 数据通信,这些在本文后面都会有所讲解。

该程序分为 服务端客户端,客户端采用 QT 编写提供基本的图形化界面,服务端采用 C++ 编写同时架设在 Linux 服务器上。联机功能的实现依赖于一个外网服务器,市面上的头部服务器供应商像 阿里云腾讯云 都 OK,并且他们都有学生优惠一个月十块钱不到的样子。

详细源码提供于文末链接,有兴趣的小伙伴可以下载下来作为参考,写的不好有意见或者疑问可以在评论区提出!一起进步~


🌸 程序预览

QT 版本为 5.9.0 ,该程序运行结果预览如下:

本地对局

支持 AI 对战与本地双人对战,支持局时与悔棋功能。
在这里插入图片描述

联机对局

支持大部分功能如:悔棋、认输、求和等,支持实时信息交流。
在这里插入图片描述

服务端

服务端实时日志如下。
在这里插入图片描述

主菜单

(请忽视这丑陋的 UI,真尽力了😢)
在这里插入图片描述


🌸 程序框架

本地对局与联机对局均提供了 棋盘类(ChessBoard) 与 对局控制类(GameControl),其中本地对局额外提供一个 AI 类 供本地人机对战。

  • 棋盘类 :负责落子、悔棋、胜负判定等主要游戏逻辑,是游戏的主体。
  • 对局控制类 :负责对局的控制,包括游戏开始、游戏结束等对局信息控制。
  • AI 类 :一个基于策略表的简单对局 AI,提供给本地人机对局使用。

理清程序框架对于程序编写会更加得心应手,以下是一个基本的 程序框图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mqjde24y-1628505045996)(https://z3.ax1x.com/2021/08/09/f1qTUJ.jpg)]
由上述框图可见,除了以上三个实现类以外,要想实现联机对局还需要定义一种客户端与服务端的 数据通信格式与协议 ,这部分在后续的联机对局中会详细地进行阐述。

接下来将从 客户端服务端 的角度来实现一个联机五子棋


🌸 Gobang 客户端

客户端采用 QT 开发,提供了一些 UI 界面,编写该程序需要学习一定的 QT 知识,对于 QT 信号与槽 机制需要一定的了解。对于 棋盘类对局控制类AI 类 来说整体的逻辑在联机对局与本地对局中相差并不大。

二者的主要区别在于本地的数据通信是 实时 的,而联机的数据通信需要在服务器中进行 中转(为了简化工作量,所有联机对局的判定操作等仍在本地客户端中进行,服务端仅作为一个消息中转站,若有小伙伴想要更进一步优化的话,可以将判定等操作在服务端中进行)

除了主要逻辑之外还额外基于 QT 做了一些 UI 的美化(虽然也很丑),但不是本文的重点便不加以赘述。

#define BOARD_COL  15        // 棋盘列数
#define BOARD_ROW  15        // 棋盘行数
#define BLACK_PIECE  0       
  • 23
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Qt Creator是一款功能强大的跨平台集成开发环境(IDE),它提供了丰富的工具和功能,使开发者能够轻松地创建各种应用程序。以下是使用Qt Creator开发五子棋游戏的步骤: 1. 创建新项目:在Qt Creator中创建一个新的Qt Widgets应用程序项目。 2. 设计游戏界面:使用Qt Designer设计游戏的界面,包括棋盘和棋子。 3. 添加信号与槽:在Qt Creator的界面设计器中,将界面上的按钮与棋盘上的格子相对应,并为它们添加信号与槽连接。 4. 实现游戏逻辑:在Qt Creator的代码编辑器中,编写游戏的逻辑部分。包括判断胜负、下棋、悔棋等功能。 5. 添加AI对战功能:在游戏逻辑中,添加AI算法,使游戏能够提供单人和双人对战模式。 6. 添加音效和动画:使用Qt Creator提供的多媒体和动画框架,为游戏增添一些音效和动画效果,提升用户体验。 7. 调试和测试:使用Qt Creator内置的调试工具进行代码的调试和测试,确保游戏的稳定性和可靠性。 8. 编译和发布:使用Qt Creator内置的编译工具,将游戏编译为可执行文件或安装包,并发布到目标平台上。 通过以上步骤,使用Qt Creator开发五子棋游戏是相对简单和高效的。Qt Creator提供了丰富的功能和易用的界面,开发者可以迅速地创建出一个完整的五子棋游戏,并进行调试和发布。同时,Qt Creator还支持多种平台,使得游戏可以在Windows、Linux、macOS等系统上运行。无论是对于初学者还是有经验的开发者,Qt Creator都是一个极好的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值