[C++][QT][Linux网络编程]可联网五子棋对战

GIThub:https://github.com/MonogatariL/WuZiQi_Network-Linux_Epoll_server
该项目由可以进行网络对战的五子棋的客户端和服务端组成,使用的语言是C/C++(基本都是C++)。
客户端使用的是Qt,包括功能有本地游戏和网络游戏,网络游戏主要流程为:连接服务器——>刷新战局加入他人的房间/创建房间——>双方准备游戏——>游戏开始

服务端核心是Linux下网路编程,使用的EPOLL模型。

使用方法:如果有Qt环境可以直接使用game.exe文件,如果没有则要打开.pro编译。客户端的主界面中左上角的小按钮可以设置IP地址和端口号,默认的IP地址是在某企鹅云上购买的一个服务器,在此服务器上存放了服务端的代码,这种情况下可以跨局域网连接,当然前提是我开着。

直接使用:在Linux下./server,不加参数默认就是你的IP地址,端口号为4396,在客户端上点击左上角更改IP地址和端口,这样就可以联机了(限同网的情况下,例如同一学校的校园网)

<五子棋网络对战>

主界面:

在这里插入图片描述

网络对战匹配界面:

1:连接服务器,此时会有三种状态在上面的标签中显示:绿色(连接成功)红色(未连接)蓝色(正在连接)。

2:刷新战局,向服务器请求当前已有的房间,不包括已经有两个人和正在游戏的房间对局。 创建房间,以创建房间按钮左边的文本框内容作为房间标题,创建房间,并将房间信息、ip地址、端口号发送给服务器。 退出网络对战,断开连接,回到主界面,回收internet类的对象。

3:点击刷新战局后,出现的可加入房间,点击join加入。

在这里插入图片描述

游戏准备界面

1:准备和退出游戏,准备与否的状态在棋盘中间显示,未准备则显示please_prepare,准备则为please_wait,当双方都处于准备状态,服务器向双方客户端发送游戏开始信息,客户端接受信息后进入下一阶段。

2:对手信息,头像框为黑色的时候,说明没有对手加入房间,图中状态为有对象处于房间中,并且会给出相应的信息(准备状态、ip地址、服务器分配的套接字)。

3:准备状态

在这里插入图片描述

先后手

双方准备完毕游戏开始时候的第一个界面,此时任何一方点击先手/后手,对手方都会得到相对应的颜色。(手速流)

在这里插入图片描述

游戏开始 1:悔棋和认输按钮,使用后向服务器发送相应的玩家请求,服务器接受到玩家请求时候会直接交由另一边的客户端进行处理,此时发送方游戏会进入等待状态。

2:存放玩家的颜色,并且下边的标签会实时更新当前为哪位玩家的回合。

3:棋盘界面

4:聊天界面

在这里插入图片描述

GIThub:https://github.com/MonogatariL/WuZiQi_Network-Linux_Epoll_server
GIThub:https://github.com/MonogatariL/WuZiQi_Network-Linux_Epoll_server
GIThub:https://github.com/MonogatariL/WuZiQi_Network-Linux_Epoll_server

  • 1
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值