♠

斗地主

♥

经典三人棋牌游戏

游戏模式
v1.2.39

游戏设置

🔍
基础设置
音频
50%
50%
游戏规则 ⚖️

⚖️ 以上规则在开始游戏后锁定,保证对局公平

游戏变体 ⚖️

⚖️ 变体规则在开始游戏后锁定

AI 行为
视觉
布局
动画与特效
交互操作
辅助功能
面板开关
无障碍
网络
性能与调试
高级 ⚙️
🃏

欢迎来到斗地主!

经典三人扑克游戏 · 1个地主 vs 2个农民

人机对战

记牌器

出牌历史

准备中 快捷键: H提示 P不出 Space出牌
FPS: --
MEM: --
🌐

局域网联机

与好友在同一网络下实时对战

🔑
👤

正在检测本机托管服务...

房间号 -
⚙️

自定义模式

自由设定规则,打造专属对局

🎮 游戏选项

🔧 特殊规则

🧩

残局训练

固定牌局,磨练牌技

0/5
⚔️

极限挑战

特殊规则限制,考验真正牌技

0/10

🎞️ 牌谱工坊

保存、回放与分享精彩对局

🎯 赛季任务

🏆 锦标赛

锦标赛采用积分制,每局结束后按斗地主规则计分。
全部对局结束后按累计总分排名。
锦标赛记录将自动保存到本地。

成就系统

⏸

游戏暂停

按 ESC 继续游戏

📖 斗地主教程

  • 1 欢迎来到斗地主
  • 2 认识牌型
  • 3 牌型大小比较
  • 4 角色与发牌
  • 5 叫分与抢地主
  • 6 出牌规则
  • 7 特殊规则与得分
  • 8 实战演练
  • 9 记牌与读牌
  • 10 进阶技巧与误区
0%

欢迎来到斗地主

中国最受欢迎的扑克游戏

🎉 更新日志

v1.2.39

🃏 选牌命中与手牌顺序再优化

  • 🃏 选中牌不挡邻牌:已选牌保持在普通手牌下方,相邻牌的外露区域可以继续点击选择
  • 🔢 手牌标准整理:全局排序统一为 3 4 5 6 7 8 9 10 J Q K A 2 小王 大王,同点数也按固定花色顺序稳定排列
  • 🎨 选牌 UI 降噪:降低默认选牌/悬停上浮和高亮阴影,让大牌面不再互相压迫
  • ⚙️ 设置项纠偏:移除容易误触的智能分组排序入口,默认排序显示为标准点数
  • 🧪 回归补强:新增相邻选牌命中、手牌自然升序和设置默认值自查
📚 历史版本
v1.2.38

🃏 手牌层级与标准排序修复

  • 🃏 选牌层级修复:已选牌现在压在相邻手牌下方,不再挡住继续选择其他牌
  • 🔢 标准手牌顺序:玩家手牌固定按 3 4 5 6 7 8 9 10 J Q K A 2 小王 大王 整理
  • 🎨 UI 降噪:收轻选牌高亮阴影和抬起反馈,减少大手牌下的视觉遮挡感
  • ⚙️ 隐藏设置纠偏:智能分组排序默认关闭,避免不可见设置继续影响实战手牌
  • 🧪 回归补强:新增手牌顺序与相邻牌可点击性的浏览器自查
v1.2.37

🔧 静默牌局收尾与少牌提醒自查

  • 🧹 死路径清理:移除渲染器内残留的评论引擎引用、聊天消息渲染函数和语音滑块绑定
  • 🌐 LAN 兼容修复:旧客户端发来的聊天消息现在会被安全忽略,不再调用已移除的聊天 UI
  • ⚠️ 少牌提醒自查:新增 UI 回归验证“我就剩 2 张牌了”提醒确实显示
  • 🔇 静默体验加固:继续确保牌局不出现闲聊、快捷短语、语音或解说气泡干扰
  • 🧪 全链路验证:重新覆盖 UI、移动横屏、SFX/BGM、LAN、挑战、回放和 console error 检查
v1.2.36

🃏 屏内手牌与静默牌局优化

  • 🃏 手牌不再超屏:玩家 17 张与地主 20 张手牌都收拢在屏幕内,不再依赖横向滚动浏览
  • ✅ 选牌安全区修复:选中牌抬起后仍保持在视口内,避免顶部或左右被裁掉
  • 🔇 静默牌局:移除聊天、快捷短语、语音播报、战斗解说入口和气泡,只保留必要 SFX/BGM
  • ⚠️ 少牌提醒:玩家少于 3 张牌时显示“我就剩 X 张牌了”式提醒,替代无关对话
  • 🎞️ 动画降噪:减少持续呼吸、头像脉冲、选牌和过牌动画强度,整体 UI 更稳
  • 🧪 测试补强:UI 回归新增屏内手牌、20 张地主手牌、选牌不出屏、聊天语音入口移除和移动横屏不溢出断言
v1.2.35

🖱️ 手牌滚轮冲突修复

  • 🖱️ 滚轮行为拆分:普通滚轮现在只横向浏览大牌手牌,不再同时触发牌面缩放
  • ⌨️ 缩放手势明确:牌面缩放改为 Ctrl/⌘ + 滚轮,避免和浏览手牌抢同一个操作
  • ⚙️ 设置文案同步:交互设置里的“滚轮缩放”改为“Ctrl/⌘滚轮缩放”,和真实操作一致
  • 🧪 测试补强:UI 回归新增普通滚轮不缩放、Ctrl 滚轮才缩放的冲突断言
v1.2.34

↔️ 大牌手牌浏览优化

  • 🖱️ 滚轮横向浏览:桌面端鼠标滚轮现在可直接推动大牌手牌横向移动,不用精准拖动滚动条
  • ↔️ 滚动边界反馈:手牌溢出时加入首尾渐隐,帮助判断左右还有没有牌
  • 📊 浏览进度反馈:手牌底部加入细进度条,快速感知当前浏览位置
  • 🧪 测试补强:UI 回归新增滚动状态初始化、滚轮横向滚动和进度变化断言
v1.2.33

🃏 大牌手牌滚动修复

  • 🃏 真正大牌模式:桌面玩家手牌提升到 184×256,宽屏提升到 220×306,牌面面积约为旧版 5 倍以上
  • ↔️ 横向滚动承载:17 张手牌不再被强行压进一屏,改为大牌横向浏览,首张牌保持完整可见
  • 📐 底部牌区加高:玩家区域为大牌重新分配高度,减少牌面、提示和控制按钮之间的拥挤
  • 🧪 测试补强:UI 回归改为检查大牌尺寸、横向滚动启用、首张不裁切和控制层透明
v1.2.32

🃏 手牌放大与遮挡修复

  • 🃏 玩家手牌放大:桌面端玩家牌从 82×114 提升到 122×170,宽屏进一步提升到 150×210,可见牌面显著变大
  • 🧱 黑色横条修复:移除控制层整条半透明背景,只保留按钮组自身背景,不再挡住手牌
  • 📐 布局防裁切:手牌区加宽加高,减少重叠并提高层级,首尾牌不会被桌面边界裁掉
  • 📱 移动横屏修复:低高度横屏单独调整控制区位置并隐藏冗余提示,避免按钮或快捷键提示压住手牌
  • 🧪 测试补强:UI 回归新增手牌尺寸、裁切、控制层透明和移动横屏不重叠断言
v1.2.31

🎧 音频开关与状态恢复深度修复

  • 🔊 总音效开关修复:游戏内按钮或快捷键关闭后再次开启,会恢复菜单/牌局循环 BGM,不再只恢复静态开关状态
  • ♿ 按钮状态同步:音效按钮现在同步 aria-pressed、标题和读屏文案,关闭/开启状态更清楚
  • 🎵 一次性音乐保护:胜利/失败结算音乐仍不会因恢复音效而重复播放
  • 🛡️ 音频底层防护:Web Audio 节点连接增加空 compressor 回退,降低边界状态下静音或异常风险
  • 🧪 测试补强:新增总音效开关恢复 BGM 的回归测试
v1.2.30

🎧 UI/UX/SFX/BGM 体验修复

  • 🎵 BGM 修复:页面切到后台再返回时,菜单/牌局背景音乐现在能按原场景恢复,不会静默丢失
  • 🔊 SFX 设置补全:恢复“叫分音效”独立开关,和已有音频代码、历史公告保持一致
  • ♿ 音量控件改进:BGM / SFX / 语音滑块补全 label 关联,键盘和读屏操作更清楚
  • 🧪 自查补强:默认设置测试覆盖叫分音效开关,防止设置面板再次缺项
v1.2.29

🔧 总体 Bug / UIUX / SFX / BGM 深度修复

  • 🚨 结算致命修复:修复赛季任务上报引用不存在的 isWin,避免胜负结算后统计、回放、复盘链路被异常中断
  • 📊 牌风数据修复:修复反春天字段拼写不一致,牌风分析现在能正确累计反春天表现
  • ⚔️ 极限挑战修复:星级统计不再依赖不存在的 history.type 字段,炸弹、纯顺子、总出牌数评级恢复准确
  • 🎯 交互修复:极限挑战规则拦截返回 false 时,出牌按钮不再误判成功、清空选牌或隐藏控制区
  • 🧪 测试补强:新增挑战星级 history 兼容测试与 Renderer 失败反馈测试;赛季任务和牌谱导入的预期失败路径不再污染控制台
v1.2.25

🔧 UI/UX/SFX/BGM 全面深度修复(第六轮)

  • 🎞️ 牌谱工坊修复:菜单隐藏、toast 方法不存在、clipboard 崩溃、分享码有效性校验、删除确认、空输入提示、导入防抖、反春天自动保存、过渡动画
  • 🎵 音频修复:audio.js nodeRef 未定义;极限挑战/残局模式 forceLandlord 分支 BGM 未触发
  • 🖥️ 屏幕切换修复:_transitionToScreen() 隐藏所有非目标屏幕;牌谱工坊回放正确清理旧 ReplayManager
  • 🛡️ 模态框修复:showMenu() 关闭赛季任务/锦标赛配置;ESC 键覆盖所有模态框;重复打开保护;z-index 层级补全
  • 🧠 渲染器防护:15 个核心方法添加 _destroyed 检查;成就/任务 toast 数量限制为 3 个
  • 🧪 测试:全站 202/202 通过,新增 challenge-mode + replay-workshop 到 test:all
v1.2.24

🆕 新增:牌谱工坊

  • 🎞️ 牌谱工坊:保存、管理、回放与分享精彩对局牌谱
  • 💾 自动保存:每局结束后自动存入,最多保留 50 条记录
  • 📤 分享码:Base64 分享码,跨设备导入
  • ▶️ 回放支持:工坊内直接回放
  • 📊 分类统计:按模式统计牌谱数量
v1.2.23

🔧 极限挑战模式深度修复

  • 🚨 game-state.js _isPatternAllowed 未处理 bombRule='disabled'
  • 🎯 bombBeatRocket 检测修复;calculateChallengeStars 外部标记
  • 🙈 盲牌斗地主 disableTracker / 斗帝之路 mustSpring 实现
  • 🛡️ forceLandlord 补全 initialHands / bottomCards / lastPlay
  • 🖥️ UI 修复:信息栏显示、challenge-screen 布局、_destroyed 检查
  • 🎵 音频:返回关卡列表停止 BGM;返回菜单关闭模态框
  • 🧪 新增 bombBeatRocket 星级判定测试
v1.2.22

🔧 极限挑战模式 Bug 修复

  • 🚨 game-state.js _isPatternAllowed 未处理 bombRule='disabled'
  • 🎯 bombBeatRocket 检测修复;calculateChallengeStars 外部标记
  • 🙈 盲牌斗地主 disableTracker / 斗帝之路 mustSpring 实现
  • 🛡️ forceLandlord 补全 initialHands / bottomCards / lastPlay
  • 🖥️ UI 修复:信息栏显示、challenge-screen 布局、_destroyed 检查
  • 🎵 音频:返回关卡列表停止 BGM;返回菜单关闭模态框
v1.2.21

🆕 新增:极限挑战模式

  • ⚔️ 全新模式「极限挑战」:10个特殊规则限制的挑战关卡
  • 🚫 禁炸令、⚡ 速战速决、🛡️ 保守派、📜 严格执法、🔒 不能Pass
  • 🙈 盲牌斗地主、💰 底分翻倍、💣 炸弹之王、⚔️ 孤军奋战、👑 斗帝之路
  • ⭐ 1~3星评级,解锁制递进,数据持久化到 localStorage
v1.2.20

全面深度 Bug 检查与修复(第五轮)

  • 🚨 核心逻辑修复:修复 game-state.js 抢地主阶段 currentCallPlayer 不更新;_finishCalling landlord 为 null 时死锁
  • 🃏 规则引擎修复:_tryStraightWithLaizi 显式拒绝重复真实牌
  • 🎵 音频系统修复:移除 BGM 双重调度;stopBGM() 清理 loop timer;InvalidStateError 防护
  • 🖥️ 渲染器修复:_initLayout 重复绑定清理;setTimeout 统一替换为 _setTimer
  • 🧠 AI 教练修复:sameCard 王牌比较;passRate 字段错误
  • 📊 数据修复:season-quest bombCount NaN;endgame bestSteps falsy;残局关卡5索引矛盾
  • 🌐 LAN 联机修复:_syncGameStart 校验 startRound 返回值
  • ⚙️ 自定义模式修复:无预设牌分支缺失 _applyGameRules()
v1.2.19

全面深度 Bug 检查与修复(第四轮)

  • 🛡️ 动画系统修复:Animations.cancelAll() 现在真正取消全部 30+ 处定时器;庆祝状态锁在销毁时正确复位
  • 🃏 规则引擎修复:癞子顺子误判 bug——含额外牌时不再错误识别为顺子
  • 🎵 音频系统修复:SFX setTimeout 纳入统一管理;destroy() 时全部清理;音效细粒度设置支持热更新
  • 📊 游戏状态修复:pass 存入 history 的 pattern 改为 HandPattern 实例;startRound 增加牌组长度校验
  • 🌐 LAN 联机修复:非 Host 客户端正确维护 playerMapping;_destroyRoom 只关闭仍属于该房间的连接
  • ⚙️ 主程序修复:_bindUXSettings() 添加防重复绑定保护;设置变更时自动热重载 SFX 设置
  • 🌍 时区修复:getTodayString / getWeekStartString 改用 UTC 方法计算
  • 📹 回放修复:回放列表过滤脏数据后再渲染
v1.2.18

全面深度 Bug 检查与修复(第三轮)

  • 🚨 致命修复:修复 startDailyMode() 每日挑战完全无法启动(错误传入 DOM 对象、调用不存在方法、缺失关键初始化)
  • 🚨 致命修复:修复 "再来一局" 时旧挑战结果面板覆盖新游戏的定时器泄漏;修复 _roundEndBound 未重置导致统计/成就/回放全部丢失
  • 🚨 严重修复:修复 BaseMode.destroy() 不 resolve Promise 定时器导致异步流程永久挂起、内存泄漏
  • 🎵 音频修复:stopBGM() 清理 _bgmGain/_masterCompressor;_ensureContext() resume 后验证 state;监听 visibilitychange 防止后台 BGM 叠音;核心音效增加节流
  • 🎯 交互修复:一键出牌取消选中时清除 timeout 防止错误触发;分数滚动动画保存 RAF id 避免幽灵动画;拖拽选牌时节流 _updateHandHint 调用
  • 🛡️ 动画修复:cancelAll() 恢复 body transform 并重置 _shakeCount;screenShake 修复 _activeRafs 帧级泄漏
  • 📐 主程序修复:showMenu() 现在关闭所有面板(设置/公告/牌风/成就);_calcStreak 统一使用 UTC+8
v1.2.17

UI/UX/SFX/BGM 全面检查与改进

  • 🚨 致命修复:修复 startDailyMode() 每日挑战完全无法启动——错误传入 DOM 对象、调用不存在方法、缺失关键初始化
  • 🎵 音频修复:stopBGM() 未清理 _bgmGain/_masterCompressor 导致重建 Context 后无声;toggleBGM 不再重播一次性 win/lose BGM;核心音效增加节流防止音爆重叠
  • 🎯 交互改进:出牌按钮根据选牌状态动态启用/禁用;涟漪效果仅在无拖拽意图时触发,避免滚动误反馈
  • ♿ 无障碍:screenShake 与 flashScreen 尊重 prefers-reduced-motion: reduce 系统偏好
  • ✨ 面板 UX:挑战结果→历史记录切换等待关闭动画完成;历史面板淡入淡出;分享失败 fallback 从 alert() 改为 toast
  • 🏷️ 徽章改进:每日挑战徽章使用 CSS .daily-badge 类,已完成/三星有独立视觉样式
v1.2.16

全面深度 Bug 检查与修复

  • 🚨 严重修复:修复每日挑战结果面板永远弹不出的 bug
  • 🚨 严重修复:修复连胜计算逻辑错误——今天输了仍算连胜
  • 🔧 数据修复:getRecords 缺失 timestamp 导致记录静默丢弃
  • 🔧 时区修复:getTodayString 固定使用 UTC+8
  • 🛡️ 内存泄漏修复:renderHands _controlListeners 累积等
  • 🛡️ 安全修复:showAchievementUnlock 使用 esc 转义
  • 🎵 音频修复:BGM 切换定时器被 ENDED 阶段清除
  • 🎯 UX 修复:closeChallengeResult timeout 未追踪
v1.2.15

UI/UX/SFX/BGM 全面检查与改进

  • 🔧 渲染修复:修复结算弹窗 XSS 转义函数块级作用域 bug(非比赛模式报错)
  • 🔊 音频修复:renderer.destroy() 现在正确关闭 AudioContext
  • 🎵 音效设置:补全缺失的 "call" 音效开关
  • 🎯 面板清理:返回菜单/启动新游戏时自动关闭残留面板
  • ✨ 每日挑战 UX:结算弹窗 1.8s 后自动关闭避免重叠
  • 📐 层级优化:挑战结果 z-index 提升至 250
v1.2.14

全面深度修复 & 规则引擎完善

  • 🔧 牌风分析修复:修复50局后数据失真、成长建议崩溃、数据迁移与空数据防护
  • 🎙️ 评论系统修复:修复destroy状态泄漏、队列冷却抖动、禁用后仍显示的问题
  • 🛡️ 渲染器修复:修复timer泄漏、事件监听器泄漏、多次initLayout累积问题
  • ⚙️ 主程序修复:修复公告版本号不匹配、面板关闭竞态、roundEnd重复监听、LAN renderer未清理
  • 📐 结构与样式修复:修复modal-overlay嵌套、toast z-index被遮挡等DOM/CSS问题
v1.2.13

牌风分析系统

  • 📊 6维雷达图深度解析出牌风格(攻击性/稳健性/技巧性/速度型/运气质/爆发性)
  • 🏷️ 个性化标签:核弹级、闪电侠、斗地主之神等专属称号
  • 📈 胜率、场均炸弹、春天率、平均思考时间等多维度统计
  • 💡 AI智能分析短板并给出针对性提升建议
  • 🎨 SVG纯代码绘制高颜值六维能力图
v1.2.12

牌局神评论系统

  • 🎙️ 牌局神评论:炸弹、火箭、春天、连击等关键时刻自动弹出热血解说评论
  • 💬 120+ 条评论库:根据牌型语境智能匹配幽默/热血解说词
  • 🎨 情绪色系统:炸弹红、火箭金、春天粉、胜利彩虹等视觉风格
  • 🎯 6 插槽防重叠:多条评论分散显示,不会互相遮挡
  • ⚙️ 可开关:设置面板中可自由开启/关闭评论功能
v1.2.11

第三轮深度修复

  • 修复暂停时 AI Promise 死锁(_pendingTimers 手动 resolve)
  • 修复 AI 回合中央倒计时闪烁(仅人类回合显示)
  • 修复游戏结束倒计时未清理(onPhaseChange ENDED 分支)
  • Renderer destroy() 多次调用防护、BGM/SFX 即时同步
v1.2.10

第二轮补充修复

  • 清理 CSS 死代码,优化 560px 下手牌裁剪与 overflow
  • 修复 center-countdown z-index、控制区小屏定位
v1.2.9

布局重构 & Bug 修复

  • 对角布局、中央倒计时、手牌放大、控制区上移
  • 修复 timerEnabled 字符串判断、超时面板不隐藏等
v1.2.8

全站 UI 深度美化

  • LAN/自定义/暂停/成就/回放界面全面毛玻璃化
  • 通用组件化重构,统一视觉语言

📊 牌风分析

📅 每日挑战结果

📜 挑战历史