Skip to content

vapering/AI-battle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Battle: LLM大模型战争策略游戏

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玩家
  • 胜利条件:消灭其他所有玩家的城市和兵力

核心操作

  1. 部署(deploy_army):在己方地区间移动兵力
  2. 出征(send_expedition):派遣兵力攻击其他地区,到达后自动战斗
  3. 占领:地区中兵力最多的玩家即占领了该地区

AI玩家

  1. 里帕布自由军:使用doubao-seed-1-6-flash-250615模型
  2. 得莫克阵线:使用deepseek-chat模型
  3. Grok新世界:使用qwen-plus-latest模型

安装与启动

后端启动

cd backend
pip install -r requirements.txt
python app.py

前端启动

cd frontend
npm install
npm run serve

配置指南

API密钥配置

  1. 打开配置文件 AI-battle\backend\config.py
  2. agent_configs 字典中找到对应模型的配置项
  3. 替换 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",
    },
    # 其他模型配置...
}

玩家模型绑定

  1. AI-battle\backend\config.py 中找到派系配置数组(three_kingdoms_factionsthree_kingdoms_factions_2
  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

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published