📚 学期课程项目:本项目是深圳香港中文大学(CUHKSZ)CSC3002 C/C++ Programming 课程的小组作业
一款使用Qt5和C++开发的斗地主游戏,集成了基于深度强化学习的AI对手(DouZero)。这是一个完整的单机版斗地主游戏实现,支持人机对战。
- ✅ 完整的斗地主游戏规则实现
- ✅ 图形化用户界面
- ✅ 人机对战
- ✅ 游戏得分统计
- ✅ 音效支持
- 🤖 集成DouZero深度学习模型
- 🧠 智能出牌策略
- 📊 多种AI难度(可扩展)
- 🎨 美观的卡牌界面
- 📱 友好的游戏操作
- 📈 实时得分显示
- 🎯 清晰的游戏流程提示
| 牌型 | 描述 |
|---|---|
| 王炸 | 大王+小王,最大的牌 |
| 炸弹 | 四张同数值牌 |
| 单牌 | 单张的牌 |
| 对牌 | 数值相同的两张牌 |
| 三张牌 | 数值相同的三张牌 |
| 三带一 | 三张+1张单牌 |
| 三带二 | 三张+1对牌 |
| 顺子 | 五张或更多的连续单牌 |
| 连对 | 三对或更多的连续对牌 |
| 飞机 | 两个或更多的连续三张牌 |
- 地主(1人):三人下注抢地主,分数最高者为地主
- 农民(2人):没有抢到地主的玩家为农民
- 发牌:一人17张,3张做底牌
- 抢地主:轮流叫地主,分数分别为1分、2分、3分
- 出牌:地主首先出牌,然后按逆时针顺序出牌
- 计分:根据底分和倍数(炸弹翻倍)计算得分
详细规则请参考 游戏规则文档
- 操作系统: Windows, Linux, macOS
- Qt: 5.12 或更高版本
- 编译器: MinGW (Windows) / GCC (Linux) / Clang (macOS)
- C++ 标准: C++11 或更高
- 安装 Qt Creator
- 打开
Landlords.pro项目文件 - 选择编译配置(Debug 或 Release)
- 点击 Build > Build Project
- 运行游戏
# 安装 Qt(以Ubuntu为例)
sudo apt-get install qt5-default qt5-qmake
# 编译项目
cd Landlords
qmake Landlords.pro
make
# 运行游戏
./Landlords详细编译指南请参考 BUILD.md
项目集成了DouZero AI模型。如要启用AI功能:
# 安装Python依赖
pip install -r requirements.txt
# 确保模型文件在正确位置
# DouZero_API-main/baselines/ 目录Landlords/
├── *.h, *.cpp # 游戏核心代码
├── *.ui # Qt UI 设计文件
├── res.qrc # 资源文件
├── Landlords.pro # Qt 项目配置文件
├── test.py # Python测试脚本
├── DouZero_API-main/ # AI模型库
├── images/ # 游戏图片资源
├── README.md # 详细文档
├── BUILD.md # 编译指南
├── CONTRIBUTING.md # 贡献指南
└── LICENSE # 许可证 (LGPL v3)
| 类名 | 说明 |
|---|---|
GameControl |
游戏主控制器 |
GamePanel |
游戏显示面板 |
Card |
卡牌类 |
Player |
玩家基类 |
UserPlayer |
用户玩家 |
Robot |
AI机器人 |
PlayHand |
出牌手型 |
- 点击卡牌: 选择/取消选择卡牌
- 出牌按钮: 确认出牌
- 不出按钮: 跳过本轮
- 提示按钮: 获得智能出牌建议
游戏会自动记录:
- 每局得分
- 赢家统计
- 总获胜次数
- 游戏时间统计
- 某些特殊组合的牌型检测可能有边界情况
- AI模型在特定场景下的表现可进一步优化
欢迎提交Issue报告问题!
- 学校: 深圳香港中文大学 (The Chinese University of Hong Kong, Shenzhen)
- 课程: CSC3002 - C/C++ Programming
- 项目类型: 小组作业
- 编程语言: C++ (Qt Framework)
- 开发时间: 2024年
本项目采用 LGPL v3 许可证。详见 LICENSE 文件。
欢迎各种形式的贡献!请参考 贡献指南
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- 提交 Issue 报告问题
- 讨论 Discussions 分享想法
- Qt 框架
- DouZero 深度强化学习库
- 所有贡献者
- 多人在线对战
- 更多游戏模式
- 移动端适配
- 国际化支持
- 游戏回放功能
- 成就系统
最后更新: 2024年
如有任何问题或建议,欢迎通过 Issues 联系我们!
