核心内容摘要
基于YOLOv5/v8/v10的车辆逆行检测系统:从数据集构建到UI界面完整实现
斗地主程序设计启动程序./poker [12] [A-C][12]也可以选择空即进入非测试模式需选择玩家和输入 IP1和2均为测试模式其后需跟上[A-C]表示选择玩家的编号进入后无需选择玩家2还会自动连接。
准备界面这是准备界面其中上面是一个单选框选择不同玩家对应的通信策略不同也可以通过编译参数来选择。
中间的是 connect 按钮点击后输入 IP 或直接开始连接。
下面是一个 label。
非测试模式下点击按钮后需输入 IP若连接失败会跳出提示框游戏界面双方连接完毕后进入游戏界面此时会有斗地主专属音乐循环响起。
游戏界面主要有四大区域己方区域、下家信息区、上家信息区、公共区域。
己方区域位于下方从上到下分别是状态栏叫地主、不叫、不出按钮区叫地主、不叫、不出、出牌、退出、重新开始。
不同状态下显示及可用按钮不同手牌区展示手牌信息栏玩家名称、剩余手牌数、地主标记下家信息区位于左侧从上到下分别是信息栏玩家名称、剩余手牌数、地主标记手牌区展示手牌数相同的牌背状态栏叫地主、不叫、不出上家信息区位于右侧同“下家信息区”公共区域位于中上为所有玩家共同可见从上到下分别是地主牌显示地主牌地主未确定时为牌面向下确定后牌面向上出牌区显示玩家打出的牌胜负标识游戏结束时在画面中央显示 WIN 或 LOSE并配上相应的音乐客户端工作流程客户端连接方式与 PPT 中所给相同。
用户在进入准备界面时需选择 或者也可以用编译命令。
若选择 则会主动开启两个 TcpServer 等待连接选择 会开启一个 TcpServer另一个为 TcpSocket 与连接选择 则会分别启动两个 TcpSocket 与 连接TcpSocket 连接成功后TcpServer 将会关闭。
具体代码可查看 poker 目录下的 Server.h Server.cpp通信协议每段信息均由以下四部分组成[发送方][信息类型][信息内容]$。
[发送方]表明信息的发送者值为[
]分别对应 三名玩家。
[发送类型]表明信息的类型。
S此玩家准备完毕A分发手牌仅玩家 可发送后接若干手牌信息0分发地主牌仅玩家 可发送后接若干地主牌信息T指定该局游戏玩家顺序仅玩家 可发送后接数字表示玩家顺序Y叫地主或不叫后接[YN]L指定地主仅一号玩家可发送后接数字表示玩家的顺序P出牌后接若干出牌信息R重新游戏[信息内容]信息的主体部分比如0PC4D4H4H$表示玩家 出牌 。
扑克每张扑克信息都由两个字符组成非大小王[CDHS]分别表示花色当[
:;?]分别表小王J1大王J2$结束标识每次传递的信息结尾均需加上此符号。
故在读取信息时用readAll()再用split($)将信息进行分离后依次传回游戏中从而避免粘包的问题。
All Classes详见同目录下 refman.pdfOther Feather给游戏界面和失败胜利时均加了背景音乐没有背景音乐的斗地主是没有灵魂的♻️ 资源大小
7