基于最新Bevy 0.16引擎的黑白棋游戏实现,包含AI对手和完整的移动端优化游戏界面。
- 🎮 完整游戏流程重设计: 加载界面 → 语言选择 → 难度选择 → 游戏进行
- 📱 移动端优化: 44px最小触摸目标,400×600分辨率优化,完美触摸支持
- 🤖 异步AI系统: 防止UI阻塞的异步计算,流畅游戏体验
- 🎨 视觉改进: 玩家头像匹配棋子颜色,随机初始棋子变化
- 🌍 国际化支持: 完整的中英双语界面
- ⚡ 性能优化: 实体清理系统,Changed过滤器优化
- 高效位板表示: 使用64位整数表示棋盘状态,实现快速计算
- 智能AI对手:
- Minimax算法配合Alpha-Beta剪枝
- 异步计算防止界面卡顿
- 多级难度设置(初级、中级、高级、专家)
- 综合评估函数(角位控制、稳定性、行动力等)
- 现代游戏界面: 基于Bevy引擎的2D渲染
- 移动端友好: 触摸优化,响应式设计
- 事件驱动架构: 使用ECS模式组织代码
src/
├── game/ # 游戏核心逻辑
│ ├── board.rs # 棋盘表示和基础操作
│ └── rules.rs # 游戏规则和着法生成
├── ai/ # AI相关模块
│ ├── minimax.rs # Minimax搜索算法(异步优化)
│ ├── evaluation.rs # 棋盘评估函数
│ └── difficulty.rs # AI难度级别和异步任务管理
├── ui/ # 用户界面
│ ├── board_ui.rs # 棋盘渲染(性能优化)
│ ├── game_ui.rs # 游戏状态显示(移动端优化)
│ └── mod.rs # UI模块导出
├── localization/ # 国际化模块
│ ├── mod.rs # 语言设置管理
│ └── texts.rs # 多语言文本定义
├── fonts/ # 字体管理
│ └── mod.rs # 中英文字体加载
├── audio/ # 音频系统
│ └── mod.rs # 音效管理
├── lib.rs # 库入口(用于测试和文档)
└── main.rs # 主程序入口(状态管理)
# 测试基础功能
cargo run --example simple_test
# 运行完整游戏
cargo run
cargo run
- 语言选择: 首次进入选择中文/English界面语言
- 难度选择: 选择AI难度级别(初级、中级、高级、专家)
- 游戏进行: 正式开始游戏对局
- 鼠标/触摸: 点击空白格子进行落子
- 有效位置: 白色半透明圆点表示可落子位置
- 返回按钮: 游戏界面左上角可返回难度选择
- 帮助规则: 难度选择界面可查看游戏规则
- 触摸友好: 所有按钮44px最小触摸目标
- 响应式布局: 400×600最佳分辨率,适配手机屏幕
- 触摸反馈: 按钮按压和悬停效果
- 落子音效: 每次成功落子时播放
- 翻转音效: 棋子翻转时播放
- 胜利音效: 玩家获胜时播放
- 失败音效: 玩家失败时播放
- 错误音效: 无效落子时播放
- 音效可通过M键开关,默认开启
- 异步计算: 使用AsyncComputeTaskPool防止UI阻塞
- 搜索深度: 根据难度动态调整(2-12层)
- 时间控制: 迭代加深搜索,带超时保护
- 跨平台优化: 桌面版多线程,Web版单线程兼容
- 角位控制 (权重: 100): 占据角位获得稳定优势
- 稳定性 (权重: 50): 不可翻转棋子的价值
- 行动力 (权重: 30): 可用合法着法数量
- 位置价值 (权重: 20): 基于位置的静态评估
- 奇偶性 (权重: 10): 残局中的先手优势
- 初级: 深度2层,30%随机错误
- 中级: 深度4层,15%错误率
- 高级: 深度6层,5%错误率
- 专家: 深度12层,完美对弈
- Bevy 0.16: 现代Rust游戏引擎
- AsyncComputeTaskPool: Bevy异步任务系统
- Rayon: 并行计算框架(桌面版)
- futures-lite: 异步任务轮询
- WASM: Web平台支持
- 位运算优化: 高效的棋盘状态计算
- 完全遵循Bevy的ECS架构模式
- 事件驱动的游戏逻辑
- 异步AI计算,不阻塞主线程
- 移动端优化的触摸界面
- 国际化支持,多语言切换
- 模块化设计,易于扩展