https://github.com/foxzool/reversi
黑白棋游戏
https://github.com/foxzool/reversi
bevy bevy-game
Last synced: 3 months ago
JSON representation
黑白棋游戏
- Host: GitHub
- URL: https://github.com/foxzool/reversi
- Owner: foxzool
- Created: 2025-07-04T02:36:23.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-04T08:58:03.000Z (about 1 year ago)
- Last Synced: 2025-07-04T09:32:27.845Z (about 1 year ago)
- Topics: bevy, bevy-game
- Language: Rust
- Homepage:
- Size: 104 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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 # 主程序入口(状态管理)
```
## 运行方式
### 本地开发
```bash
# 测试基础功能
cargo run --example simple_test
# 运行完整游戏
cargo run
```
### 运行完整游戏
```bash
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计算,不阻塞主线程
- 移动端优化的触摸界面
- 国际化支持,多语言切换
- 模块化设计,易于扩展