File size: 1,397 Bytes
0642513 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | # 需求
用Python制作一个基于Transformer的2048游戏AI
可以创建一个简单的窗口让我看到实时的训练状态,包括训练时AI的当前分数、训练速度、历史已经结束的游戏的*累积分数*变化、当前游戏的*局面分数*变化,窗口可切换演示模式和训练模式
2048的一部分规定补充:
- 开局会在随机位置生成一个2,后续在空格生成的砖块在随机位置且值为2或4
- 同时存在两个分数机制:累积分数和局面分数
- 累积分数机制:每合成一个增加合成后的砖块的数值
- 局面分数机制:根据*空格数量*、*相邻连续数字数量(相邻砖块拥有相邻数字的数量,取最大值,不计算重复,如512 1024 2048为3,256 512 512 2为2)*、*最高数字的对数*设计以恶合理的函数,局面分数越高越好
## 第一步:训练模型
为模型提供当前的局面状态和两种分数(累积分数的权重低于其它,目的是局面分数保持更高),输出只有上下左右
游戏结束后再开始新的游戏继续训练,直到训练没有长进或我手动点击停止
性能允许的话可以多开2048游戏进行训练
## 第二步:演示模式
在窗口中可以手动操作或AI托管,AI托管可以单步执行也可以持续下一步,可以看到两种分数及局面分数变化 |