> # ♻️ 资源
> **大小:** 74.0MB
> **文档链接:**[**https://www.yuque.com/sxbn/ks/100010583**](https://www.yuque.com/sxbn/ks/100010583)
> **➡️ 资源下载:**[**https://download.csdn.net/download/s1t16/87404318**](https://download.csdn.net/download/s1t16/87404318)
> **注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!**
> ![qrcode_for_gh_d52056803b9a_344.jpg](https://cdn.nlark.com/yuque/0/2023/jpeg/2469055/1692147256036-49ec7e0c-5434-4963-b805-47e7295c9cbc.jpeg#averageHue=%23a3a3a3&clientId=u8fb96484-770e-4&from=paste&height=140&id=u237e511a&originHeight=344&originWidth=344&originalType=binary&ratio=1.25&rotation=0&showTitle=false&size=8270&status=done&style=none&taskId=ud96bf5f7-fe85-4848-b9c2-82251181297&title=&width=140.1999969482422)
# 斗地主
## 程序设计
### 启动程序
`./poker [12] [A-C]`
`[12]`:也可以选择空,即进入非测试模式,需选择玩家和输入 IP;`1` 和 `2` 均为测试模式,其后需跟上 `[A-C]` 表示选择玩家的编号,进入后无需选择玩家,`2` 还会自动连接。
### 准备界面
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713316722684-1a305b8e-ce69-47bc-8ddf-5a67a73e2c86.png#averageHue=%23bc9d75&id=vaaSu&originHeight=359&originWidth=313&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
这是准备界面,其中上面是一个单选框,选择不同玩家对应的通信策略不同,也可以通过编译参数来选择。中间的是 connect 按钮,点击后输入 IP 或直接开始连接。下面是一个 label。
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713316722774-28367bae-36c4-41fe-a0dd-59858e8fddc7.png#averageHue=%23d4d3bd&id=cfEW5&originHeight=148&originWidth=213&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
非测试模式下,点击按钮后需输入 IP
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713316722869-5a41a0f7-589d-4673-b3ff-08a13792ff2f.png#averageHue=%23c4a87e&id=F2jlr&originHeight=124&originWidth=499&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
若连接失败,会跳出提示框
### 游戏界面
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713316722931-ef1c5a8a-0aae-411b-983e-d3b49ebe6d3a.png#averageHue=%23ecebe9&id=E58g1&originHeight=933&originWidth=1142&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713316723022-fe65883b-3b03-4f11-8c30-43a77b21d7ac.png#averageHue=%23ecebe9&id=d9HqH&originHeight=930&originWidth=1138&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713316723097-0cea241b-b4d6-43a6-9c94-50d76293513b.png#averageHue=%23eeeeee&id=h05Th&originHeight=929&originWidth=1138&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
双方连接完毕后,进入游戏界面,此时会有斗地主专属音乐循环响起。游戏界面主要有四大区域:己方区域、下家信息区、上家信息区、公共区域。
#### 己方区域
位于下方,从上到下分别是:
- 状态栏:叫地主、不叫、不出
- 按钮区:叫地主、不叫、不出、出牌、退出、重新开始。不同状态下显示及可用按钮不同
- 手牌区:展示手牌
- 信息栏:玩家名称、剩余手牌数、地主标记
#### 下家信息区
位于左侧,从上到下分别是:
- 信息栏:玩家名称、剩余手牌数、地主标记
- 手牌区:展示手牌数相同的牌背
- 状态栏:叫地主、不叫、不出
#### 上家信息区
位于右侧,同“下家信息区”
#### 公共区域
位于中上,为所有玩家共同可见,从上到下分别是:
- 地主牌:显示地主牌,地主未确定时为牌面向下,确定后牌面向上
- 出牌区:显示玩家打出的牌
- 胜负标识:游戏结束时在画面中央显示 WIN 或 LOSE,并配上相应的音乐
## 客户端工作流程
![](https://cdn.nlark.com/yuque/0/2024/png/2469055/1713316723158-3667eeaf-75da-4086-89a2-31ba04238cfb.png#averageHue=%2398bbce&id=jZXrY&originHeight=306&originWidth=1015&originalType=binary&ratio=1&rotation=0&showTitle=false&status=done&style=none&title=)
客户端连接方式与 PPT 中所给相同。
用户在进入准备界面时需选择 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?A#card=math&code=A&id=AokEJ)、![](https://www.yuque.com/api/services/graph/generate_redirect/latex?B#card=math&code=B&id=YNQI5)、![](https://www.yuque.com/api/services/graph/generate_redirect/latex?C#card=math&code=C&id=XgYiz),或者也可以用编译命令。
若选择 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?A#card=math&code=A&id=AQpl2) 则会主动开启两个 TcpServer 等待连接;选择 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?B#card=math&code=B&id=P9SHN) 会开启一个 TcpServer,另一个为 TcpSocket 与 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?A#card=math&code=A&id=fkQ90) 连接;选择 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?C#card=math&code=C&id=f2lp5) 则会分别启动两个 TcpSocket 与 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?A#card=math&code=A&id=lJvij)、![](https://www.yuque.com/api/services/graph/generate_redirect/latex?B#card=math&code=B&id=HRl6n) 连接,TcpSocket 连接成功后,TcpServer 将会关闭。
具体代码可查看 poker 目录下的 Server.h & Server.cpp
## 通信协议
每段信息均由以下四部分组成:`[发送方][信息类型][信息内容]$`。
- `[发送方]`:表明信息的发送者,值为 `[0-2]`,分别对应 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?A%2CB%2CC#card=math&code=A%2CB%2CC&id=UmjCF) 三名玩家。
- `[发送类型]`:表明信息的类型。
- `S`:此玩家准备完毕
- `A`:分发手牌,仅玩家 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?A#card=math&code=A&id=h4VAg) 可发送,后接若干手牌信息
- `0`:分发地主牌,仅玩家 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?A#card=math&code=A&id=txXDX) 可发送,后接若干地主牌信息
- `T`:指定该局游戏玩家顺序,仅玩家 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?A#card=math&code=A&id=ms8aM) 可发送,后接数字表示玩家顺序
- `Y`:叫地主或不叫,后接 `[YN]`
- `L`:指定地主,仅一号玩家可发送,后接数字表示玩家的顺序
- `P`:出牌,后接若干出牌信息
- `R`:重新游戏
- `[信息内容]`:信息的主体部分,比如 `0PC4D4H4H=$'`,表示玩家 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?A#card=math&code=A&id=fxkPa) 出牌 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?%5Cclubsuit%204%5Cdiamondsuit4%5Cheartsuit4%5Cheartsuit%20K#card=math&code=%5Cclubsuit%204%5Cdiamondsuit4%5Cheartsuit4%5Cheartsuit%20K&id=OnZXl)。
- 扑克:每张扑克信息都由两个字符组成
- 非大小王: `[CDHS]` 分别表示花色,当 `[3-9:;<=>?]` 分别表 ![](https://www.yuque.com/api/services/graph/generate_redirect/latex?3%5Csim%20K%2CA%2C2#card=math&code=3%5Csim%20K%2CA%2C2&id=Rly4y)
- 小王:`J1`
- 大王:`J2`
- `$`:结束标识,每次传递的信息结尾均需加上此符号。故在读取信息时用 `readAll()`,再用 `split('$')` 将信息进行分离后依次传回游戏中,从而避免粘包的问题。
## All Classes
详见同目录下 refman.pdf
## Other Feather
给游戏界面和失败胜利时均加了背景音乐,没有背景音乐的斗地主是没有灵魂的!
没有合适的资源?快使用搜索试试~ 我知道了~
基于 QT(C++) 开发的斗地主游戏【100010583】
共149个文件
png:118个
mp3:5个
jpg:5个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 0 下载量 114 浏览量
2023-01-30
15:19:25
上传
评论 3
收藏 74.02MB ZIP 举报
温馨提示
详情介绍:https://www.yuque.com/sxbn/ks/100010583 双方连接完毕后,进入游戏界面,此时会有斗地主专属音乐循环响起。游戏界面主要有四大区域:己方区域、下家信息区、上家信息区、公共区域。
资源推荐
资源详情
资源评论
收起资源包目录
基于 QT(C++) 开发的斗地主游戏【100010583】 (149个子文件)
game.cpp 11KB
poker.cpp 9KB
server.cpp 3KB
mainwindow.cpp 2KB
main.cpp 256B
.gitignore 741B
poker.h 6KB
game.h 2KB
server.h 2KB
mainwindow.h 753B
214833-120P41A43836.jpg 218KB
214833-120P41A11846.jpg 213KB
214833-120P41AK868 .jpg 205KB
214833-120P4164K869.jpg 205KB
cover.jpg 23KB
LICENSE 1KB
README.md 8KB
readMe.md 4KB
BGM2.mp3 371KB
BGM1.mp3 368KB
BGM3.mp3 320KB
victory.mp3 71KB
failure.mp3 63KB
解说视频.mp4 65.5MB
readMe.pdf 1.6MB
refman.pdf 450KB
game1.png 386KB
game2.png 369KB
landlord.png 221KB
client.png 208KB
PADDING.png 146KB
PADDING.png 146KB
H11.png 111KB
HJ.png 111KB
H13.png 110KB
HK.png 110KB
D13.png 110KB
DK.png 110KB
S12.png 109KB
SQ.png 109KB
D11.png 109KB
DJ.png 109KB
H12.png 108KB
HQ.png 108KB
D12.png 106KB
DQ.png 106KB
C12.png 105KB
CQ.png 105KB
S11.png 103KB
SJ.png 103KB
S13.png 103KB
SK.png 103KB
C11.png 103KB
CJ.png 103KB
C13.png 98KB
CK.png 98KB
J1.png 70KB
BLACK JOKER.png 70KB
H10.png 61KB
H10.png 61KB
J2.png 58KB
RED JOKER.png 58KB
H9.png 57KB
H9.png 57KB
D10.png 54KB
D10.png 54KB
H8.png 52KB
H8.png 52KB
D9.png 51KB
D9.png 51KB
D8.png 47KB
D8.png 47KB
H7.png 45KB
H7.png 45KB
H6.png 44KB
H6.png 44KB
S10.png 42KB
S10.png 42KB
C10.png 41KB
C10.png 41KB
D7.png 41KB
D7.png 41KB
S9.png 40KB
S9.png 40KB
C9.png 40KB
C9.png 40KB
D6.png 39KB
D6.png 39KB
H5.png 38KB
H5.png 38KB
S8.png 38KB
S8.png 38KB
C8.png 37KB
C8.png 37KB
D5.png 35KB
D5.png 35KB
S7.png 33KB
S7.png 33KB
C7.png 32KB
C7.png 32KB
共 149 条
- 1
- 2
神仙别闹
- 粉丝: 2677
- 资源: 7667
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页