# five-in-a-row-AI
♟️ Deploy a AI five-in-a-row game. Including front-end, back-end & deep RL code.
前端基于 Vue3 构建,后端由 flask 提供简单的 restful 接口,调用 AlphaGo 算法(基于强化学习 + 蒙特卡洛树搜索)。
Python 建议 3.6+ 版本, npm 建议 14.0+ 版本。棋盘大小、AI参数等均可自行配置(注意,更改棋盘大小后,需要重新训练对应棋盘大小的神经网络权重)。
<p style="text-align: center;"><a href="https://piperliu.github.io/five-in-a-row-AI/">✨GitHub Demo Page✨</p>
![](./readme.gif)
## ⚙️How to use | 如何一键使用
下载本项目至你的服务器:
```bash
git clone https://github.com/PiperLiu/five-in-a-row-AI.git
```
### 📄生成前端页面
在 [./front-end/aichess/src/hooks/useChessRequestHook](./front-end/aichess/src/hooks/useChessRequestHook) 中更改你的接口。
```typescript
...
axios.post(url, data, {
baseURL: 'https://aichess.piperliu.xyz', // 你的 API
headers: {
'Content-Type': 'application/json'
}
...
```
生成页面需要一点前端基础,具体可见 [./front-end/aichess/README.md](./front-end/aichess/README.md) 。
```bash
cd front-end\aichess
npm install
npm run build
```
### ⚗️部署后端服务
注意,后端项目和 AI 训练使用的 Python 环境相同,具体依赖在 [./requirements.txt](./requirements.txt) 中。可以使用如下 pip 命令安装。
```bash
pip install -r requirements.txt
```
运行 [./back-end/main.py](./back-end/main.py) 。
```bash
cd back-end
python3 main.py
```
### 🤖训练你的 AI
训练 AI 涉及到:你是像继续训练同一个神经网络,还另开一个炉灶。你可以通过命令行来告诉脚本,可以参考 [./ai/main.py](./ai/main.py) 。
```bash
cd ai
python main.py
```
## 🤔思考
前端总体没啥难的。但引入 live2d.js 时发现没有 npm ,只能在 index.html 里通过 script 引入一个 js 文件。于是就在 live2d 对应的 [./front-end/aichess/src/components/LiveGirlComponent.vue](./front-end/aichess/src/components/LiveGirlComponent.vue) 组件内:
```typescript
(window as unknown as Record<'loadlive2d', (arg1: string, arg2: string) => void>)
.loadlive2d('live2d', 'live2d/model/tia/model.json')
```
后端最为简单,毕竟这里也没有数据库操作、没有并发处理,就是用 flask 暴露了一个 post 接口,你把棋盘的样子传给我,我把下一步下在那里告诉你。
但后端也是最费时的:在浏览器中被要求请求必须是 https 的,于是去给域名申请 ssl 。主要用到了 [acme.sh](https://github.com/acmesh-official/acme.sh) + nginx 。此外,我的后端跑在我的阿里云服务器的 docker 里,在里面再套上 tmux 保证运行的稳定性。 nginx 实现了一个转发:我的 flask 服务是 localhost:5000 ,我将 aichess.piperliu.xyz 转发到了 localhost:5000 。
最后,阿里云对没有备案的域名(我的 piperliu.xyz )进行了拦截。所以还要老老实实备案。
关于 AI 训练: 8 × 8 的版本早就训练好了,见 [./back-end/models/current_policy_1.model](./back-end/models/current_policy_1.model) ,但是 15 × 15 的十分吃力 :
![](./ai/images/15_15_01.png)
如上是熵值(MCTS最优动作与神经网络决策的熵),熵值越低 AI 越强大。训练了大概有 9 天,发现其熵值是突发性地降低的——这说明强化学习的训练很大程度与采样有关,采样平平无奇,则一直没有进步;采用突发奇想,可能会带来巨大的进步。
具体的讨论我放在 [./ai/README.md](./ai/README.md) 中了。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
基于Python+Flask+vue3的强化学习五子棋 游戏-毕业设计源码+使用文档(高分优秀项目).zip 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,确保可以运行,部署教程齐全,也可以作为课程设计 基于Python+Flask+vue3的强化学习五子棋 游戏-毕业设计源码+使用文档(高分优秀项目).zip 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,确保可以运行,部署教程齐全,也可以作为课程设计 基于Python+Flask+vue3的强化学习五子棋 游戏-毕业设计源码+使用文档(高分优秀项目).zip 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,确保可以运行,部署教程齐全,也可以作为课程设计 基于Python+Flask+vue3的强化学习五子棋 游戏-毕业设计源码+使用文档(高分优秀项目).zip 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,确保可以运行,部署教程齐全,也可以作为课程设计
资源推荐
资源详情
资源评论
收起资源包目录
基于Python+Flask+vue3的强化学习五子棋 游戏-毕业设计源码+使用文档(高分优秀项目).zip (137个子文件)
202202281205_15_15_5_1.0_5_400 1.25MB
.browserslistrc 40B
app.91b92741.css 915B
.editorconfig 121B
f12.gif 5.73MB
readme.gif 3.25MB
play.gif 80KB
.gitignore 233B
.gitignore 30B
index.html 682B
index.html 667B
live2d.js 178KB
live2d.js 178KB
chunk-vendors.716577a2.js 130KB
app.92bb7e98.js 6KB
.eslintrc.js 379B
vue.config.js 365B
babel.config.js 73B
package-lock.json 849KB
model.json 3KB
model.json 3KB
package.json 991B
tsconfig.json 729B
LICENSE 1KB
chunk-vendors.716577a2.js.map 975KB
app.92bb7e98.js.map 31KB
README.md 4KB
README.md 3KB
README.md 390B
README.md 184B
model.moc 99KB
model.moc 99KB
current_policy_1.model 467KB
current_policy_0.model 467KB
Sleeping.mtn 24KB
Sleeping.mtn 24KB
Touch1.mtn 14KB
Touch1.mtn 14KB
Breath6.mtn 13KB
Breath6.mtn 13KB
Sukebei3.mtn 12KB
Sukebei3.mtn 12KB
Breath5.mtn 12KB
Breath5.mtn 12KB
Breath8.mtn 12KB
Breath8.mtn 12KB
Fail.mtn 12KB
Fail.mtn 12KB
WakeUp.mtn 12KB
WakeUp.mtn 12KB
Touch Dere4.mtn 10KB
Touch Dere4.mtn 10KB
Breath9.mtn 10KB
Breath9.mtn 10KB
Breath4.mtn 9KB
Breath4.mtn 9KB
Touch Dere5.mtn 9KB
Touch Dere5.mtn 9KB
Breath3.mtn 9KB
Breath3.mtn 9KB
Touch3.mtn 9KB
Touch3.mtn 9KB
Breath7.mtn 9KB
Breath7.mtn 9KB
Sukebei2.mtn 9KB
Sukebei2.mtn 9KB
Sukebei1.mtn 9KB
Sukebei1.mtn 9KB
Touch Dere2.mtn 8KB
Touch Dere2.mtn 8KB
Touch6.mtn 8KB
Touch6.mtn 8KB
Breath Dere3.mtn 8KB
Breath Dere3.mtn 8KB
Touch Dere3.mtn 8KB
Touch Dere3.mtn 8KB
Touch5.mtn 8KB
Touch5.mtn 8KB
Touch Dere1.mtn 8KB
Touch Dere1.mtn 8KB
Touch4.mtn 7KB
Touch4.mtn 7KB
Breath Dere2.mtn 7KB
Breath Dere2.mtn 7KB
Success.mtn 6KB
Success.mtn 6KB
Breath2.mtn 6KB
Breath2.mtn 6KB
Touch Dere6.mtn 5KB
Touch Dere6.mtn 5KB
Touch2.mtn 5KB
Touch2.mtn 5KB
Breath Dere1.mtn 4KB
Breath Dere1.mtn 4KB
Breath1.mtn 3KB
Breath1.mtn 3KB
default-costume.png 445KB
default-costume.png 445KB
15_15_02.png 167KB
15_15_03.png 161KB
共 137 条
- 1
- 2
资源评论
不走小道
- 粉丝: 3221
- 资源: 5113
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功