当前位置: 首页 > news >正文

基于 QT(C++) 开发的斗地主游戏

斗地主

程序设计

启动程序

./poker [12] [A-C]

[12]:也可以选择空,即进入非测试模式,需选择玩家和输入 IP;12均为测试模式,其后需跟上[A-C]表示选择玩家的编号,进入后无需选择玩家,2还会自动连接。

准备界面

这是准备界面,其中上面是一个单选框,选择不同玩家对应的通信策略不同,也可以通过编译参数来选择。中间的是 connect 按钮,点击后输入 IP 或直接开始连接。下面是一个 label。

非测试模式下,点击按钮后需输入 IP

若连接失败,会跳出提示框

游戏界面

双方连接完毕后,进入游戏界面,此时会有斗地主专属音乐循环响起。游戏界面主要有四大区域:己方区域、下家信息区、上家信息区、公共区域。

己方区域

位于下方,从上到下分别是:

  • 状态栏:叫地主、不叫、不出
  • 按钮区:叫地主、不叫、不出、出牌、退出、重新开始。不同状态下显示及可用按钮不同
  • 手牌区:展示手牌
  • 信息栏:玩家名称、剩余手牌数、地主标记
下家信息区

位于左侧,从上到下分别是:

  • 信息栏:玩家名称、剩余手牌数、地主标记
  • 手牌区:展示手牌数相同的牌背
  • 状态栏:叫地主、不叫、不出
上家信息区

位于右侧,同“下家信息区”

公共区域

位于中上,为所有玩家共同可见,从上到下分别是:

  • 地主牌:显示地主牌,地主未确定时为牌面向下,确定后牌面向上
  • 出牌区:显示玩家打出的牌
  • 胜负标识:游戏结束时在画面中央显示 WIN 或 LOSE,并配上相应的音乐

客户端工作流程

客户端连接方式与 PPT 中所给相同。

用户在进入准备界面时需选择 ,或者也可以用编译命令。

若选择 则会主动开启两个 TcpServer 等待连接;选择 会开启一个 TcpServer,另一个为 TcpSocket 与

连接;选择 则会分别启动两个 TcpSocket 与 连接,TcpSocket 连接成功后,TcpServer 将会关闭。

具体代码可查看 poker 目录下的 Server.h & Server.cpp

通信协议

每段信息均由以下四部分组成:[发送方][信息类型][信息内容]$

  • [发送方]:表明信息的发送者,值为[0-2],分别对应 三名玩家。
  • [发送类型]:表明信息的类型。
    • S:此玩家准备完毕
    • A:分发手牌,仅玩家 可发送,后接若干手牌信息
    • 0:分发地主牌,仅玩家 可发送,后接若干地主牌信息
    • T:指定该局游戏玩家顺序,仅玩家 可发送,后接数字表示玩家顺序
    • Y:叫地主或不叫,后接[YN]
    • L:指定地主,仅一号玩家可发送,后接数字表示玩家的顺序
    • P:出牌,后接若干出牌信息
    • R:重新游戏
  • [信息内容]:信息的主体部分,比如0PC4D4H4H=$',表示玩家 出牌 。
    • 扑克:每张扑克信息都由两个字符组成
      • 非大小王:[CDHS]分别表示花色,当[3-9:;<=>?]分别表
      • 小王:J1
      • 大王:J2
  • $:结束标识,每次传递的信息结尾均需加上此符号。故在读取信息时用readAll(),再用split('$')将信息进行分离后依次传回游戏中,从而避免粘包的问题。

All Classes

详见同目录下 refman.pdf

Other Feather

给游戏界面和失败胜利时均加了背景音乐,没有背景音乐的斗地主是没有灵魂的!

♻️ 资源

大小:74.0MB

➡️资源下载:https://download.csdn.net/download/s1t16/87404318

注:更多内容可关注微信公众号【神仙别闹】,如当前文章或代码侵犯了您的权益,请私信作者删除!

http://www.jsqmd.com/news/303267/

相关文章:

  • 基于 QT(C++) 开发的贪吃蛇小游戏
  • 【毕业设计】SpringBoot+Vue+MySQL + 疫情隔离管理系统平台源码+数据库+论文+部署文档
  • Java SpringBoot+Vue3+MyBatis 疫苗发布和接种预约系统系统源码|前后端分离+MySQL数据库
  • 用Qwen-Image-2512-ComfyUI做图像编辑,效果惊艳的实战分享
  • 手机拍照人像也能用BSHM完美抠出
  • Altium Designer安装教程:防错机制与安全设置深度解析
  • 高速PCB串扰抑制技术:交换机设备中的实战解析
  • 小白也能懂的图层黑科技:Qwen-Image-Layered保姆级教程
  • Altium Designer 23输出Gerber操作指南
  • UNet人脸融合镜像体验:操作简单效果惊艳
  • 移动端适配进展如何?unet响应式界面改造案例
  • AI抠图还能这么玩?CV-UNet镜像快捷操作技巧曝光
  • 个人IP打造:自媒体博主形象统一设计方案
  • Z-Image-Turbo异构硬件适配:国产GPU部署可行性验证案例
  • 识别结果能复制吗?手把手教你导出Paraformer文本
  • Qwen3-0.6B代码解释器功能实测,日志分析利器
  • 2026最新变送器推荐!工业测量仪表权威榜单发布,技术服务双优助力精准测控 全国变送器/压力变送器/差压变送器服务公司推荐
  • 实测fft npainting lama对复杂背景的修复能力
  • 2026最新传感器推荐!工业级传感器权威榜单发布,精准测控赋能高效生产 压力传感器/流量传感器/物位传感器品牌推荐
  • YOLOv13多尺度检测能力实测,小物体不丢失
  • 想做声纹比对?试试这个开箱即用的CAM++镜像
  • 阳光氢能:以柔性制氢,领跑中国电解槽赛道
  • verl与OpenRLHF对比:哪个更适合新手上手?
  • 2026国内最新特产超市top5推荐!服务于贵州、贵阳、遵义、毕节、黔东南等地,优质特产店铺威榜单发布,甄选地道风物传递健康心意.
  • 有名离婚律所哪家好,盘点深圳靠谱的婚姻家事律所排名
  • 异步失败 + 邮件提醒的方式。 解决超时问题
  • 从下载到运行:GPEN人像修复全流程图文教程
  • 2026年浙江靠谱企业团餐配送公司排名,稞稞笑等品牌值得关注
  • 2026最新液位计品牌推荐!工业级液位测量仪表权威榜单发布,精准测控助力流程工业高效稳定运行 液位计/物位计/磁翻板液位计/雷达液位计/投入式液位计选型指南
  • cv_resnet18_ocr-detection安装教程:Docker镜像快速部署