An open API service indexing awesome lists of open source software.

https://github.com/foxzool/reversi

黑白棋游戏
https://github.com/foxzool/reversi

bevy bevy-game

Last synced: 3 months ago
JSON representation

黑白棋游戏

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