本项目为前几天收费帮学妹做的一个项目,在工作环境中基本使用不到,但是很多学校把这个当作编程入门的项目来做,故分享出本项目供初学者参考。
一、项目描述
一款用 Python + Tkinter 实现的单机桌面斗地主游戏:人类玩家对阵 2 名 AI。
二、项目功能
– 一副 54 张牌(含大小王),发牌 17×3 + 3 张地主底牌。
– 叫地主 / 抢地主(0–3 分制),1 地主 vs 2 农民。
– 完整出牌规则引擎:单张、对子、三张、三带一/二、顺子、连对、飞机(带单/对)、四带二、炸弹、王炸,及压制比较。
– 回合流程:轮转出牌、跟牌、双 Pass 收牌权转移、新一轮起手。
– 三档 AI 难度:Easy / Medium / Hard。
– 玩家辅助:Pass、Hint(提示,可轮换候选)、Auto Play(代打一手)、Auto Mode(托管)。
– 胜负判定与计分(炸弹/王炸翻倍、春天翻倍),并支持跨局累计战绩。
– 图形界面:手牌点选、出牌区、玩家状态、操作按钮、菜单栏(游戏/帮助)。
– 键盘操作与无障碍:←→ 移动焦点、空格选牌、Enter 出牌、P/H/A/Esc 快捷键。
– 记牌器(各点数已出/剩余)与规则/牌型帮助窗口。
– 偏好设置(默认难度、卡片大小、AI 出牌延迟)持久化,首次引导与按钮 tooltip。
– 运行日志与崩溃日志落盘到用户数据目录(Windows `%APPDATA%\DouDizhu\logs\`)。
2.玩法
2.1. 顶部选择 AI 难度,自动发牌进入叫地主。
2.2. 轮到你时点“不叫/1/2/3 分”叫分;AI 自动叫分,确定地主。
2.3. 出牌阶段:点手牌选中(选中的牌上移高亮),点【出牌】出牌;跟不上可【Pass】。
2.4. 不会出时点【Hint】获取推荐(重复点轮换),或【Auto Play】代打一手。
2.5. 点【Auto Mode】开启托管,系统自动替你打完本局。
2.6. 一方出完牌本局结束,弹窗显示胜负与得分,点【新局】开始下一局。
三、运行环境
开发环境pycharm
运行环境 python3.8
四、项目技术
Python Tkinter
以上系统源码经过技术整理与调试,确保能正常运行
五、项目截图