# 欢乐斗地主 **Repository Path**: shone6/happy-landlords ## Basic Information - **Project Name**: 欢乐斗地主 - **Description**: 基于快手开源模型DouZero和网上的教程完成的一个欢乐斗地主小助手,拥有预测胜率,教你如何出牌等功能,目前仅供娱乐 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 1 - **Created**: 2021-08-26 - **Last Updated**: 2024-12-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DouZero_For_Happy_DouDiZhu: 将DouZero用于欢乐斗地主实战 * 本项目基于[DouZero](https://github.com/kwai/DouZero) * 环境配置请移步项目DouZero * 模型默认为WP,更换模型请修改start.py中的模型路径 * 运行main.py即可 * SL (`baselines/sl/`): 基于人类数据进行深度学习的预训练模型 * DouZero-ADP (`baselines/douzero_ADP/`): 以平均分数差异(Average Difference Points, ADP)为目标训练的Douzero智能体 * DouZero-WP (`baselines/douzero_WP/`): 以胜率(Winning Percentage, WP)为目标训练的Douzero智能体 说明 通过python机器学习来让计算机判断此时该出什么牌最合适 窗口移至右下角,避免遮挡手牌,历史牌,底牌区域。 本项目仅供学习以及技术交流,请勿用于其它目的,否则后果自负。 设计思路 1、 UI界面 底牌 AI出牌 上家出牌 下家出牌 AI手牌 本局获胜概率 出牌器开始和停止 2、 手牌和出牌的识别 游戏开始时截屏识别玩家手牌及底牌 确定地主农民,确定对手队友 识别每位玩家分别出了什么牌并记录 3、 AI出牌的输出 加载训练好的模型,初始化游戏环境 每轮出牌判断,根据场内局势给出最优出牌 自动刷新玩家剩余手牌和本轮胜率预测 使用步骤 1. 确认环境正常,等待手牌出现、底牌出现、地主角色确认后,点击**开始**,耗时几秒完成识别。 2. 窗口内显示识别结果,地主角色使用淡红色标出。识别完成自动开始记录出牌。 3. 观察AI建议的出牌,在游戏中手动选择并打出。 4. 游戏结束后弹出对话框提示输赢。 5. 识别错误或无反应可通过**结束**按钮停止本局。 ## 鸣谢 * 本项目基于[DouZero](https://github.com/kwai/DouZero) * 借鉴了[cardRecorder](https://github.com/ZDZX-T/cardRecorder)项目的部分代码以及模板图片,用于识别扑克牌 ## 相关链接 * 参考博客链接:[天启的博客](https://tqraf.cn/2021/07/DouZero-For-HappyDouDiZhu.html)