English | README_en.md
当前的积分排名
公司 | 模型 | 积分(平均) | 指令正确率(平均) |
---|---|---|---|
谷歌 | gemini-2.5-flash-nothinking | 30 | 0.78 |
月之暗面 | kimi-k2-0711-preview | 25 | 0.6515 |
deepseek | deepseek-chat | 20 | 0.8948 |
字节 | doubao-seed-1-6-flash-250615 | 20 | 0.314 |
HW | pangu-pro-moe | 20 | 0.753 |
微软/OpenAI | o4-mini | 15 | 0.93 |
xAI | grok-3-mini | 10 | 0.87 |
阿里 | qwen-plus-latest | 10 | 0.7774 |
demo.mp4
AI Battle是一款创新的战争策略游戏,玩家由大型语言模型(LLM)扮演,通过智能决策和战略部署争夺领土和资源。游戏采用回合制机制,结合了实时策略元素和AI驱动的决策系统,创造出独特的游戏体验。
- AI驱动的玩家:3个不同LLM模型控制的AI玩家自主决策和互动
- 动态战争系统:兵力部署、出征攻击、领土占领等完整战争机制
- 实时战略地图:可视化地图展示城市、道路和移动中的军队
- 回合制游戏流程:自动回合推进与状态更新
- 沉浸式体验:每个AI玩家拥有独特的个性、口号和语音
- 框架:Flask 2.0.1
- 主要依赖:
- APScheduler 3.10.1 (任务调度)
- flask-cors 4.0.0 (跨域支持)
- pygame 2.5.2 (音频处理)
- xmltodict 0.13.0 (XML解析)
- openai >=1.0 (AI模型接口)
- dashscope (AI模型接口)
- 框架:Vue 3.2.0 + Vue Router 4.0.0
- UI组件库:Vuetify 3.9.2
- HTTP客户端:Axios 1.10.0
- 图标库:@mdi/font 7.4.47
- 地图:多个城市和州地区,通过道路连接
- 兵力:地区自动增长兵力,交战地区不增长兵力,地区的兵力增长有上限
- 玩家:3名AI玩家
- 胜利条件:消灭其他所有玩家的城市和兵力
- 部署(deploy_army):在己方地区间移动兵力
- 出征(send_expedition):派遣兵力攻击其他地区,到达后自动战斗
- 占领:地区中兵力最多的玩家即占领了该地区
- 里帕布自由军:使用doubao-seed-1-6-flash-250615模型
- 得莫克阵线:使用deepseek-chat模型
- Grok新世界:使用qwen-plus-latest模型
cd backend
pip install -r requirements.txt
python app.py
cd frontend
npm install
npm run serve
- 打开配置文件
AI-battle\backend\config.py
- 在
agent_configs
字典中找到对应模型的配置项 - 替换
api_key
的值为您的实际API密钥
agent_configs = {
"doubao-seed-1-6-flash-250615": {
"base_url": "https://ark.cn-beijing.volces.com/api/v3",
"api_key": "您的API密钥", # 替换为实际API密钥
"model_name": "doubao-seed-1-6-flash-250615",
},
# 其他模型配置...
}
- 在
AI-battle\backend\config.py
中找到派系配置数组(three_kingdoms_factions
或three_kingdoms_factions_2
) - 为每个玩家设置
model
属性,值对应agent_configs
中的模型名称
three_kingdoms_factions = [
{
"name": "魏国",
"leader": "曹操",
"color": "#7B68EE",
"voice_id": "...",
"model": "doubao-seed-1-6-flash-250615", # 绑定到大模型
},
# 其他玩家配置...
]
每个回合可以有多条命令,支持两种核心命令:
<command>
<name>deploy_army</name>
<city_name>地区1</city_name>
<dest_city_name>地区2</dest_city_name>
<troops>10000</troops>
</command>
<command>
<name>send_expedition</name>
<city_name>地区1</city_name>
<dest_city_name>地区2</dest_city_name>
<troops>10000</troops>
</command>
本项目采用Apache License 2.0许可证 - 详见LICENSE文件
AI-battle/
├── .gitignore
├── LICENSE
├── README.md
├── backend/
│ ├── agent.py
│ ├── app.py
│ ├── config.py
│ ├── controller.py
│ ├── music/
│ ├── requirements.txt
│ ├── service.py
│ └── voice.py
├── frontend/
│ ├── package.json
│ ├── src/
│ │ ├── App.vue
│ │ ├── assets/
│ │ ├── components/
│ │ ├── main.js
│ │ ├── router/
│ │ └── views/
│ └── vue.config.js
├── game.md
└── gameState.md