Skip to content

foxzool/reversi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reversi (Othello) Game

基于最新Bevy 0.16引擎的黑白棋游戏实现,包含AI对手和完整的移动端优化游戏界面。

✨ v0.3.0 新功能

  • 🎮 完整游戏流程重设计: 加载界面 → 语言选择 → 难度选择 → 游戏进行
  • 📱 移动端优化: 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

游戏操作

界面流程

  1. 语言选择: 首次进入选择中文/English界面语言
  2. 难度选择: 选择AI难度级别(初级、中级、高级、专家)
  3. 游戏进行: 正式开始游戏对局

游戏控制

  • 鼠标/触摸: 点击空白格子进行落子
  • 有效位置: 白色半透明圆点表示可落子位置
  • 返回按钮: 游戏界面左上角可返回难度选择
  • 帮助规则: 难度选择界面可查看游戏规则

移动端优化

  • 触摸友好: 所有按钮44px最小触摸目标
  • 响应式布局: 400×600最佳分辨率,适配手机屏幕
  • 触摸反馈: 按钮按压和悬停效果

音效系统

  • 落子音效: 每次成功落子时播放
  • 翻转音效: 棋子翻转时播放
  • 胜利音效: 玩家获胜时播放
  • 失败音效: 玩家失败时播放
  • 错误音效: 无效落子时播放
  • 音效可通过M键开关,默认开启

AI技术特点

算法实现

  • 异步计算: 使用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计算,不阻塞主线程
  • 移动端优化的触摸界面
  • 国际化支持,多语言切换
  • 模块化设计,易于扩展

About

黑白棋游戏

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published

Languages