玩家在实战中面临出牌决策困难、记牌负担重、对局势判断不准等痛点。该AI记牌器旨在为棋牌玩家提供实时智能辅助,解决三大核心问题:一是人工记牌易遗漏出错,尤其在快节奏对局中难以准确追踪剩余牌型分布;二是出牌策略缺乏科学依据,新手玩家往往凭直觉出牌导致败局;三是无法判断对手身份和底牌信息,难以制定针对性战术。产品面向数亿棋牌玩家,覆盖休闲娱乐与竞技提升双重场景。
点击空白处退出提示
玩家在实战中面临出牌决策困难、记牌负担重、对局势判断不准等痛点。该AI记牌器旨在为棋牌玩家提供实时智能辅助,解决三大核心问题:一是人工记牌易遗漏出错,尤其在快节奏对局中难以准确追踪剩余牌型分布;二是出牌策略缺乏科学依据,新手玩家往往凭直觉出牌导致败局;三是无法判断对手身份和底牌信息,难以制定针对性战术。产品面向数亿棋牌玩家,覆盖休闲娱乐与竞技提升双重场景。
项目包含以下核心功能模块:
1. 实时屏幕识别模块 :通过无障碍服务捕获棋牌游戏画面,自动识别手牌、出牌区、玩家位置等关键信息,构建完整牌局状态。
2. 智能记牌模块 :实时追踪54张牌的出牌记录,计算各牌面剩余数量,以悬浮窗形式直观展示剩余牌分布,支持炸弹、顺子等组合牌型概率提示。
3. AI出牌推荐模块 :采用双模型混合推理架构——DouZero强化学习模型提供纳什均衡级出牌策略,Gemma-4 E2B大语言模型提供局势分析和战术建议,两者融合生成置信度加权的推荐结果。
4. 斗地主规则引擎 :自动检测地主身份(首出牌者/20张手牌判定)、出牌权轮转、1v2/2v1角色关系识别,以及底牌推断(农民视角下基于已知信息推断3张底牌)。
5. 悬浮窗HUD系统 :可拖拽、可缩小的常驻悬浮窗,实时显示AI推荐动作、剩余牌数、局势评估、底牌推断等信息,支持动画过渡和推荐稳定化防抖。
我负责该项目的全栈开发,包括Android客户端架构设计、AI推理引擎集成、游戏逻辑模块开发及性能优化。具体任务与技术实现如下:
1. 架构设计 :采用MVVM + Hilt依赖注入架构,使用StateFlow驱动UI响应式更新,模块化设计确保记牌、识别、推理、展示各层解耦。
2. 双模型混合推理 :核心亮点。DouZero ONNX模型在设备端本地运行,提供毫秒级出牌策略;Gemma-4 E2B大模型通过llama.cpp JNI原生调用GGUF格式模型文件,提供深度局势分析。两路结果通过置信度加权融合,兼顾速度与质量。
3. llama.cpp Android原生集成 :技术难点。使用NDK交叉编译llama.cpp C++库为arm64-v8a原生库,自研JNI桥接层(llama-jni.cpp),在Kotlin层通过NativeLlmEngine封装模型加载、推理生成、资源释放全流程,支持优雅降级(原生LLM→Python LLM→纯DouZero)。
4. 斗地主规则引擎 :实现全局时间线对齐算法(buildGlobalTimeline),解决各位置出牌记录异步导致的轮次错位问题;基于连续PASS计数判断出牌权归属和自由出牌状态。
5. 性能优化 :预编译llama.cpp原生库避免Chaquopy构建卡死;GGUF Q4_K_M量化使2.8B模型在手机端可运行;推荐稳定化算法(5帧窗口去重)消除悬浮窗跳动。




评论