# OnlineRpg - C++ 在线回合制对战游戏

## 项目简介

本项目是一个基于 C/S 架构的在线回合制对战游戏，使用纯 C++ 开发，控制台界面。

## 🚀 快速开始

### 1. 启动服务器
```bash
cd /mnt/e/50425/Documents/Github/OnlineRpg
./build/bin/server
```

### 2. 启动客户端（新开终端）
```bash
cd /mnt/e/50425/Documents/Github/OnlineRpg
./build/bin/client
```

### 3. 开始游戏
1. 注册账号 → 2. 登录 → 3. 创建角色 → 4. 进入大厅 → 5. 战斗！

📖 **详细游戏指南**: 查看 [`如何运行和游戏.md`](如何运行和游戏.md)

## 核心技术

- **多态**: ICharacter 和 ISkill 抽象基类
- **模板 + 链表**: 手写 HistoryLog<T> 泛型链表
- **STL**: std::map, std::vector, std::thread, std::mutex
- **网络编程**: 原生 Socket API (Winsock/POSIX)
- **数据库**: SQLite3

## 系统要求

- C++17 或更高版本
- CMake 3.15+
- SQLite3 (可选，项目包含 amalgamation 版本)

### Windows
- Visual Studio 2019+ 或 MinGW
- Windows 7+

### Linux
- GCC 7+ 或 Clang 5+
- POSIX Sockets

## 项目结构

```
OnlineRpg/
├── include/          # 头文件
│   ├── core/        # 核心类 (多态、模板)
│   ├── common/      # 通用类 (网络、数据库)
│   ├── server/      # 服务器类
│   └── client/      # 客户端类
├── src/             # 源文件
│   ├── core/
│   ├── common/
│   ├── server/
│   └── client/
├── lib/             # 第三方库 (SQLite3)
├── data/            # 数据文件 (数据库)
├── build/           # 构建目录
└── docs/            # 文档
```

## 构建步骤

### Windows (Visual Studio)

```powershell
# 创建构建目录
mkdir build
cd build

# 生成 Visual Studio 项目
cmake ..

# 构建
cmake --build . --config Release

# 运行
.\bin\Release\server.exe
.\bin\Release\client.exe
```

### Windows (MinGW)

```powershell
mkdir build
cd build
cmake -G "MinGW Makefiles" ..
cmake --build .
.\bin\server.exe
.\bin\client.exe
```

### Linux

```bash
mkdir build
cd build
cmake ..
make -j$(nproc)
./bin/server
./bin/client
```

## 使用说明

### 启动服务器

```bash
./bin/server [port]
# 默认端口: 8888
```

### 启动客户端

```bash
./bin/client [server_ip] [port]
# 默认: localhost:8888
```

### 游戏操作

1. **注册/登录**: 启动客户端后选择注册或登录
2. **大厅聊天**: 直接输入消息发送
3. **查看玩家**: 输入 `/list` 查看在线玩家
4. **发起对战**: 输入 `/invite <玩家名>` 邀请对战
5. **战斗**: 轮到自己时输入技能编号进行攻击

## 功能特性

- ✅ 用户注册/登录 (数据库持久化)
- ✅ 游戏大厅 (公共聊天)
- ✅ 在线玩家列表
- ✅ 1v1 对战邀请
- ✅ 回合制战斗系统
- ✅ 多职业系统 (战士、法师)
- ✅ 技能系统
- ✅ 战斗回放

## 开发计划

请参阅项目文档：
- [项目愿景与范围.md](项目愿景与范围.md)
- [详细需求规格.md](详细需求规格.md)
- [系统架构设计.md](系统架构设计.md)
- [关键模块与接口.md](关键模块与接口.md)
- [验收标准.md](验收标准.md)

## 许可证

本项目仅用于学习目的。
