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